DELPHI 4编程技术内幕

DELPHI 4编程技术内幕
作 者: (美)Charlie Calvert著;潇湘工作室译
出版社: 机械工业出版社
丛编项: 软件开发技术丛书
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: Delphi
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《DELPHI 4编程技术内幕》作者简介

内容简介

本书完整而全面地介绍了Delphi 4。其主要内容有COM和分布式计算、数据库编程、常规编程问题以及图形和DirectX编程。通过本书的学习,读者不仅可以快速了解Delphi 4编程的要旨,还可以掌握许多新技术,如创建COM自动化服务器和客户程序、使用MIDAS进行多层数据库计算、使用DCOM跨网络分布数据库等。本书最大的特点是代码丰富,不仅书中详细介绍了代码样例,配套光盘上还包括了许多书中没有介绍的源程序。本书适用于使用Delphi 4编程的程序员。

图书目录

目 录

译者序

第一部分 入门

第1章 程序设计基础

1.1 本书的结构

1.2范例程序

1.3创建设计良好的程序

1.3.1设计问题:书写简单的代码

1.3.2螺旋式上升

1.3.3好OOP与差OOP的对比

1.3.4注意灵活的事件处理程序

1.3.5感到懒于理清程序的环节

1.3.6避免使用隐藏数据交叉链接对象

1.3.7简短的方法

1.3.8变量、方法以及过程的命名

1.3.9避免特征漂移

1.3.10创建组件

1.3.11使用第三方工具

1.4本书正文的注意事项

1.4.1Unleash和Merc40包

1.4.2CodeBox单元

1.4.3建立网络

1.4.4Borland/Inprise的名称变化

1.4.5注释代码

1.5总结

第2章IDE和VCL增强

2.1可停放的工具栏

2.2使用工具窗口

2.3使用COdeExplor

2.4 Delphi4中的新工具

2.4.1使用ProjectManager和调试器

2.4.2调试DLL

2.4.3使用模块视图

2.4.4使用事件日志窗口

2.4.5CPU视图

2.4.5调试器中的新特征

2.4.6CodeBrowser和TooltipSymbolInsight

2.5停靠窗口

2.5.1在窗体中停放控件

2.5.2在窗体中停放窗体

2.6动作列表

2.6.1使用动作列表

2.6.2使用标准动作

2.7函数重载

2.7.1方法重载和继承

2.7.2使用方法重载时要避免的错误

2.7.3默认参数

2.8动态数组

2.9implements关键字

2.10总结

第3章 多态性

3.1多态性的概念

3.1.1 赋值和等于的比较

3.1.2多态性的简单例子

3.2多态性赋值能力

3.2.1设置子对象适合于它们的父对象

3.2.2多态性的另一面

3.3虚方法和多态性

3.3.1经典的形状演示

3.3.2没有多态性的代码

3.4 VCL中的多态性

3.5总结

第4章 异常处理

4.1本章如何处理异常

4.2异常的理论

4.2.1 异常的功能

4.2.2默认异常处理程序

4.2.3整个程序是一个大try块

4.2.4未处理异常引起的恐慌

4.3异常类

4.4基本异常句法

4.4.1一个简单的try..except模块

4.4.2异常的关联错误字符串

4.4.3找到错误的地址

4.4.4异常处理总结

4.5引发异常

4.5.1引发VCL异常类

4.5.2理解VCL异常类

4.5.3运行Gauntlet:多异常类

4.5.4在常规except语句中捕获异常

4.6创建和引发自己的异常

4.7再引发异常

4.8try..finally块

4.9流、异常和空闲空间

4.10 替换默认的异常处理程序

4.11 使用资源跟踪错误字符串

4.12总结

第5章 线程

5.1进程和内存

5.1.1 线程与多任务

5.1.2 抢占式与非抢占式多任务

5.2线程:一个简单的例子

5.3多线程程序

5.3.1任Thread2程序中使用线程

5.3.2向线程函数传递一个参数

5.3.3临界区:让多个线程同时工作

5.4处理互斥元

5.5线程和VCL

5.6线程安全数据库访问

5.7VCL线程安全对象

5.8使用TThread对象

5.9设置线程的优先级

5.10重访Delphi线程

5.11总结

第二部分 创建组件

第6章 创建组件(一)

6.1组件原理

6.2创建现存组件的派生组件

6.2.1创建简单的组件

6.2.2双向工具

6.2.3注册组件

