找这本书看去
delphi 5开发人员指南
第三部分 基于组件的开发
第20章 VCL元素和运行期类型信息 577
20.1 什么是组件 577
20.2 组件的类型 578
20.2.1 标准控件 578
20.2.2 自定义控件 578
20.2.3 图形控件 578
20.2.4 非可视组件 579
20.3 组件的结构 579
20.3.1 属性 579
20.3.2 属性的类型 580
20.3.3 方法 580
20.3.4 事件 581
20.3.5 流属性 582
20.3.6 拥有关系 582
20.3.7 父子关系 583
20.4 可视组件的层次关系 583
20.4.1 TPersistent类 584
20.4.2 TComponent类 584
20.4.3 TControl类 585
20.4.4 TWinControl类 585
20.4.5 TGraphicControl类 586
20.4.6 TCustomControl类 586
20.4.7 其他类 587
20.5 运行期类型信息 589
20.5.1 TypInfo.pas单元:定义运行类型
信息 589
20.5.2 获取类型信息 591
20.5.3 获取方法指针的类型信息 596
20.5.4 获取有序类型的类型信息 600
20.5.5 通过RTTI给属性赋值 604
20.6 总结 606
第21章 编写自定义组件 607
21.1 组件设计基础 607
21.1.1 确定是否需要编写组件 607
21.1.2 编写组件的一般步骤 607
21.1.3 确定一个祖先类 608
21.1.4 创建一个组件单元 609
21.1.5 添加属性 609
21.1.6 加入事件 615
21.1.7 创建自定义的方法 619
21.1.8 构造器和析构器 619
21.1.9 注册组件 620
21.1.10 测试组件 621
21.1.11 提供组件图标 623
21.2 一个组件的示例 623
21.2.1 扩展Win32组件外套功能 624
21.2.2 TddgRunButton: 创建属性 631
21.3 TddgButtonEdit:一个容器组件 636
21.3.1 设计 636
21.3.2 显现属性 637
21.3.3 显现事件 637
21.3.4 TddgDigitalClock:创建组件事
件 639
21.3.5 把窗体加到组件面板上 642
21.4 组件包 644
21.4.1 为什么使用包 644
21.4.2 什么情况下不使用包 645
21.4.3 包的类型 645
21.4.4 包文件 645
21.4.5 在Delphi 5应用程序中使用包 645
21.4.6 把包安装到IDE中 645
21.4.7 设计自己的包 646
21.4.8 包的版本 649
21.4.9 包的编译指令 649
21.4.10 关于{$WEAKPACKAGEUNIT}
指令 649
21.4.11 包的命名约定 650
21.5 附加包 650
21.6 总结 655
第22章 高级组件技术 656
22.1 伪可视组件 656
22.1.1 扩展提示功能 656
22.1.2 创建一个THintWindow的派生
类 656
22.1.3 椭圆型的窗口 658
22.1.4 使派生的提示窗口有效 659
22.1.5 放置TDDGHintWindow 659
22.2 动态组件 659
22.2.1 走马灯组件 659
22.2.2 编写这个组件 659
22.2.3 在内存中的位图上输出 659
22.2.4 输出组件 661
22.2.5 使组件动起来 661
22.2.6 测试TddgMarquee组件 668
22.3 编写属性编辑器 670
22.3.1 派生出一个属性编辑器对象 670
22.3.2 把属性当作文本来编辑 671
22.3.3 注册新的属性编辑器 674
22.3.4 用对话框来编辑属性 675
22.4 组件编辑器 677
22.4.1 TComponentEditor 677
22.4.2 一个简单的组件 678
22.4.3 一个简单的组件编辑器 679
22.4.4 注册组件编辑器 679
22.5 对非公开的组件数据进行流操作 681
22.5.1 声明属性 681
22.5.2 DefineProperty()的例子 682
22.5.3 TddgWaveFile:调用Define-
BinaryProperty()的例子 684
22.6 属性类别 690
22.6.1 类别的类 690
22.6.2 自定义类别 691
22.7 组件列表:TCollection和
TCollectionItem 694
22.7.1 声明TCollectionItem类:
TRunBtnItem 695
22.7.2 声明TCollection类:
TRunButtons 696
22.7.3 实现TddgLaunchPad、TRun-
BtnItem和TRunButtons 696
22.7.4 用对话框属性编辑器编辑
TCollectionItem组件的列表 702