目 錄
譯者序
第一部分 入門
第1章 程序設計基礎
1.1 本書的結構
1.2范例程序
1.3創(chuàng)建設計良好的程序
1.3.1設計問題:書寫簡單的代碼
1.3.2螺旋式上升
1.3.3好OOP與差OOP的對比
1.3.4注意靈活的事件處理程序
1.3.5感到懶于理清程序的環(huán)節(jié)
1.3.6避免使用隱藏數(shù)據(jù)交叉鏈接對象
1.3.7簡短的方法
1.3.8變量、方法以及過程的命名
1.3.9避免特征漂移
1.3.10創(chuàng)建組件
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??看翱?br />
2.5.1在窗體中停放控件
2.5.2在窗體中停放窗體
2.6動作列表
2.6.1使用動作列表
2.6.2使用標準動作
2.7函數(shù)重載
2.7.1方法重載和繼承
2.7.2使用方法重載時要避免的錯誤
2.7.3默認參數(shù)
2.8動態(tài)數(shù)組
2.9implements關鍵字
2.10總結
第3章 多態(tài)性
3.1多態(tài)性的概念
3.1.1 賦值和等于的比較
3.1.2多態(tài)性的簡單例子
3.2多態(tài)性賦值能力
3.2.1設置子對象適合于它們的父對象
3.2.2多態(tài)性的另一面
3.3虛方法和多態(tài)性
3.3.1經典的形狀演示
3.3.2沒有多態(tài)性的代碼
3.4 VCL中的多態(tài)性
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異常的關聯(lián)錯誤字符串
4.4.3找到錯誤的地址
4.4.4異常處理總結
4.5引發(fā)異常
4.5.1引發(fā)VCL異常類
4.5.2理解VCL異常類
4.5.3運行Gauntlet:多異常類
4.5.4在常規(guī)except語句中捕獲異常
4.6創(chuàng)建和引發(fā)自己的異常
4.7再引發(fā)異常
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向線程函數(shù)傳遞一個參數(shù)
5.3.3臨界區(qū):讓多個線程同時工作
5.4處理互斥元
5.5線程和VCL
5.6線程安全數(shù)據(jù)庫訪問
5.7VCL線程安全對象
5.8使用TThread對象
5.9設置線程的優(yōu)先級
5.10重訪Delphi線程
5.11總結
第二部分 創(chuàng)建組件
第6章 創(chuàng)建組件(一)
6.1組件原理
6.2創(chuàng)建現(xiàn)存組件的派生組件
6.2.1創(chuàng)建簡單的組件
6.2.2雙向工具
6.2.3注冊組件
6.2.4改變組件的默認行為
6.2.5動態(tài)創(chuàng)建并檢查組件
6.3包:將組件放入ComponentPalette中
6.3.1什么是包
6.3.2創(chuàng)建包
6.4 擴展Un1eash單元
6.4.1TCCBigEdit和TCCEmptyPanel控件
6.4.2創(chuàng)建復合組件
6.4.3創(chuàng)建組件的published屬性
6.4.4流屬性的注意事項
6.5創(chuàng)建真正有用的組件
6.6總結
第7章 創(chuàng)建組件:(二)
7.1從頭開始建立組件
7.2時鐘組件
7.2.1了解TCCClock
7.2.2TCCColorClock
7.2.3創(chuàng)建FancyClock
7.3為組件創(chuàng)建圖標
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創(chuàng)建事件處理程序
7.7CompDirs程序
7.8TCCPickDirDlg
7.9組件模板
7.10 ActiveX控件
7.11總結
第三部分 數(shù)據(jù)庫編程
第8章 字段和數(shù)據(jù)庫工具
8.1從關系數(shù)據(jù)庫開始
8.1.1關系數(shù)據(jù)庫模型的優(yōu)勢
8.1.2 簡單的邏輯設置:關系數(shù)據(jù)庫的基礎
8.1.3DBD和DatabaseExplorer中的索引和關鍵字
8.2 重點規(guī)則:給每個表建立一個關鍵字
8.2.1一對多的關系:數(shù)據(jù)和索引
8.2.2用主關鍵字和主索引工作
8.2.3用副索引和外部關鍵字工作
8.2.4關鍵字的重要性
8.3用數(shù)據(jù)庫工具瀏覽和操作數(shù)據(jù)庫
8.3.1瀏覽DBDEMOS數(shù)據(jù)庫的關鍵字和索引
8.3.2用DatabaseDesktop創(chuàng)建索引
8.3.3創(chuàng)建別名
8.3.4使用DatabaseDesktop創(chuàng)建主關鍵字和外部關鍵字
8.3.5探究引用完整性
8.3.6關系數(shù)據(jù)庫和聯(lián)結
8.3.7 聯(lián)結和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章 平面文件現(xiàn)實世界數(shù)據(jù)庫
9.1本章示例程序
9.2設計應用程序
9.2.1定義數(shù)據(jù)
9.2.2程序設計的焦點
9.3定義程序的外觀
9.4查找:處理Category字段
9.5設置程序的命令結構
9.6查看應用程序的“粗略草稿
9.7創(chuàng)建自己的對象
9.8創(chuàng)建最終的程序
9.9切換進和切換出只讀模式
9.10排序數(shù)據(jù)
9.11查詢數(shù)據(jù)
9.12篩選數(shù)據(jù)
9.13標記文件
9.14設置顏色
9.15使用注冊表
9.16剪貼板:剪切、復制和粘貼
9.17總結
第10章 關系式數(shù)據(jù)庫
10.1現(xiàn)實世界的數(shù)據(jù)
10.2測試關聯(lián)地址程序
10.3kdAdd代碼
10.3.1使用kdAdd程序
10.3.2為kdAdd建立索引
10.3.3查詢記錄
10.3.4插入數(shù)據(jù)和取消操作
10.3.5刪除數(shù)據(jù):程序的數(shù)據(jù)模塊初覽
10.3.6數(shù)據(jù)模塊:級聯(lián)刪除
10.3.7數(shù)據(jù)模塊:總體登記
10.3.8在字符串資源中加入錯誤字符串
10.3.9About框
10.4使用kdAddExplore程序
10.4.1使用TSession
10.4.2kdAddExplore程序的代碼
10.4.3用TTreeView顯示系統(tǒng)數(shù)據(jù)庫
10.4.4 展開TTreeView節(jié)點
10.4.5為TTreeView加入可用表的列表
10.4.6找到索引和字段
10.4.7顯示別名和別名參數(shù)
10.5總結
第11章 使用本地InterBase服務器
11.1從InterBase開始
11.1.1數(shù)據(jù)庫和工作市場
11.1.2設置本地InterBase
11.1.3設置InterBase別名
11.2創(chuàng)建數(shù)據(jù)庫
11.2.1使用WISQL
11.2.2創(chuàng)建表
11.3利用WISQL管理數(shù)據(jù)庫
11.4事務處理
11.4.1創(chuàng)建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創(chuàng)建數(shù)據(jù)庫方案
12.2.2修改表:空或非空
12.2.3重新命名現(xiàn)有表中的字段
12.2.4創(chuàng)建Blob字段
12.2.5主關鍵字和外部關鍵字
12.3在Music表創(chuàng)建索引
12.4 生成器、觸發(fā)器和存儲過程
12.4.1不要在活動索引上使用觸發(fā)器
12.4.2使用存儲過程
12.4.3來自Delphi端的存儲過程
12.5服務器端規(guī)則和客戶端規(guī)則
12.6Music程序界面概述
12.7使用子窗體
12.8Music程序的代碼
12.8.1使用Music程序
12.8.2禁止密碼:TdataBase對象
12.8.3FormCreate事件
12.9使用Music程序中的數(shù)據(jù)
12.10向數(shù)據(jù)庫提出一個問題:簡短的SQL入門
12.10.1不返回數(shù)據(jù)集合的存儲過程
12.10.2查看數(shù)據(jù)范圍
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不能直接實現(xiàn)接口
13.2.4 利用類實現(xiàn)接口
13.2.5調用接口的方法
13.2.6破壞接口
13.3接口背后的理論
13.3.1使用接口的原因
13.3.2維護或更新接口
13.4 創(chuàng)建和使用COM接口
13.4.1理解GUID
13.4.2關于注冊表和GUID所有內容
13.4.3理解IUnknown
13.4.4 實現(xiàn)IUnknown
13.4.5為接口指定GUID
13.4.6幻數(shù)
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從可執(zhí)行文件訪問存儲在DLL中的COM對象
14.2.6 越過程序邊界編組數(shù)據(jù)
14.2.7編組數(shù)據(jù)
14.2.8Variant數(shù)組
14.2.9調用ISystemInfo數(shù)據(jù)
14.3類型庫和查詢對象
14.3.1創(chuàng)建類型庫
14.3.2 創(chuàng)建查詢類型庫的客戶程序
14.3.3檢索ITypeInfo
14.3.4 獲取接口信息
14.4 總結
第15章 創(chuàng)建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創(chuàng)建類型庫
15.4.2有效的自動化類型
15.5用EmptyParam忽略參數(shù)
15.6注冊
15.7自動編組數(shù)據(jù)
15.8從一個CoClass得到兩個或更多的接口
15.9總結
第16章 用De1phi完成Word和Excel自動化
16.1自動化Office應用程序的系統(tǒng)要求
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創(chuàng)建Excel自動對象
16.3了解Excel自動化對象
16.3.1在APplication對象內訪問各種對象
16.3.2使用自動化
16.4在Excel和Word間共享圖表
16.4.1創(chuàng)建電子表格
16.4.2創(chuàng)建圖表
16.4.3使用SeriesCollection對象
16.5從Excel向Word復制數(shù)據(jù)
16.5.1Word內部的自動化
16.5.2發(fā)送文檔
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瀏覽狀態(tài)
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在系統(tǒng)中運行
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創(chuàng)建回調
19.2.8檢索文件(二)
19.2.9發(fā)送文件到服務器的簡單方法
19.2.10刪除文件
19.2.11創(chuàng)建和刪除目錄
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機器之間編組數(shù)據(jù)
20.2.4創(chuàng)建DCOM客戶程序
20.2.5使用遠程對象
20.3再訪問SystemInformation程序
20.4輕量遠程數(shù)據(jù)集
20.4.1理解DataCOMServer程序
20.4.2訪問遠程數(shù)據(jù)集的DataCOMC1ient
20.4.3理解DataCOMClient
20.4.4編輯數(shù)據(jù)行
20.5程序數(shù)據(jù)和自動化數(shù)據(jù)
20.6測試遠程調試系統(tǒng)
20.7總結
第21章 MIDAS
21.1多層計算概述
21.1.1什么是MIDAS
21.1.2分布式計算的目的
21.1.3公文包模型概述
21.1.4術語
21.1.5查找調度程序
21.2技術細節(jié):使用分布式數(shù)據(jù)集
21.2.1建立簡單的MIDAS應用程序
21.2.2創(chuàng)建SimpleMidasServer
21.2.3理解服務器
21.2.4導出TProvider接口
21.2.5為客戶應用程序準備服務器
21.2.6創(chuàng)建簡單的MIDAS客戶程序
21.2.7理解簡單的MIDAS客戶程序
21.2.8遠程訪問服務器
21.2.9使用套接字代替DCOM
21.3建立一對多應用程序
21.4 建立遠程數(shù)據(jù)客戶應用程序
21.4.1更新和刷新數(shù)據(jù)
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創(chuàng)建基于MIDAS的ActiveForm
22.8總結
第23章 MTS
23.1什么是MTS
23.2如何安裝MTS
23.3創(chuàng)建簡單的MTS服務器
23.4 創(chuàng)建簡單的MTS客戶程序
23.5調用本地對象
23.6用MTS注冊對象
23.7遠程調用對象
23.8創(chuàng)建簡單的MTS數(shù)據(jù)庫服務器
23.9創(chuàng)建簡單的MTS數(shù)據(jù)庫客戶程序
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動態(tài)項目
24.6簡單的CORBA數(shù)據(jù)庫對象
24.6.1 創(chuàng)建CORBA數(shù)據(jù)庫服務器
24.6.2創(chuàng)建客戶程序
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創(chuàng)建DirectX游戲
28.2.1創(chuàng)建DelphiMan程序
28.2.2實現(xiàn)DelphiMan程序的注意事項
28.2.3“機器人物 的控制
28.2.4小結DelphiMan程序
28.3瀏覽Direct3D
28.4關鍵的3D技術
28.5總結
配套光盤內容