6.2.4改变组件的默认行为

6.2.5动态创建并检查组件

6.3包:将组件放入ComponentPalette中

6.3.1什么是包

6.3.2创建包

6.4 扩展Un1eash单元

6.4.1TCCBigEdit和TCCEmptyPanel控件

6.4.2创建复合组件

6.4.3创建组件的published属性

6.4.4流属性的注意事项

6.5创建真正有用的组件

6.6总结

第7章 创建组件:(二)

7.1从头开始建立组件

7.2时钟组件

7.2.1了解TCCClock

7.2.2TCCColorClock

7.2.3创建FancyClock

7.3为组件创建图标

7.4ToolsAPI:PropertyEditor和 ComponentEditor

7.4.1五个主要的ToolsAPI

7.4.2PropertyEditor

7.4.3关于注册你自己的组件以及

ComponentEditor的更多知识

7.4ComponentE山tor

7.5不可视的组件

7.6FindAllW程序

7.6.1使用TFileIterator遍历目录

7.6.2什么时候应该把对象做成不可见组件

7.6.3AllDirs单元和FileIter单元

7.6.4遍历目录

7.6.5使用FindFirstFindNext和FindC1ose

7.6.6创建事件处理程序

7.7CompDirs程序

7.8TCCPickDirDlg

7.9组件模板

7.10 ActiveX控件

7.11总结

第三部分 数据库编程

第8章 字段和数据库工具

8.1从关系数据库开始

8.1.1关系数据库模型的优势

8.1.2 简单的逻辑设置:关系数据库的基础

8.1.3DBD和DatabaseExplorer中的索引和关键字

8.2 重点规则:给每个表建立一个关键字

8.2.1一对多的关系:数据和索引

8.2.2用主关键字和主索引工作

8.2.3用副索引和外部关键字工作

8.2.4关键字的重要性

8.3用数据库工具浏览和操作数据库

8.3.1浏览DBDEMOS数据库的关键字和索引

8.3.2用DatabaseDesktop创建索引

8.3.3创建别名

8.3.4使用DatabaseDesktop创建主关键字和外部关键字

8.3.5探究引用完整性

8.3.6关系数据库和联结

8.3.7 联结和QBE

8.4FieldsEditor

8.5计算字段

8.6运行期间的TDBGrid

8.6.1在运行中控制DBGrid的Options属性

8.6.2运行时显示DBGrid选项

8.7使用TDBGrid列

8.7.1改变TDBGird对象的标题

8.7.2 改变网格里的整列

8.7.3改变网格里一行的颜色

8.7.4 改变列宽

8.7.5在TDBGrid里隐藏列

8.7.6显示可见字段的列表

8.7.7运行时移动列

8.8查找字段

8.9多记录对象

8.10总结

第9章 平面文件现实世界数据库

9.1本章示例程序

9.2设计应用程序

9.2.1定义数据

9.2.2程序设计的焦点

9.3定义程序的外观

9.4查找:处理Category字段

9.5设置程序的命令结构

9.6查看应用程序的“粗略草稿

9.7创建自己的对象

9.8创建最终的程序

9.9切换进和切换出只读模式

9.10排序数据

9.11查询数据

9.12筛选数据

9.13标记文件

9.14设置颜色

9.15使用注册表

9.16剪贴板:剪切、复制和粘贴

9.17总结

第10章 关系式数据库

10.1现实世界的数据

10.2测试关联地址程序

10.3kdAdd代码

10.3.1使用kdAdd程序

10.3.2为kdAdd建立索引

10.3.3查询记录

10.3.4插入数据和取消操作

10.3.5删除数据:程序的数据模块初览

10.3.6数据模块:级联删除

10.3.7数据模块:总体登记

10.3.8在字符串资源中加入错误字符串

10.3.9About框

10.4使用kdAddExplore程序

10.4.1使用TSession

10.4.2kdAddExplore程序的代码

10.4.3用TTreeView显示系统数据库

10.4.4 展开TTreeView节点

10.4.5为TTreeView加入可用表的列表

10.4.6找到索引和字段

10.4.7显示别名和别名参数

10.5总结

第11章 使用本地InterBase服务器

11.1从InterBase开始

11.1.1数据库和工作市场

11.1.2设置本地InterBase

11.1.3设置InterBase别名

11.2创建数据库

11.2.1使用WISQL

11.2.2创建表

11.3利用WISQL管理数据库

11.4事务处理

