zoukankan      html  css  js  c++  java
  • Delphi 的知识体系

    第一部分   快速开发的基础
      第1章   Delphi 5下的Windows编程    1
        1.1   Delphi产品家族    1
        1.2  Delphi是什么    3
          1.2.1   可视化开发环境    3
          1.2.2   编译器的速度和已编译代码的效率    4 
          1.2.3   编程语言的功能及其复杂性    4
          1.2.4   数据库结构的灵活性和可扩展性    5
          1.2.5   框架对设计和使用模式的扩充    5
        1.3   历史回顾    5
          1.3.1   Delphi 1    5
          1.3.2   Delphi 2    6
          1.3.3   Delphi 3    6
          1.3.4   Delphi 4    7
          1.3.5   Delphi 5    7
          1.3.6   未来    7
        1.4   Delphi 5的IDE    7
          1.4.1   主窗口    8
          1.4.2   窗体设计器    9
          1.4.3   Object Inspector    9
          1.4.4   代码编辑器    9
          1.4.5   代码浏览器    10
          1.4.6   源代码生成器    10
        1.5   创建一个简单的应用程序    11
        1.6   事件机制的优势在哪里    12
        1.7   加速原型化    13
        1.8   可扩展的组件和环境    13
        1.9   IDE最重要的十点功能    13
        1.10   总结    15
      第2章   Object Pascal语言    16
        2.1   注解    16
        2.2   新的过程和函数特征    17
          2.2.1   圆括号    17
          2.2.2   重载    17
          2.2.3   缺省值参数    17
        2.3   变量    18
        2.4   常量    19
        2.5   运算符    20
          2.5.1   赋值运算符    20
          2.5.2   比较运算符    20
          2.5.3   逻辑表达式    21
          2.5.4   算术运算符    21
          2.5.5   按位运算符    22
          2.5.6   加减运算过程    22
        2.6   Object Pascal类型    23
          2.6.1   类型的比较    23
          2.6.2   字符    24
          2.6.3   字符串    24
          2.6.4   变体类型    32
          2.6.5   Currency    39
        2.7   用户自定义类型    39
          2.7.1   数组    39
          2.7.2   动态数组    40
          2.7.3   记录    41
          2.7.4   集合    42
          2.7.5   对象    43
          2.7.6   指针    44
          2.7.7   类型别名    46
        2.8   强制类型转换和类型约定    46
        2.9   字符串资源    47
        2.10   测试条件    47
          2.10.1   if语句    47
          2.10.2   case语句    48
        2.11   循环    49
          2.11.1   for循环    49
          2.11.2   while循环    49
          2.11.3   repeat...until    50
          2.11.4   Break()过程    50
          2.11.5   Continue()过程    50
        2.12   过程和函数    50
        2.13   作用域    50
        2.14   单元    55
          2.14.1   uses子句    55
          2.14.2   循环单元引用    56
        2.15   包    56
          2.15.1   使用Delphi的包    56
          2.15.2   包的语法    56
        2.16   面向对象编程    57
        2.17   使用Delphi对象    58
          2.17.1   声明和实例化    58
          2.17.2   析构    59
        2.18   方法    59
          2.18.1   方法的类型    60
          2.18.2   属性    61
          2.18.3   可见性表示符    62
          2.18.4   友类    62
          2.18.5   对象的秘密    63
          2.18.6   TObject:所有对象的祖先    63
          2.18.7   接口    63
        2.19   结构化异常处理    66
          2.19.1   异常类    68
          2.19.2   执行的流程    70
          2.19.3   重新触发异常    71
        2.20   运行期类型信息    72
        2.21   总结    72
      第3章   Win32 API    73
        3.1   对象:以前和现在    73
          3.1.1   内核对象    73
          3.1.2   GDI和用户对象    75
        3.2   多任务和多线程    75
        3.3   Win32内存管理    76
          3.3.1   什么是线性内存模式    76
          3.3.2   Win32系统是怎样管理内存的    76
        3.4   Win32的错误处理    78
        3.5   总结    78
      第4章   应用程序框架和设计    79
        4.1   理解Delphi环境和项目的体系结构    79
        4.2  构成Delphi 5项目的文件    79
          4.2.1   项目文件    80
          4.2.2   单元文件    80
          4.2.3   窗体文件    80
          4.2.4   资源文件    81
          4.2.5   项目选项及桌面设置文件    81
          4.2.6   备份文件    81
          4.2.7   包文件    82
        4.3   项目管理提示    82
          4.3.1   一个项目一个目录    82
          4.3.2   共享代码的单元    82
          4.3.3   多项目管理    84
        4.4   Delphi 5项目的框架类    84
          4.4.1   TForm类    84
          4.4.2   TApplication类    89
          4.4.3   TApplication的方法    91
          4.4.4   TApplication的事件    92
          4.4.5   TScreen类    93
        4.5   定义公共体系结构:使用对象库    93
          4.5.1   考虑应用程序的体系结构    93
          4.5.2   Delphi固有的体系结构    94
          4.5.3   体系结构的例子    94
          4.5.4   子窗体TChildForm    94
          4.5.5   数据库基础模式窗体TDBMode- Form    96 
                 4.5.6   数据库导航/状态窗体TDBNavstat- Form    97 
                 4.5.7   使用框架进行应用程序结构设计    102
               4.6   一些项目管理的功能    103
          4.6.1   在项目中添加资源    103
          4.6.2   改变屏幕光标    105
          4.6.3   避免创建一个窗体的多个实例    106
          4.6.4   在DPR文件中增加代码    107
          4.6.5   覆盖应用程序的异常处理    107
          4.6.6   显示一个封面    109
          4.6.7   使窗体尺寸最小    110
          4.6.8   运行没有窗体的项目    111
          4.6.9   退出Windows    112
          4.6.10   防止关闭Windows    113
        4.7   总结    113
    第5章   理解Windows消息    114
    5.1   什么是消息    114
    5.2   消息的类型    115
    5.3   Windows消息系统是如何工作的    115
    5.4    Delphi的消息系统    116
    5.5   消息处理    117
    5.5.1   消息处理:不是无约定的    118
    5.5.2   对Result域赋值    119
    5.5.3   TApplication的OnMessage事件    119
    5.6   发送自己的消息    120
    5.6.1   Perform()    120
    5.6.2   sendMessage()和PostMessage()    120
    5.7   非标准的消息    121
    5.7.1   通知消息    121
    5.7.2   VCL内部的消息    122
    5.7.3   用户自定义的消息    122
    5.8   一个消息系统的剖析:VCL    123
    5.9   消息与事件之间的关系    128
    5.10   总结    129
    第6章   代码标准文档    130
    6.1   一般的源代码格式规则    130
    6.1.1   缩进    130
    6.1.2   边距    130
    6.1.3   begin...end    130
    6.2   Object Pascal    131
    6.2.1   括号    131
    6.2.2   保留字和关键字    131
    6.2.3   过程和函数    131
    6.2.4   变量    132
    6.2.5   类型    133
    6.2.6   构造类型    133
    6.2.7   语句    134
    6.2.8   结构化异常处理    134
    6.2.9   类    135
    6.3   文件    136
    6.3.1   项目文件    136
    6.3.2   窗体文件    136
    6.3.3   数据模块文件    137
    6.3.4   远程数据模块文件    137
    6.3.5   单元文件    137
    6.3.6   文件头    138
    6.4   窗体与数据模块    138
    6.4.1   窗体    138
    6.4.2   数据模块    139
    6.5   包    139
    6.5.1   运行期包与设计期包    139
    6.5.2   文件命名标准    140
    6.6   组件    140
    6.6.1   自定义组件    140
    6.6.2   组件实例的命名规则    140
    6.7   代码标准文档升级    141
    第7章   使用ActiveX控件    142
    7.1   什么是ActiveX控件    142
    7.2   何时使用ActiveX控件    142
    7.3   把ActiveX控件加到组件面板上    143
    7.4   Delphi组件外套    144
    7.4.1   外套文件是从哪来的    152
    7.4.2   枚举    152
    7.4.3   控件接口    152
    7.4.4   TOleControl的派生类    152
    7.4.5   方法    152
    7.4.6   属性    153
    7.5   在应用程序中使用ActiveX控件    153
    7.6   发布带有ActiveX控件的应用程序    154
    7.7   注册ActiveX控件    155
    7.8   BlackJack:一个OCX示范程序    155
    7.8.1   纸牌    155
    7.8.2   游戏    157
    7.8.3   调用ActiveX控件的方法    165
    7.9   总结    166
    第二部分   高级技术
    第8章   使用GDI和字体的图像编程    167
    8.1   TImage:Delphi的图像显示    167
    8.2   存储图像    168
    8.3   使用TCanvas的属性    169
    8.3.1   画笔    170
    8.3.2   使用TCanvas.Pixels属性    175
    8.3.3   使用刷子    175
    8.3.4   使用字体    180
    8.3.5   使用CopyMode属性    181
    8.3.6   其他属性    184
    8.4   使用TCanvas的方法    184
    8.4.1   用TCanvas画线    184
    8.4.2   用TCanvas画几何形状    185
    8.4.3   画图的示范程序    185
    8.4.4   用TCanvas输出文字    189
    8.5   坐标系统和映射模式    193
    8.5.1   设备坐标系    193
    8.5.2   逻辑坐标系    194
    8.5.3   屏幕坐标系    194
    8.5.4   窗体坐标系    194
    8.5.5   坐标映射    195
    8.5.6   设置映射模式    196
    8.5.7   设置窗口/视区范围    196
    8.5.8   关于映射模式的示范程序    197
    8.6   创建一个绘画程序    202
    8.7   编写动画程序    215
    8.8   高级字体    221
    8.8.1   Win32字体类型    222
    8.8.2   基本字体元素    222
    8.8.3   GDI字体分类    223
    8.8.4   显示不同字体    223
    8.9   实际创建一种字体    224
    8.9.1   这个程序是如何工作的    224
    8.9.2   显示字体的有关信息    230
    8.10   总结    233
    第9章   动态链接库    234
    9.1   究竟什么是DLL    234
    9.2   静态链接与动态链接    235
    9.3   为什么要使用DLL    236
    9.3.1   共享代码、资源和数据    236
    9.3.2   隐藏实现的细节    237
    9.3.3   自定义控件    237
    9.4   创建和使用DLL    237
    9.4.1   数美分:一个简单的DLL    237
    9.4.2   显示DLL中的模式窗体    239
    9.5   显示DLL中的无模式窗体    241
    9.6   在Delphi应用程序中使用DLL    242
    9.7   DLL的入口函数和出口函数    246
    9.7.1   进程/线程初始化和终止例程    246
    9.7.2   DLL入口/出口示例    246
    9.8   DLL中的异常    250
    9.8.1   在16位Delphi中捕捉异常    250
    9.8.2   异常和Safecall指示符    250
    9.9   回调函数    250
    9.9.1   使用回调函数    253
    9.9.2   拥有者绘制的列表框    253
    9.10   从DLL中调用回调函数    253
    9.11   在不同的进程间共享DLL数据    256
    9.11.1   一个可以被共享数据的DLL    256
    9.11.2   访问DLL中的共享数据    259
    9.12   引出DLL中的对象    261
    9.13   总结    265
    第10章   Delphi 5的打印    266
    10.1   TPrinter对象    266
    10.2   TPrinter.Canvas    267
    10.3   简单打印    267
    10.3.1   打印TMemo组件中的内容    267
    10.3.2   打印位图    268
    10.3.3   打印RTF格式的文本    269
    10.4   打印窗体    269
    10.5   高级打印    270
    10.5.1   打印分栏报表    270
    10.5.2   放弃打印进程    275
    10.5.3   打印信封    275
    10.5.4   抽象打印    276
    10.5.5   一个简单的打印预览程序    285
    10.6   其他打印任务    286
    10.6.1   TDeviceMode结构    286
    10.6.2   设置打印份数    288
    10.6.3   设置打印方向    288
    10.6.4   设置纸张尺寸    288
    10.6.5   设置纸张的长度    289
    10.6.6   设置页的宽度    289
    10.6.7   设置打印比例    289
    10.6.8   设置打印颜色    289
    10.6.9   设置打印质量    289
    10.6.10   设置双面打印    290
    10.6.11   指定默认打印机    290
    10.7   获取打印机信息    291
    10.7.1   GetDeviceCaps()和DeviceCapa-
                 bilities()    292
    10.7.2   获取打印机信息的示范程序    292
    10.8   总结    303
    第11章   编写多线程应用程序    304
    11.1   对线程的解释    304
    11.1.1   一种新型的多任务    304
    11.1.2   在Delphi程序中使用多线程    304
    11.1.3   关于线程的滥用    305
    11.2   TThread对象    305
    11.2.1   TThread基础    305
    11.2.2   TThread实例    307
    11.2.3   线程的终止    307
    11.2.4   与VCL同步    308
    11.2.5   一个演示程序    310
    11.2.6   优先级和时序安排    311
    11.2.7   挂起和唤醒线程    313
    11.2.8   测试线程的时间    313
    11.3   管理多线程    314
    11.3.1   线程局部存储    314
    11.3.2   线程同步    317
    11.4   一个多线程的示范程序    325
    11.4.1   用户界面    326
    11.4.2   搜索线程    330
    11.4.3   调整优先级    334
    11.5   多线程与数据库    335
    11.6   多线程与图形处理    340
    11.7   总结    343
    第12章   文件处理    344
    12.1   处理文件的输入/输出    344
    12.1.1   文本文件的处理    344
    12.1.2   类型文件的处理    348
    12.1.3   无类型文件的处理    356
    12.2   TTextRec 和TFileRec结构    359
    12.3   内存映射文件    360
    12.3.1   内存映射文件的应用    360
    12.3.2   使用映射文件    361
    12.3.3   内存映射文件的一致性    366
    12.3.4   文本搜索实用程序    366
    12.4   目录和驱动器    373
    12.4.1   获得有效驱动器和驱动器类型列
                 表    373
    12.4.2   获取驱动器信息    374
    12.4.3   获取Windows目录位置    376
    12.4.4   获取系统目录的位置    376
    12.4.5   获取当前目录    377
    12.4.6   在目录中查找文件    377
    12.4.7   复制和删除目录树    380
    12.4.8   获取文件的版本信息    382
    12.4.9   获取版本号    387
    12.4.10   获得操作系统信息    388
    12.4.11   使用TVerInfoRes类    388
    12.5   使用SHFileOperation()函数    390
    12.6   总结    391
    第13章   核心技术    392
    13.1   高级消息处理    392
    13.1.1   子类化    392
    13.1.2   HookMainWindow()    396
    13.2   防止同时出现多个应用程序实例    397
    13.3   使用Delphi的BASM    401
    13.3.1   BASM是如何工作的    401
    13.3.2   简易的参数访问    402
    13.3.3   var声明的参数    402
    13.3.4   Register调用约定    403
    13.3.5   全汇编过程    403
    13.3.6   记录    403
    13.4   使用挂钩    404
    13.4.1   设置挂钩    404
    13.4.2   使用挂钩函数    405
    13.4.3   使用脱钩函数    405
    13.4.4   使用SendKeys:一个JournalPlay-
                 back类型的挂钩    405
    13.5   使用C/C++的OBJ文件    416
    13.5.1   调用一个函数    416
    13.5.2   命名问题    417
    13.5.3   共享数据    417
    13.5.4   使用Delphi RTL    418
    13.6   使用C++类    422
    13.7   替换    426
    13.7.1   generic替换    426
    13.7.2   WM_COPYDATA    435
    13.8   获取包的信息    440
    13.9   总结    443
    第14章   获取系统信息    444
    14.1   InfoForm:获取一般信息    444
    14.1.1   格式化字符串    444
    14.1.2   获取内存状态    445
    14.1.3   获取操作系统版本信息    446
    14.1.4   获取目录信息    447
    14.1.5   获取系统信息    448
    14.1.6   检查环境    450
    14.2   平台无关性    455
    14.3   Windows 95/98: 使用ToolHelp32    455
    14.3.1   快照    456
    14.3.2   列举进程    457
    14.3.3   列举线程    460
    14.3.4   列举模块    461
    14.3.5   列举堆    462
    14.3.6   堆的视图    465
    14.3.7   程序源码    466
    14.4   Windows NT/2000: PSAPI    474
    14.5   总结    485
    第15章   移植到Delphi 5    486
    15.1   Delphi 5的新功能    486
    15.1.1   哪个版本    486
    15.1.2   单元、组件和包    487
    15.2   从Delphi 4移植到Delphi 5    487
    15.2.1   IDE问题    488
    15.2.2   RTL问题    488
    15.2.3   VCL问题    488
    15.2.4   Internet开发问题    488
    15.2.5   数据库问题    488
    15.3   从Delphi 3移植到Delphi 5    489
    15.3.1   无符号的32位整数    489
    15.3.2   64位整数    490
    15.3.3   Real类型    490
    15.4   从Delphi 2移植到Delphi 5    490
    15.4.1   改变为Boolean类型    490
    15.4.2   ResourceString    490
    15.4.3   RTL的改变    491
    15.4.4   TCustomForm    491
    15.4.5   GetChildren()    491
    15.4.6   自动化服务器    491
    15.5   从Delphi 1移植到Delphi 5    491
    15.5.1   字符串和字符    492
    15.5.2   变量长度和范围    497
    15.5.3   记录的排列    497
    15.5.4   32位的数学运算    498
    15.5.5   TDateTime类    498
    15.5.6   单元结束代码    498
    15.5.7   汇编语言    499
    15.5.8   调用约定    499
    15.5.9   动态链接库    500
    15.5.10   Windows操作系统的变化    501
    15.5.11   32位的地址空间    501
    15.5.12   32位资源    501
    15.5.13   VBX控件    502
    15.5.14   Windows API函数的变化    502
    15.5.15   16位和32位并存    504
    15.6   总结    504
    第16章   MDI应用程序    505
    16.1   创建MDI应用程序    505
    16.1.1   理解MDI基础    505
    16.1.2   子窗体    506
    16.1.3   主窗体    522
    16.2   菜单    528
    16.2.1   用MDI程序合并菜单    528
    16.2.2   在菜单中列出打开的文档    528
    16.3   杂类MDI技术    529
    16.3.1   在MDI客户区输出一幅位图    529
    16.3.2   创建一个隐藏的子窗体    534
    16.3.3   最小化、最大化、还原所有MDI
                 子窗体    536
    16.4   总结    538
    第17章   用剪贴板共享信息    539
    17.1   剪贴板基础    539
    17.1.1   剪贴板对文本操作    540
    17.1.2   剪贴板对位图操作    540
    17.2   创建你自己的剪贴板格式    541
    17.2.1   创建一个感知剪贴板的对象    541
    17.2.2   使用自定义的剪贴板格式    545
    17.3   总结    547
    第18章   多媒体编程    548
    18.1   创建一个简单的媒体播放器    548
    18.2   播放WAV文件    549
    18.3   播放视频    550
    18.3.1   显示第一帧    550
    18.3.2   使用Display属性    551
    18.3.3   使用DisplayRect属性    551
    18.3.4   理解TMediaPlayer事件    552
    18.3.5   DDGMPlay的源代码    552
    18.4   设备支持    553
    18.5   创建音频CD播放器    554
    18.5.1   显示闪屏    555
    18.5.2   开始编写CD播放器    555
    18.5.3   更新CD播放器的信息    557
    18.5.4   刷新CD播放器的方法    558
    18.5.5   CD播放器的源代码    559
    18.6   总结    565
    第19章   测试与调试    566
    19.1   常见的编程错误    567
    19.1.1   在类的实例创建之前使用了它    567
    19.1.2   确保类的实例被释放    567
    19.1.3   掌握指针    568
    19.1.4   使用未初始化的PChar类变量    568
    19.1.5   释放空指针    569
    19.2   使用内部集成调试器    569
    19.2.1   使用命令行参数    569
    19.2.2   断点    569
    19.2.3   逐行执行代码    571
    19.2.4   使用Watch窗口    572
    19.2.5  Debug Inspector    572
    19.2.6   计算和修改    572
    19.2.7   访问调用栈    572
    19.2.8   查看线程    573
    19.2.9   事件日志    573
    19.2.10   模块视图    574
    19.2.11   调试DLL    574
    19.2.12   CPU视图    575
    19.3   总结    575
    第三部分   基于组件的开发
    第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
    22.8   总结    711
    第23章   COM和ActiveX    712
    23.1   COM基础    712
    23.1.1   COM:组件对象模型    712
    23.1.2   COM、ActiveX、OLE的异同    713
    23.1.3   术语    713
    23.1.4   ActiveX的伟大之处    713
    23.1.5   OLE 1和OLE 2    713
    23.1.6   结构化存储    714
    23.1.7   统一数据传输    714
    23.1.8   线程模式    714
    23.1.9   COM+    714
    23.2   COM与Object Pascal    714
    23.2.1   接口    715
    23.2.2   使用接口    716
    23.2.3   HResult返回类型    719
    23.3   COM对象和类工厂    720
    23.3.1   TComObject和TComObject-
                 Factory    720
    23.3.2   in-process COM服务器    721
    23.3.3   创建一个in-proc COM服务器实
                 例    722
    23.3.4   out-of-process COM服务器    723
    23.4   聚合    723
    23.5   分布式COM    723
    23.6   自动化    724
    23.6.1   IDispatch接口    724
    23.6.2   类型信息    725
    23.6.3   后期捆绑与前期捆绑    725
    23.6.4   注册    725
    23.6.5   创建自动化服务器    725
    23.6.6   创建自动化控制器    740
    23.7   高级自动化技术    745
    23.7.1   自动化事件    745
    23.7.2   自动化集合    754
    23.7.3   类型库中新的接口类型    760
    23.7.4   交换二进制数据    761
    23.7.5   COM的语言支持    763
    23.8   MTS    766
    23.8.1   为什么会出现MTS    767
    23.8.2   什么是MTS    767
    23.8.3   Delphi中的MTS    770
    23.9   TOleContainer    785
    23.9.1   一个简单的范例程序    785
    23.9.2   一个稍复杂的范例程序    787
    23.10   总结    794
    第24章   扩展Windows外壳    795
    24.1   托盘图标组件    795
    24.1.1   API    795
    24.1.2   处理消息    797
    24.1.3   图标及提示    797
    24.1.4   鼠标点击    798
    24.1.5   隐藏应用程序    799
    24.1.6   托盘图标应用程序举例    805
    24.2   应用程序桌面工具栏    807
    24.2.1   API    807
    24.2.2   TAppBar:AppBar的窗体    808
    24.2.3   使用TAppBar    815
    24.3   外壳链接    817
    24.3.1   获取一个IShellLink实例    818
    24.3.2   使用IShellLink    819
    24.3.3   创建一个外壳链接    820
    24.3.4   获取及设置链接信息    821
    24.3.5   一个例子程序    824
    24.4   外壳扩展    831
    24.4.1   COM对象向导    832
    24.4.2   复制钩子处理器    832
    24.4.3   上下文菜单处理器    836
    24.4.4   图标处理器    844
    24.5   总结    850
    第25章   创建ActiveX控件    851
    25.1   为什么要创建ActiveX控件    851
    25.2   创建一个ActiveX控件    851
    25.2.1   ActiveX控件向导    852
    25.2.2   ActiveX框架    875
    25.2.3   属性页    877
    25.3   ActiveForm    886
    25.4   在Web上的ActiveX    892
    25.4.1   与Web浏览器通信    892
    25.4.2   Web发布    901
    25.5   总结    903
    第26章   使用Delphi Open Tools API    904
    26.1   Open Tools API接口    904
    26.2   使用Open Tools API    905
    26.2.1   Dumb向导    905
    26.2.2   Wizard向导    908
    26.2.3   DDG Search    916
    26.3   窗体向导    925
    26.4   总结    931
    第27章   使用Delphi开发CORBA    932
    27.1   ORB    932
    27.2   接口    932
    27.3   Stub和Skeleton    933
    27.4   VisiBroker的ORB    933
    27.4.1   VisiBroker的运行时支持服务    933
    27.4.2   VisiBroker管理工具    934
    27.5   Delphi的CORBA支持    934
    27.5.1   CORBA的类支持    935
    27.5.2   CORBA对象向导    936
    27.5.3   Delphi的类型库编辑器    941
    27.6   在Delphi 5中创建CORBA解决方案    942
    27.6.1   建立一个CORBA服务器    942
    27.6.2   实现IQueryServer的方法    943
    27.6.3   编译一个静态绑定的CORBA
                 客户    956
    27.6.4   编译一个动态绑定的CORBA
                 客户    958
    27.6.5   跨语言的CORBA    960
    27.7   使用VisiBroker ORB    967
    27.8   总结    967
    第四部分   开发数据库
    第28章   编写桌面数据库应用程序    969
    28.1   使用数据集    969
    28.1.1   VCL的数据库体系结构    970
    28.1.2   BDE数据访问组件    970
    28.1.3   打开一个数据集    971
    28.1.4   浏览数据集    971
    28.1.5   对字段操作    975
    28.1.6   刷新数据集    985
    28.1.7   变化的状态    986
    28.1.8   过滤器    986
    28.2   使用TTable组件    988
    28.2.1   查找记录    988
    28.2.2   主/细表    990
    28.2.3   TTable的事件    990
    28.2.4   通过代码创建一个数据库表    991
    28.3   数据模块    992
    28.4   搜索、设置范围和过滤的示例    992
    28.4.1   数据模块    992
    28.4.2   主窗体    993
    28.4.3   Range窗体    995
    28.4.4   Key Search窗体    996
    28.4.5   Filter窗体    998
    28.5   TQuery和TStoredProc:其他数据
              集    1000
    28.6   文本文件数据库表    1001
    28.6.1   概要文件    1001
    28.6.2   数据文件    1002
    28.6.3   使用文本数据库表    1002
    28.6.4   限制    1003
    28.6.5   从文本数据库表中引入数据    1003
    28.7   用ODBC连接    1004
    28.7.1   到哪儿找ODBC驱动程序    1004
    28.7.2   ODBC实例:连接MS Access    1004
    28.8   ActiveX Data Object    1007
    28.8.1   Microsoft 数据访问简介    1007
    28.8.2   ADOExpress组件    1008
    28.8.3   连接一个ADO数据存储    1008
    28.8.4   示例:通过ADO连接    1010
    28.8.5   ADO开发    1011
    28.9   总结    1011
    第29章   开发客户/服务器应用程序    1012
    29.1   为什么要采用客户/服务器结构    1012
    29.2   客户/服务器体系结构    1013
    29.2.1   客户    1013
    29.2.2   服务器    1013
    29.2.3   业务规则    1014
    29.2.4   胖客户、胖服务器、中间层:业
                 务规则属于哪一端    1014
    29.3   客户/服务器模型    1015
    29.3.1   两层模型    1015
    29.3.2   三层模型    1016
    29.4   客户/服务器与桌面数据库开发的比
           较    1017
    29.4.1   面向集合与面向记录    1017
    29.4.2   数据安全    1017
    29.4.3   记录锁定方法    1017
    29.4.4   数据完整性    1018
    29.4.5   面向事务    1018
    29.5   SQL在客户/服务器开发中的角色    1018
    29.6   Delphi客户/服务器开发    1019
    29.7   服务器:后端设计    1019
    29.7.1   数据库对象    1019
    29.7.2   定义数据库表    1020
    29.7.3   使用域    1021
    29.7.4   用视图、存储过程和触发器定义
                 业务规则    1022
    29.7.5   数据库对象的访问权限    1027
    29.8   客户:前端开发    1028
    29.8.1   使用TDatabase组件    1028
    29.8.2   TTable还是TQuery    1034
    29.8.3   使用TQuery组件    1036
    29.8.4   执行存储过程    1041
    29.9   总结    1043
    第30章   扩展数据库VCL    1044
    30.1   使用BDE    1044
    30.1.1   BDE单元    1044
    30.1.2   Check()    1044
    30.1.3   指针和句柄    1045
    30.1.4   使指针同步    1045
    30.2   dBASE表    1045
    30.2.1   物理记录编号    1046
    30.2.2   显示被删除的记录    1047
    30.2.3   测试被软删除的记录    1047
    30.2.4   恢复被软删除的记录    1048
    30.2.5   紧缩表    1048
    30.3   Paradox表    1049
    30.3.1   记录序号    1049
    30.3.2   紧缩    1049
    30.3.3   限制查询结果    1055
    30.3.4   BDE杂项    1056
    30.3.5   编写数据感知VCL控件    1059
    30.4   扩展TDataSet    1063
    30.4.1   过去    1063
    30.4.2   现在    1063
    30.4.3   创建一个TDataSet派生类    1064
    30.5   总结    1083
    第31章   用WebBroker使应用程序具有
             Internet功能    1084
    31.1   ISAPI、NSAPI和CGI—Web服务
           器扩展    1085
    31.1.1   公共网关接口    1085
    31.1.2   ISAPI和NSAPI    1085
    31.2   用Delphi创建Web应用程序    1086
    31.2.1   TWebModule和TWeb-
                 Dispatcher    1086
    31.2.2   TWebRequest和TWeb-
                 Response    1088
    31.3   用HTML内容生成器建立动态网
           页    1091
    31.3.1   TPageProducer    1091
    31.3.2   TDatasetTableProducer和
                 TQueryTableProducer    1092
    31.4   使用cookie保存状态    1097
    31.5   重定向到另一个Web站点    1099
    31.6   从HTML表单中获取信息    1099
    31.7   数据流    1101
    31.8  总结    1104
    第32章   MIDAS开发    1105
    32.1   多层应用程序的结构    1105
    32.2   多层体系结构的优点    1106
    32.3   典型的MIDAS体系结构    1107
    32.3.1   服务器    1107
    32.3.2   客户    1109
    32.4   用MIDAS建立应用程序    1110
    32.4.1   设置服务器    1110
    32.4.2   创建客户    1111
    32.5   增强应用程序的更多选择    1115
    32.5.1   客户优化技巧    1115
    32.5.2   服务器端的技巧    1116
    32.6   几个实例    1117
    32.6.1   连接    1117
    32.6.2   MIDAS的Web功能    1119
    32.7   客户数据集的更多功能    1125
    32.7.1   嵌套的数据集    1125
    32.7.2   客户主/细连接    1125
    32.7.3   两层应用程序    1130
    32.8   部署MIDAS应用程序    1131
    32.9   总结    1134
    第五部分   快速开发数据库应用程序
    第33章   货物管理程序:客户/服务器
             开发    1135
    33.1   设计后端    1135
    33.1.1   定义域    1136
    33.1.2   定义表    1137
    33.1.3   定义生成器    1138
    33.1.4   定义触发器    1138
    33.1.5   定义存储过程    1139
    33.1.6   授权    1141
    33.2   集中数据库访问:业务规则    1141
    33.2.1   登录和退出方法    1150
    33.2.2   Customer表的方法    1151
    33.2.3   Part表的方法    1152
    33.2.4   Sales表的方法    1152
    33.2.5   临时表的方法    1153
    33.2.6   TDataModule操纵数据访问
                 组件的事件    1153
    33.3   设计用户界面    1153
    33.3.1   TMainForm:应用程序的主窗
                 体    1154
    33.3.2   TCustomerForm:客户输入    1158
    33.3.3   TPartsForm: 货物输入    1161
    33.3.4   TSalesForm: 销售浏览    1165
    33.3.5   TNewSalesForm: 销售输入    1165
    33.3.6   CustomerSearch对话框    1169
    33.4   总结    1173
    第34章   客户跟踪系统:MIDAS开发    1174
    34.1   设计服务器应用程序    1174
    34.2   设计客户应用程序    1176
    34.2.1  客户数据模块    1176
    34.2.2    客户主窗体    1184
    34.3   总结    1190
    第35章   错误报告工具:桌面数据库
             开发    1191
    35.1   通用应用程序的需求    1191
    35.1.1   为WWW做准备    1191
    35.1.2   用户的数据输入和登录    1191
    35.1.3   错误处理、浏览和过滤    1191
    35.1.4   错误注解    1191
    35.1.5   用户界面的功能    1192
    35.2   数据模型    1192
    35.3   开发数据模块    1192
    35.3.1   应用程序初始化和登录    1201
    35.3.2   生成Paradox关键值    1202
    35.3.3   错误处理例程    1202
    35.3.4   浏览/过滤错误    1202
    35.3.5   增加用户    1202
    35.3.6   加入注解    1204
    35.4   开发用户界面    1205
    35.4.1   主窗体    1205
    35.4.2   用户界面的其他问题    1211
    35.5   使应用程序具有Web功能    1211
    35.6   总结    1211
    第36章   错误报告工具:使用
             WebBroker    1212
    36.1   网页布局    1212
    36.2   修改数据模块    1213
    36.3   配置TDataSetTableProducer组件:
           dstpBugs    1213
    36.4   配置TWebDispatcher组件:
           wbdpBugs    1213
    36.5   配置TPageProducer组件:
           pprdBugs    1214
    36.6   编写DDGWebBugs ISAPI服务器:
          增加TActionItem实例    1214
    36.6.1   辅助例程    1214
    36.6.2   介绍网页    1215
    36.6.3   获取并校验用户登录名字    1216
    36.7   浏览错误信息    1219
    36.7.1   浏览所有错误信息    1219
    36.7.2   浏览用户自己的错误信息    1221
    36.7.3   格式化表格单元并显示错误细
                 节    1222
    36.8   增加新的错误信息    1223
    36.8.1   获取错误信息    1223
    36.8.2   校验插入的错误信息    1225

  • 相关阅读:
    rpmbuild SPEC语法
    rpm遇到的坑-与VMP冲突
    rpmbuild spec 打包jar变小了、设置禁止压缩二进制文件Disable Binary stripping in rpmbuild
    sed陷阱
    UITableViewController 滚动引起的cocos2d动画暂停问题的解决
    C/C++ 位域知识小结
    李洪强漫谈iOS开发[C语言-043]-判断较早日期
    李洪强iOS开发之添加手势
    李洪强iOS开发之- 实现简单的弹窗
    李洪强iOS开发之后使用XIB实现横向滚动的UIScrollView
  • 原文地址:https://www.cnblogs.com/xumenger/p/4376614.html
Copyright © 2011-2022 走看看