11.4.1创建TRANSACT程序

11.4.2使用TRANSACT程序

11.4.3理解事务处理

11.5高速缓存更新

11.6多对多关系

11.7安全和InterBaseServerManager

11.7.1定义表的访问权力

11.7.2利用InterBaseServerManager备份表

11.8总结

第12章 InterBase编程

12.1关于Music程序

12.2设计Music程序

12.2.1创建数据库方案

12.2.2修改表:空或非空

12.2.3重新命名现有表中的字段

12.2.4创建Blob字段

12.2.5主关键字和外部关键字

12.3在Music表创建索引

12.4 生成器、触发器和存储过程

12.4.1不要在活动索引上使用触发器

12.4.2使用存储过程

12.4.3来自Delphi端的存储过程

12.5服务器端规则和客户端规则

12.6Music程序界面概述

12.7使用子窗体

12.8Music程序的代码

12.8.1使用Music程序

12.8.2禁止密码:TdataBase对象

12.8.3FormCreate事件

12.9使用Music程序中的数据

12.10向数据库提出一个问题:简短的SQL入门

12.10.1不返回数据集合的存储过程

12.10.2查看数据范围

12.11总结

第四部分 COM

第13章 COM接口和基础

13.1理解COM接口

13.1.1COM是什么?

13.1.2COM和窗口

13.1.3即插即用应用程序

13.1.4 COM的问题

13.1.5UNIX上的COM

13.1.6COM+和COM的未来

13.2接口介绍

13.2.1新接口类型

13.2.2接口不是类

13.2.3不能直接实现接口

13.2.4 利用类实现接口

13.2.5调用接口的方法

13.2.6破坏接口

13.3接口背后的理论

13.3.1使用接口的原因

13.3.2维护或更新接口

13.4 创建和使用COM接口

13.4.1理解GUID

13.4.2关于注册表和GUID所有内容

13.4.3理解IUnknown

13.4.4 实现IUnknown

13.4.5为接口指定GUID

13.4.6幻数

13.4.7UnknownByUser程序的注释

13.5高级接口问题

13.5.1多个接口

13.5.2方法解析语句

13.5.3Implements伪指令

13.5.4虚方法表

13.6总结

第14章 TC0mObjectTTypedComObject以及类型库

14.1样例程序

14.2TComObject

14.2.1在DLL中放置普通接口

14.2.2IClassFactory

14.2.3ISystemInfo接口

14.2.4 注册DLL

14.2.5从可执行文件访问存储在DLL中的COM对象

14.2.6 越过程序边界编组数据

14.2.7编组数据

14.2.8Variant数组

14.2.9调用ISystemInfo数据

14.3类型库和查询对象

14.3.1创建类型库

14.3.2 创建查询类型库的客户程序

14.3.3检索ITypeInfo

14.3.4 获取接口信息

14.4 总结

第15章 创建COM自动化服务器和客户程序

15.1理解OLE自动化客户程序和服务器

15.2 建立简单的COM服务器和客户程序

15.2.1建造简单的服务器

15.2.2在服务器上添加方法

15.2.3查看生成的源代码

15.2.4添加接口属性

15.2.5建立简单客户程序

15.2.6通过TCOMInterface来调用方法

15.2.7通过dispinterface调用方法

15.2.8通过Vaeiant调用方法

15.3IDispatch 双重接口和dispinterface

15.3.1从Word调用SimpleAutoServer

15.3.2VTable和双重接口

15.4 类型库

15.4.1什么是类型库

15.4.2创建类型库

15.4.2有效的自动化类型

15.5用EmptyParam忽略参数

15.6注册

15.7自动编组数据

15.8从一个CoClass得到两个或更多的接口

15.9总结

第16章 用De1phi完成Word和Excel自动化

16.1自动化Office应用程序的系统要求

16.2启动Delphi和Excel

16.2.1启动Excel

16.2.2使用COMObj

16.2.3了解Excel的简单自动化

16.2.4比较接口和Variant

16.2.5理解CreateOleObject

16.2.6Variant和类型

16.2.7创建Excel自动对象

16.3了解Excel自动化对象

16.3.1在APplication对象内访问各种对象

16.3.2使用自动化

16.4在Excel和Word间共享图表

16.4.1创建电子表格

16.4.2创建图表

16.4.3使用SeriesCollection对象

16.5从Excel向Word复制数据

16.5.1Word内部的自动化

16.5.2发送文档

16.6总结

第五部分 Internet编程

第17章 接口和InternetExplorer

17.1Variant与接口的对比

17.1.1 补救接口

17.1.2使用类型库

17.2本章所需文件

17.3使用Word和Exce1

17.3.1使用Excel和Word接口

17.3.2比较Variant和接口技术

17.4 使用IE和TwebBrowser

17.4.1开始:访问WebPage中的元素

17.4.2运行时在浏览器上处理

HTMI

17.5在浏览器内放置ActiveX控件

17.6总结

第18章 WebBroker: CGI和ISAPI

18.1WebModule

18.2WebServerApplicationWizard

18.2.1CGI

18.2.2WinCGI

18.2.3ISAPI/NSAPI

18.2.4CGI与ISAPI

18.3WebBroker组件

18.3.1TWebModule

18.3.2 TWebResponse

18.3.3 TWebRequest

18.4 InreaBob

18.5TPageProducer

18.6TDataSetPageProducer

18.7浏览状态

18.7.1FatURL

18.7.2Cookie

18.7.3 隐含字段

18.8高级网页的生成

18.9TDaraSetTableProducer

18.10DatabaseWebApplicationWizard

18.11TQueryTableProducer

18.12总结

第19章 WinINet和FTP

19.1理解WinINet FTP和TCP/IP

19.1.1 所需文件

19.1.2确保FTP在系统中运行

19.1.3安装TCP/IP应该注意的问题

19.2FTP使用WinINet

19.2.1使用InternetOpen

19.2.2使用InternetConnect

19.2.3获得当前目录

19.2.4 在目录中查找文件(一)

19.2.5在目录中查找文件(二)

19.2.6检索文件(一)

19.2.7创建回调

19.2.8检索文件(二)

19.2.9发送文件到服务器的简单方法

19.2.10删除文件

19.2.11创建和删除目录

19.3在程序中使用FTP控件

19.3.1连接服务器

19.3.2响应OnNewDir事件

19.3.3改变目录

19.3.4 跟踪文件传送

19.4总结

第六部分 分布式编程

第20章 DCOM

20.1COM和分布式体系结构

20.1.1 什么是DCOM

20.1.2在Windows95/98和WindowsNT上运行DCOM服务器

20.1.3作为DCOM服务器使用Windows98

20.2 简单的DCOM客户程序和服务器

20.2.1建立服务器

20.2.2理解Safecall

20.2.3机器之间编组数据

20.2.4创建DCOM客户程序

20.2.5使用远程对象

20.3再访问SystemInformation程序

20.4轻量远程数据集

20.4.1理解DataCOMServer程序

20.4.2访问远程数据集的DataCOMC1ient

20.4.3理解DataCOMClient

20.4.4编辑数据行

20.5程序数据和自动化数据

20.6测试远程调试系统

20.7总结

第21章 MIDAS

21.1多层计算概述

21.1.1什么是MIDAS

21.1.2分布式计算的目的

21.1.3公文包模型概述

21.1.4术语

21.1.5查找调度程序

21.2技术细节:使用分布式数据集

21.2.1建立简单的MIDAS应用程序

21.2.2创建SimpleMidasServer

21.2.3理解服务器

21.2.4导出TProvider接口

21.2.5为客户应用程序准备服务器

21.2.6创建简单的MIDAS客户程序

21.2.7理解简单的MIDAS客户程序

21.2.8远程访问服务器

21.2.9使用套接字代替DCOM

21.3建立一对多应用程序

21.4 建立远程数据客户应用程序

21.4.1更新和刷新数据

21.4.2公文包模型

21.4.3PacketRecords

21.5错误处理

21.6 服务器端逻辑与客户端逻辑

21.7所需的DLL

21.8使用OLEnterprise

21.9 总结

第22章 AcriveForm

22.1介绍ActiveForm

22.2建立ActiveForm

22.3配置在InternetExp1orer里使用的ActiveForm

22.3.1为ActiveForm设置选项

22.3.2连接到ActiveForm上

22.3.3了解OCCACHE

22.4 使用CAB文件和包

22.4.1理解INF文件

22.4.2许可证问题

22.5在Word中运行AcriveForm

22.5.1注册应用程序

22.5.2在Microsoft岁ord里运行窗体

22.6使用ActiveFOrm模板

22.7套接字和AcriveForm

22.7.1套接字概述

22.7.2建立套接字支持的MIDASActiveForm

22.7.3创建基于MIDAS的ActiveForm

22.8总结

第23章 MTS

23.1什么是MTS

23.2如何安装MTS

23.3创建简单的MTS服务器

23.4 创建简单的MTS客户程序

23.5调用本地对象

23.6用MTS注册对象

23.7远程调用对象

23.8创建简单的MTS数据库服务器

23.9创建简单的MTS数据库客户程序

23.10处理MTS事务

23.11建立跨越多个服务器的MTS示例

23.12Rocket程序的代码

23.13总结

第24章 CORBA

24.1理解CORBA

24.1.1什么是CORBA

24.1.2比较DCOM和CORBA

24.1.3什么是ORB

24.1.4什么是SmartAgent

24.1.5什么是BOA

24.1.6什么是代理、存根和框架

24.1.7理解Delphi和CORBA

24.2两个重要的CORBA存储库

24.2.1什么是InterfaceRepository

24.2.2什么是ImplementationRepository

24.3简单的CORBA对象

24.3.1服务器

24.3.2客户程序

24.3.3理解客户程序

24.3.4理解CORBA存根

14.3.5理解CORBA框架

24.4理解服务器的IDL接口

24.5简单的CORBA动态项目

24.6简单的CORBA数据库对象

24.6.1 创建CORBA数据库服务器

24.6.2创建客户程序

24.7利用VisiBrokerManager和OSFind

24.8总结

第25章 Delphi、Java和C++

25.1在Delphi和Java中使用CORBA

25.2从Delphi调用Java服务器

25.3从C++Builder调用DelphiCORBA服务器

25.3.1用C++建立CORBA服务器并从Delphi调用

25.3.2理解BCBCorbaserver

25.4 总结

第七部分 游戏编程

第26章 VCL图形类

26.1WindowsGDI与VCLTCanvas

26.1.1理解GDI

26.1.2 VCL使图形编程更容易

26.2使用TCanvas

26.3研究与使用画刷

26.3.1TBeush.Color属性分析

26.3.2TBrush.Style属性分析

26.3.3TBrush.Assign方法分析

26.4 研究与使用画笔

26.4.1TPen.Style属性分析

26.4.2TPen.Width属性分析

26.4.3TPen.Mode属性分析

26.5研究与使用字体

26.5.1TFont.Height属性分析

26.5.2TFont.Size属性分析

26.5.3TFont.Name属性分析

26.5.4 TFont.Style属性分析

26.6 研究与使用TCanvas.PenPos

26.7研究与使用TCanvas.ClipRect

26.8研究与使用TCanvas.CopyMode

26.9研究与使用TCanvas.Pixels

26.10 分析与理解TCanvas方法

26.11 MainBrush范例代码

26.11.1 OnCreate事件

26.11.2FormShow方法

26.11.3设置画笔模式

26.11.4使用Fonts

26.11.5在画布上画出形状

26.11.6使用CopyMode

26.11.7修改ClipRect

26.12其他名称的线条

26.13 深入研究VCL

26.13.1深入了解TColor

26.l3.2Colors样本项目

26.13.3OnChange事件处理程序

26.14 调色板

26.15 深入了解Windows的图形文件格式

26.15.1分析位图和DIB

26.15.2分析图标

26.15.3分析元文件

26.16分析TPaintBox和Tlmage

26.17再谈位图

26.18 总结

第27章 DirectDraw

27.1理解DirectDraw

27.1.1什么是DirectDraw

27.1.2 关于双缓冲的几点想法

27.1.3硬件与仿真

27.2 一个简单的DirwreDraw程序

27.3释放接口

27.3.1进入独占模式和改变屏幕分辨率

27.3.2DirectDraw表面是什么

27.3.3向屏幕写文本

27.3.4 交换表面

27.3.5释放内存

27.4平滑动画

27.5使用位图

27.6游戏资源

27.7总结

第28章 更多的DirectX技术

28.1DirectSound

28.1.1 初始化DirectSound

28.1.2枚举声音驱动程序

28.1.3使用DirectSOundBuffer

28.1.4 打开WAV文件

28.1.5播放声音文件

28.1.6播放大文件

28.1.7一次播放两个WAV文件

28.2创建DirectX游戏

28.2.1创建DelphiMan程序

28.2.2实现DelphiMan程序的注意事项

28.2.3“机器人物 的控制

28.2.4小结DelphiMan程序

28.3浏览Direct3D

28.4关键的3D技术

28.5总结

配套光盘内容