Delphi開發人員指南

Delphi開發人員指南

《Delphi開發人員指南》是2000年機械工業出版社出版的圖書,作者是(美)Steve Teixeira,(美)Xavier Pacheco。

基本介紹

  • 書名:Delphi開發人員指南
  • 作者:(美)Steve Teixeira,(美)Xavier Pacheco
  • 類別:軟體工具 程式設計
  • 出版社:機械工業出版社
  • 出版時間:2000年
  • 頁數:18,1263頁
  • ISBN:7-111-08040-8
  • 從 編 項:Borland/Inprise核心技術叢書
  • 中圖分類號:TP311.56
圖書信息,摘要信息,圖書目錄,

圖書信息

題名拼音: Delphi kai fa ren yuan zhi nan
責 任 者: (美)Steve Teixeira,(美)Xavier Pacheco著
出版地點: 北京
載體形態: 18,1263頁
從 編 項: Borland/Inprise核心技術叢書
主 題 詞: 軟體工具 程式設計
中圖分類號: TP311.56
附註說明: 北京寶蘭—英博思信息技術有限公司推薦用書

摘要信息

本書主堡祖由快速開發的基礎、高級技術、基於組件的開發、開發數據閥求達項庫、快速開發資料庫應用程式五個部分組成,主要介紹了Delphi 5各方面的編程技巧。

圖書目錄

譯者序
前言
第一部分 快速開發的基礎
第1章 Delphi 5下的Windows編程
1.1 Delphi產品家族
1.2 Delphi是什麼
1.2.1 可視化開發環境
1.2.2 編譯器的速度和已編譯代碼的效率
1.2.3 程式語言的功能及其複雜性
1.2.4 資料庫結構的靈活性和可擴展性
1.2.5 框架對設計和使用模式的擴充
1.3 歷史回顧
1.3.1 Delphi 1
1.3.2 Delphi 2
1.3.3 Delphi 3
1.3.4 Delphi 4
1.3.5 Delphi 5
1.3.6 未來
1.4 Delphi 5的IDE
1.4.1 主視窗
1.4.2 窗體設計器
1.4.3 Object Inspector
1.4.4 代碼編輯器
1.4.5 代碼瀏覽器
1.4.6 原始碼生成器
1.5 創建一個簡單的應用程式
1.6 事件機制的優勢在哪裡
1.7 加速原型化
1.8 可擴展的組件和環境
1.9 IDE最重要的十點功能
1.10 總結
第2章 Object Pascal語言
2.1 註解
2.2 新的過程和函式特徵
2.2.1 圓括弧
2.2.2 重載
2.2.3 預設值參數
2.3 變數
2.4 常量
2.5 運算符
2.5.3 邏輯表達式
2.5.5 按位運算符
2.5.6 加減運算過程
2.6 Object Pascal類型
2.6.1 類型的比較
2.6.2 字元
2.6.3 字元串
2.6.4 變體類型
2.6.5 Currency
2.7 用戶自定義類型
2.7.1 數組
2.7.2 動態數組
2.7.3 記錄
2.7.4 集合
2.7.5 對象
2.7.6 指針
2.7.7 類型別名
2.8 強制類型轉換和類型約定
2.9 字元串鍵櫃體資源
2.10 測試條件
2.10.1 if語句
2.10.2 case語句
2.11 循環
2.11.1 for循環
2.11.2 while循環
2.11.3 repeat...until
2.11.4 Break()過程
2.11.5 Continue()過程
2.12 過程和函式
2.13 作用域
2.14 單元
2.14.1 uses子句
2.14.2 循環單元引用
2.15 包
2.15.1 使用Delphi的包
2.15.2 包的語法
2.16 面向對象編程
2.17 使用Delphi對象
2.17.1 聲明和實例化
2.17.2 析構
2.18 方法
2.18.1 方法的類型
2.18.2 屬性
2.18.3 可見性表示符
2.18.4 友類
2.18.5 對象的秘密
2.18.6 TObject:所有對象的祖先
2.18.7 接口
2.19.1 異常類
2.19.2 執行的流程
2.19.3 重新觸發異常婚婆乘
2.20 運行期類型信息
2.21 總結
第3章 Win32 API
3.1 對象:以前和現在
3.1.1 核心對象遙拜
3.1.2 GDI和用戶對象
3.2 多任務和多執行緒
3.3 Win32內糠愉辯存管理
3.3.1 什麼是線性記憶體模式
3.3.2 Win32系統是怎樣管理記憶體的
3.4 Win32的錯紙戀辨辣誤處理
3.5 總結
第4章 應用程式框架和設計
4.1 理解Delphi環境和項目的體系結構
4.2 構成Delphi5項目的檔案
4.2.1 項目檔案
4.2.2 單元檔案
4.2.3 窗體檔案
4.2.4 資源檔案
4.2.5 項目選項及桌面設定檔案
4.2.6 備份檔案
4.2.7 包檔案
4.3 項目管理提示
4.3.1 一個項目一個目錄
4.3.2 共享代碼的單元
4.3.3 多項目管理
4.4 Delphi5項目的框架類
4.4.1 TForm類
4.4.2 TApplication類
4.4.3 TApplication的方法
4.4.4 TApplication的事件
4.4.5 TScreen類
4.5 定義公共體系結構:使用對象庫
4.5.1 考慮應用程式的體系結構
4.5.2 Delphi固有的體系結構
4.5.3 體系結構的例子
4.5.4 子窗體TChildForm
4.5.5 資料庫基礎模式窗體TDBModeForm
4.5.6 資料庫導航/狀態窗體TDBNavstatForm
4.5.7 使用框架進行應用程式結構設計
4.6 一些項目管理的功能
4.6.1 在項目中添加資源
4.6.2 改變螢幕游標
4.6.3 避免創建一個窗體的多個實例
4.6.4 在DPR檔案中增加代碼
4.6.5 覆蓋應用程式的異常處理
4.6.6 顯示一個封面
4.6.7 使窗體尺寸最小
4.6.8 運行沒有窗體的項目
4.6.9 退出Windows
4.6.10 防止關閉Windows
4.7 總結
第5章 理解Windows訊息
5.1 什麼是訊息
5.2 訊息的類型
5.3 Windows訊息系統是如何工作的
5.4 Delphi的訊息系統
5.5 訊息處理
5.5.1 訊息處理:不是無約定的
5.5.2 對Result域賦值
5.5.3 TApplication的OnMessage事件
5.6 傳送自己的訊息
5.6.1 Perform()
5.6.2 sendMessage()和PostMessage()
5.7 非標準的訊息
5.7.1 通知訊息
5.7.2 VCL內部的訊息
5.7.3 用戶自定義的訊息
5.8 一個訊息系統的剖析:VCL
5.9 訊息與事件之間的關係
5.10 總結
第6章 代碼標準文檔
6.1 一般的原始碼格式規則
6.1.1 縮進
6.1.2 邊距
6.1.3 begin...end
6.2 Object Pascal
6.2.1 括弧
6.2.2 保留字和關鍵字
6.2.3 過程和函式
6.2.4 變數
6.2.5 類型
6.2.6 構造類型
6.2.7 語句
6.2.8 結構化異常處理
6.2.9 類
6.3 檔案
6.3.1 項目檔案
6.3.2 窗體檔案
6.3.3 數據模組檔案
6.3.4 遠程數據模組檔案
6.3.5 單元檔案
6.3.6 檔案頭
6.4 窗體與數據模組
6.4.1 窗體
6.4.2 數據模組
6.5 包
6.5.1 運行期包與設計期包
6.5.2 檔案命名標準
6.6 組件
6.6.1 自定義組件
6.6.2 組件實例的命名規則
6.7 代碼標準文檔升級
第7章 使用ActiveX控制項
7.1 什麼是ActiveX控制項
7.2 何時使用ActiveX控制項
7.3 把ActiveX控制項加到組件面板上
7.4 Delphi組件外套
7.4.1 外套檔案是從哪來的
7.4.2 枚舉
7.4.3 控制項接口
7.4.4 TOleControl的派生類
7.4.5 方法
7.4.6 屬性
7.5 在應用程式中使用ActiveX控制項
7.6 發布帶有ActiveX控制項的應用程式
7.7 註冊ActiveX控制項
7.8 BlackJack:一個OCX示範程式
7.8.1 紙牌
7.8.2 遊戲
7.8.3 調用ActiveX控制項的方法
7.9 總結
第二部分 高級技術
第8章 使用GDI和字型的圖像編程
8.1 Tlmage:Delphi的圖像顯示
8.2 存儲圖像
8.3 使用TCanvas的屬性
8.3.1 畫筆
8.3.2 使用TCanvas.Pixels屬性
8.3.3 使用刷子
8.3.4 使用字型
8.3.5 使用CopyMode屬性
8.3.6 其他屬性
8.4 使用TCanvas的方法
8.4.1 用TCanvas畫線
8.4.2 用TCanvas畫幾何形狀
8.4.3 畫圖的示範程式
8.4.4 用TCanvas輸出文字
8.5 坐標系統和映射模式
8.5.1 設備坐標系
8.5.2 邏輯坐標系
8.5.3 螢幕坐標系
8.5.4 窗體坐標系
8.5.5 坐標映射
8.5.6 設定映射模式
8.5.7 設定視窗/視區範圍
8.5.8 關於映射模式的示範程式
8.6 創建一個繪畫程式
8.7 編寫動畫程式
8.8 高級字型
8.8.1 Win32字型類型
8.8.2 基本字型元素
8.8.3 GDI字型分類
8.8.4 顯示不同字型
8.9 實際創建一種字型
8.9.1 這個程式是如何工作的
8.9.2 顯示字型的有關信息
8.10 總結
第9章 動態程式庫
9.1 究竟什麼是DLL
9.2 靜態連結與動態連結
9.3 為什麼要使用DLL
9.3.1 共享代碼、資源和數據
9.3.2 隱藏實現的細節
9.4 創建和使用DLL
9.4.1 數美分:一個簡單的DLL
9.4.2 顯示DLL中的模式窗體
9.5 顯示DLL中的無模式窗體
9.6 在Delphi應用程式中使用DLL
9.7 DLL的入口函式和出口函式
9.7.1 進程/執行緒初始化和終止例程
9.7.2 DLL入口/出口示例
9.8 DLL中的異常
9.8.1 在16位Delphi中捕捉異常
9.8.2 異常和Safecall指示符
9.9 回調函式
9.9.1 使用回調函式
9.9.2 擁有者繪製的列表框
9.10 從DLL中調用回調函式
9.11 在不同的進程間共享DLL數據
9.11.1 一個可以被共享數據的DLL
9.11.2 訪問DLL中的共享數據
9.12 引出DLL中的對象
9.13 總結
第10章 Delphi 5的列印
10.1 TPrinter對象
10.2 TPrinter.Canvas
10.3 簡單列印
10.3.1 列印TMemo組件中的內容
10.3.2 列印點陣圖
10.3.3 列印RTF格式的文本
10.4 列印窗體
10.5 高級列印
10.5.1 列印分欄報表
10.5.2 放棄列印進程
10.5.3 列印信封
10.5.4 抽象列印
10.5.5 一個簡單的列印預覽程式
10.6 其他列印任務
10.6.1 TDeviceMode結構
10.6.2 設定列印份數
10.6.3 設定列印方向
10.6.4 設定紙張尺寸
10.6.5 設定紙張的長度
10.6.6 設定頁的寬度
10.6.7 設定列印比例
10.6.8 設定列印顏色
10.6.9 設定列印質量
10.6.10 設定雙面列印
10.6.11 指定默認印表機
10.7 獲取印表機信息
10.7.1 GetDeviceCaps()和DeviceCapabilities()
10.7.2 獲取印表機信息的示範程式
10.8 總結
第11章 編寫多執行緒應用程式
11.1 對執行緒的解釋
11.1.1 一種新型的多任務
11.1.2 在Delphi程式中使用多執行緒
11.1.3 關於執行緒的濫用
11.2 TThread對象
11.2.1 TThread基礎
11.2.2 TThread實例
11.2.3 執行緒的終止
11.2.4 與VCL同步
11.2.5 一個演示程式
11.2.6 優先權和時序安排
11.2.7 掛起和喚醒執行緒
11.2.8 測試執行緒的時間
11.3 管理多執行緒
11.3.2 執行緒同步
11.4 一個多執行緒的示範程式
11.4.1 用戶界面
11.4.2 搜尋執行緒
11.4.3 調整優先權
11.5 多執行緒與資料庫
11.6 多執行緒與圖形處理
11.7 總結
第12章 檔案處理
12.1 處理檔案的輸入/輸出
12.1.1 文本檔案的處理
12.1.2 類型檔案的處理
12.1.3 無類型檔案的處理
12.2 TTextRec和TFileRec結構
12.3 記憶體映射檔案
12.3.1 記憶體映射檔案的套用
12.3.2 使用映射檔案
12.3.3 記憶體映射檔案的一致性
12.3.4 文本搜尋實用程式
12.4 目錄和驅動器
12.4.1 獲得有效驅動器和驅動器類型列表
12.4.2 獲取驅動器信息
12.4.3 獲取Windows目錄位置
12.4.4 獲取系統目錄的位置
12.4.5 獲取當前目錄
12.4.6 在目錄中查找檔案
12.4.7 複製和刪除目錄樹
12.4.8 獲取檔案的版本信息
12.4.9 獲取版本號
12.4.10 獲得作業系統信息
12.4.11 使用TVerInfoRes類
12.5 使用SHFileOperation()函式
12.6 總結
第13章 核心技術
13.1 高級訊息處理
13.1.1 子類化
13.1.2 HookMainWindow()
13.2 防止同時出現多個應用程式實例
13.3 使用Delphi的BASM
13.3.1 BASM是如何工作的
13.3.2 簡易的參數訪問
13.3.3 var聲明的參數
13.3.4 Register調用約定
13.3.5 全彙編過程
13.3.6 記錄
13.4 使用掛鈎
13.4.1 設定掛鈎
13.4.2 使用掛鈎函式
13.4.3 使用脫鉤函式
13.4.4 使用SendKeys:一個JournalPlayback類型的掛鈎
13.5 使用C/C++的OBJ檔案
13.5.1 調用一個函式
13.5.2 命名問題
13.5.3 共享數據
13.5.4 使用Delphi RTL
13.6 使用C++類
13.7 替換
13.7.1 generic替換
13.7.2 WM_COPYDATA
13.8 獲取包的信息
13.9 總結
第14章 獲取系統信息
14.1 InfoForm:獲取一般信息
14.1.1 格式化字元串
14.1.2 獲取記憶體狀態
14.1.3 獲取作業系統版本信息
14.1.4 獲取目錄信息
14.1.5 獲取系統信息
14.1.6 檢查環境
14.2 平台無關性
14.3 Windows95/98:使用ToolHelp32
14.3.1 快照
14.3.2 列舉進程
14.3.3 列舉執行緒
14.3.4 列舉模組
14.3.5 列舉堆
14.3.6 堆的視圖
14.3.7 程式源碼
14.4 Windows NT/2000:PSAPI
14.5 總結
第15章 稱植到Delphi 5
15.1 Delphi 5的新功能
15.1.1 哪個版本
15.1.2 單元、組件和包
15.2 從Delphi 4移植到Delphi 5
15.2.1 IDE問題
15.2.2 RTL問題
15.2.3 VCL問題
15.2.4 Internet開發問題
15.2.5 資料庫問題
15.3 從Delphi 3移植到Delphi 5
15.3.1 無符號的32位整數
15.3.2 64位整數
15.3.3 Real類型
15.4 從Delphi 2移植到Delphi 5
15.4.1 改變為Boolean類型
15.4.2 ResourceString
15.4.3 RTL的改變
15.4.4 TCustomForm
15.4.5 GetChildren()
15.4.6 自動化伺服器
15.5 從Delphi 1移植到Delphi 5
15.5.1 字元串和字元
15.5.2 變數長度和範圍
15.5.3 記錄的排列
15.5.4 32位的數學運算
15.5.5 TDateTime類
15.5.6 單元結束代碼
15.5.7 彙編語言
15.5.8 調用約定
15.5.9 動態程式庫
15.5.10 Windows作業系統的變化
15.5.11 32位的地址空間
15.5.12 32位資源
15.5.13 VBX控制項
15.5.14 Windows API函式的變化
15.5.15 16位和32位並存
15.6 總結
第16章 MDI應用程式
16.1 創建MDI應用程式
16.1.1 理解MDI基礎
16.1.2 子窗體
16.1.3 主窗體
16.2 選單
16.2.1 用MDI程式合併選單
16.2.2 在選單中列出打開的文檔
16.3 雜類MDI技術
16.3.1 在MDI客戶區輸出一幅點陣圖
16.3.2 創建一個隱藏的子窗體
16.3.3 最小化、最大化、還原所有MDI子窗體
16.4 總結
第17章 用剪貼簿共享信息
17.1 剪貼簿基礎
17.1.1 剪貼簿對文本操作
17.1.2 剪貼簿對點陣圖操作
17.2 創建你自己的剪貼簿格式
17.2.1 創建一個感知剪貼簿的對象
17.2.2 使用自定義的剪貼簿格式
17.3 總結
第18章 多媒體編程
18.1 創建一個簡單的媒體播放器
18.2 播放WAV檔案
18.3 播放視頻
18.3.1 顯示第一幀
18.3.2 使用Display屬性
18.3.3 使用DisplayRect屬性
18.3.4 理解TMediaPlayer事件
18.3.5 DDGMPlay的原始碼
18.4 設備支持
18.5 創建音頻CD播放器
18.5.1 顯示閃屏
18.5.2 開始編寫CD播放器
18.5.3 更新CD播放器的信息
18.5.4 刷新CD播放器的方法
18.5.5 CD播放器的原始碼
18.6 總結
第19章 測試與調試
19.1 常見的編程錯誤
19.1.1 在類的實例創建之前使用了它
19.1.2 確保類的實例被釋放
19.1.3 掌握指針
19.1.4 使用未初始化的PChar類變數
19.1.5 釋放空指針
19.2 使用內部集成調試器
19.2.1 使用命令行參數
19.2.2 斷點
19.2.3 逐行執行代碼
19.2.4 使用Watch視窗
19.2.5 Debug Inspector
19.2.6 計算和修改
19.2.7 訪問調用棧
19.2.8 查看執行緒
19.2.9 事件日誌
19.2.10 模組視圖
19.2.11 調試DLL
19.2.12 CPU視圖
19.3 總結
第三部分 基於組件的開發
第20章 VCL元素和運行期類型信息
20.1 什麼是組件
20.2 組件的類型
20.2.1 標準控制項
20.2.2 自定義控制項
20.2.3 圖形控制項
20.2.4 非可視組件
20.3 組件的結構
20.3.1 屬性
20.3.2 屬性的類型
20.3.3 方法
20.3.4 事件
20.3.5 流屬性
20.3.6 擁有關係
20.3.7 父子關係
20.4 可視組件的層次關係
20.4.1 TPersistent類
20.4.2 TComponent類
20.4.3 TControl類
20.4.4 TWinControl類
20.4.5 TGraphicControl類
20.4.6 TCustomControl類
20.4.7 其他類
20.5 運行期類型信息
20.5.1 TypInfo.pas單元:定義運行類型信息
20.5.2 獲取類型信息
20.5.3 獲取方法指針的類型信息
20.5.4 獲取有序類型的類型信息
20.5.5 通過RTTI給屬性賦值
20.6 總結
第21章 編寫自定義組件
21.1 組件設計基礎
21.1.1 確定是否需要編寫組件
21.1.2 編寫組件的一般步驟
21.1.3 確定一個祖先類
21.1.4 創建一個組件單元
21.1.5 添加屬性
21.1.6 加入事件
21.1.7 創建自定義的方法
21.1.8 構造器和析構器
21.1.9 註冊組件
21.1.10 測試組件
21.1.11 提供組件圖示
21.2 一個組件的示例
21.2.1 擴展Win32組件外套功能
21.2.2 TddgRunButton:創建屬性
21.3 TddgButtonEdit:一個容器組件
21.3.1 設計
21.3.2 顯現屬性
21.3.3 顯現事件
21.3.4 TddgDigitalClock:創建組件事件
21.3.5 把窗體加到組件面板上
21.4 組件包
21.4.1 為什麼使用包
21.4.2 什麼情況下不使用包
21.4.3 包的類型
21.4.4 包檔案
21.4.5 在Delphi 5應用程式中使用包
21.4.6 把包安裝到IDE中
21.4.7 設計自己的包
21.4.8 包的版本
21.4.9 包的編譯指令
21.4.10 關於{$WEAKPACKAGEUNIT}指令
21.4.11 包的命名約定
21.5 附加包
21.6 總結
第22章 高級組件技術
22.1 偽可視組件
22.1.1 擴展提示功能
22.1.2 創建一個THintWindow的派生類
22.1.3 橢圓型的視窗
22.1.4 使派生的提示視窗有效
22.1.5 放置TDDGHintWindow
22.2 動態組件
22.2.1 走馬燈組件
22.2.2 編寫這個組件
22.2.3 在記憶體中的點陣圖上輸出
22.2.4 輸出組件
22.2.5 使組件動起來
22.2.6 測試TddgMarquee組件
22.3 編寫屬性編輯器
22.3.1 派生出一個屬性編輯器對象
22.3.2 把屬性當作文本來編輯
22.3.3 註冊新的屬性編輯器
22.3.4 用對話框來編輯屬性
22.4 組件編輯器
22.4.1 TComponentEditor
22.4.2 一個簡單的組件
22.4.3 一個簡單的組件編輯器
22.4.4 註冊組件編輯器
22.5 對非公開的組件數據進行流操作
22.5.1 聲明屬性
22.5.2 DefineProperty()的例子
22.5.3 TddgWaveFile:調用DefineBinaryProperty()的例子
22.6 屬性類別
22.6.1 類別的類
22.6.2 自定義類別
22.7 組件列表:TCollection和TCollectionItem
22.7.1 聲明TCollectionItem類:TRunBtnItem
22.7.2 聲明TCollection類:TRunButtons
22.7.3 實現TddgLaunchPad、TRunBtnItem和TRunButtons
22.7.4 用對話框屬性編輯器編輯TCollectionItem組件的列表
22.8 總結
第23章 COM和ActiveX
23.1 COM基礎
23.1.1 COM:組件對象模型
23.1.2 COM、ActiveX、OLE的異同
23.1.3 術語
23.1.4 ActiveX的偉大之處
23.1.5 OLE1和OLE2
23.1.6 結構化存儲
23.1.7 統一數據傳輸
23.1.8 執行緒模式
23.1.9 COM+
23.2 COM與Object Pascal
23.2.1 接口
23.2.2 使用接口
23.2.3 HResult返回類型
23.3 COM對象和類工廠
23.3.1 TComObject和TComObjectFactory
23.3.2 in-process COM伺服器
23.3.3 創建一個in-proc COM伺服器實例
23.3.4 out-of-process COM伺服器
23.4 聚合
23.5 分散式COM
23.6 自動化
23.6.1 IDispatch接口
23.6.2 類型信息
23.6.3 後期捆綁與前期捆綁
23.6.4 註冊
23.6.5 創建自動化伺服器
23.6.6 創建自動化控制器
23.7 高級自動化技術
23.7.1 自動化事件
23.7.2 自動化集合
23.7.3 類型庫中新的接口類型
23.7.4 交換二進制數據
23.7.5 COM的語言支持
23.8 MTS
23.8.1 為什麼會出現MTS
23.8.2 什麼是MTS
23.8.3 Delphi中的MTS
23.9 TOleContainer
23.9.1 一個簡單的範例程式
23.9.2 一個稍複雜的範例程式
23.10 總結
第24章 擴展Windows外殼
24.1 托盤圖示組件
24.1.1 API
24.1.2 處理訊息
24.1.3 圖示及提示
24.1.4 滑鼠點擊
24.1.5 隱藏應用程式
24.1.6 托盤圖示應用程式舉例
24.2 應用程式桌面工具列
24.2.1 API
24.2.2 TAppBar:AppBar的窗體
24.2.3 使用TAppBar
24.3 外殼連結
24.3.1 獲取一個IShellLink實例
24.3.2 使用IShellLink
24.3.3 創建一個外殼連結
24.3.4 獲取及設定連結信息
24.3.5 一個例子程式
24.4 外殼擴展
24.4.1 COM對象嚮導
24.4.2 複製鉤子處理器
24.4.3 上下文選單處理器
24.4.4 圖示處理器
24.5 總結
第25章 創建ActiveX控制項
25.1 為什麼要創建ActiveX控制項
25.2 創建一個ActiveX控制項
25.2.1 ActiveX控制項嚮導
25.2.2 ActiveX框架
25.2.3 屬性頁
25.3 ActiveForm
25.4 在Web上的ActiveX
25.4.1 與Web瀏覽器通信
25.4.2 Web發布
25.5 總結
第26章 使用Delphi Open Tools API
26.1 Open Tools API接口
26.2 使用Open Tools API
26.2.1 Dumb嚮導
26.2.2 Wizard嚮導
26.2.3 DDG Search
26.3 窗體嚮導
26.4 總結
第27章 使用Delphi開發CORBA
27.1 ORB
27.2 接口
27.3 Stub和Skeleton
27.4 VisiBroker的ORB
27.4.1 VisiBroker的運行時支持服務
27.4.2 VisiBroker管理工具
27.5 Delphi的CORBA支持
27.5.1 CORBA的類支持
27.5.2 CORBA對象嚮導
27.5.3 Delphi的類型庫編輯器
27.6 在Delphi 5中創建CORBA解決方案
27.6.1 建立一個CORBA伺服器
27.6.2 實現IQueryServer的方法
27.6.3 編譯一個靜態綁定的CORBA客戶
27.6.4 編譯一個動態綁定的CORBA客戶
27.6.5 跨語言的CORBA
27.7 使用VisiBroker ORB
27.8 總結
第四部分 開發資料庫
第28章 編寫桌面資料庫應用程式
28.1 使用數據集
28.1.1 VCL的資料庫體系結構
28.1.2 BDE數據訪問組件
28.1.3 打開一個數據集
28.1.4 瀏覽數據集
28.1.5 對欄位操作
28.1.6 刷新數據集
28.1.7 變化的狀態
28.1.8 過濾器
28.2 使用TTable組件
28.2.1 查找記錄
28.2.2 主/細表
28.2.3 TTable的事件
28.2.4 通過代碼創建一個資料庫表
28.3 數據模組
28.4 搜尋、設定範圍和過濾的示例
28.4.1 數據模組
28.4.2 主窗體
28.4.3 Range窗體
28.4.4 Key Search窗體
28.4.5 Filter窗體
28.5 TQuery和TStoredProc:其他數據集
28.6 文本檔案資料庫表
28.6.1 概要檔案
28.6.2 數據檔案
28.6.3 使用文本資料庫表
28.6.4 限制
28.6.5 從文本資料庫表中引入數據
28.7 用ODBC連線
28.7.1 到哪兒找ODBC驅動程式
28.7.2 ODBC實例:連線MS Access
28.8 ActiveX Data Object
28.8.1 Microsoft數據訪問簡介
28.8.2 ADOExpress組件
28.8.3 連線一個ADO數據存儲
28.8.4 示例:通過ADO連線
28.8.5 ADO開發
28.9 總結
第29章 開發客戶/伺服器應用程式
29.1 為什麼要採用客戶/伺服器結構
29.2 客戶/伺服器體系結構
29.2.1 客戶
29.2.2 伺服器
29.2.3 業務規則
29.2.4 胖客戶、胖伺服器、中間層:業務規則屬於哪一端
29.3 客戶/伺服器模型
29.3.1 兩層模型
29.3.2 三層模型
29.4 客戶/伺服器與桌面資料庫開發的比較
29.4.1 面向集合與面向記錄
29.4.2 數據安全
29.4.3 記錄鎖定方法
29.4.5 面向事務
29.5 SQL在客戶/伺服器開發中的角色
29.6 Delphi客戶/伺服器開發
29.7 伺服器:後端設計
29.7.1 資料庫對象
29.7.2 定義資料庫表
29.7.3 使用域
29.7.4 用視圖、存儲過程和觸發器定義業務規則
29.7.5 資料庫對象的訪問許可權
29.8 客戶:前端開發
29.8.1 使用TDatabase組件
29.8.2 TTable還是TQuery
29.8.3 使用TQuery組件
29.8.4 執行存儲過程
29.9 總結
第30章 擴展資料庫VCL
30.1 使用BDE
30.1.1 BDE單元
30.1.2 Check()
30.1.3 指針和句柄
30.1.4 使指針同步
30.2 dBASE表
30.2.1 物理記錄編號
30.2.2 顯示被刪除的記錄
30.2.3 測試被軟刪除的記錄
30.2.4 恢復被軟刪除的記錄
30.2.5 緊縮表
30.3 Paradox表
30.3.1 記錄序號
30.3.2 緊縮
30.3.3 限制查詢結果
30.3.4 BDE雜項
30.3.5 編寫數據感知VCL控制項
30.4 擴展TDataSet
30.4.1 過去
30.4.2 現在
30.4.3 創建一個TDataSet派生類
30.5 總結
第31章 用WebBroker使應用程式具有Internet功能
31.1 ISAPI、NSAPI和CGI——Web伺服器擴展
31.1.2 ISAPI和NSAPI
31.2 用Delphi創建Web應用程式
31.2.1 TWebModule和TWebDispatcher
31.2.2 TWebRequest和TWebResponse
31.3 用HTML內容生成器建立動態網頁
31.3.1 TPageProducer
31.3.2 TDatasetTableProducer和TQueryTableProducer
31.4 使用cookie保存狀態
31.5 重定向到另一個Web站點
31.6 從HTML表單中獲取信息
31.7 數據流
31.8 總結
第32章 MIDAS開發
32.1 多層應用程式的結構
32.2 多層體系結構的優點
32.3 典型的MIDAS體系結構
32.3.1 伺服器
32.3.2 客戶
32.4 用MIDAS建立應用程式
32.4.1 設定伺服器
32.4.2 創建客戶
32.5 增強應用程式的更多選擇
32.5.1 客戶最佳化技巧
32.5.2 伺服器端的技巧
32.6 幾個實例
32.6.1 連線
32.6.2 MIDAS的Web功能
32.7 客戶數據集的更多功能
32.7.1 嵌套的數據集
32.7.2 客戶主/細連線
32.7.3 兩層應用程式
32.8 部署MIDAS應用程式
32.9 總結
第五部分 快速開發資料庫應用程式
第33章 貨物管理程式:客戶/伺服器開發
33.1 設計後端
33.1.1 定義域
33.1.2 定義表
33.1.3 定義生成器
33.1.4 定義觸發器
33.1.5 定義存儲過程
33.1.6 授權
33.2 集中資料庫訪問:業務規則
33.2.1 登錄和退出方法
33.2.2 Customer表的方法
33.2.3 Part表的方法
33.2.4 Sales表的方法
33.2.5 臨時表的方法
33.2.6 TDataModule操縱數據訪問組件的事件
33.3 設計用戶界面
33.3.1 TMainForm:應用程式的主窗體
33.3.2 TCustomerForm:客戶輸入
33.3.3 TPartsForm:貨物輸入
33.3.4 TSalesForm:銷售瀏覽
33.3.5 TNewSalesForm:銷售輸入
33.3.6 CustomerSearch對話框
33.4 總結
第34章 客戶跟蹤系統:MIDAS開發
34.1 設計伺服器應用程式
34.2 設計客戶應用程式
34.2.1 客戶數據模組
34.2.2 客戶主窗體
34.3 總結
第35章 錯誤報告工具:桌面資料庫開發
35.1 通用應用程式的需求
35.1.1 為WWW做準備
35.1.2 用戶的數據輸入和登錄
35.1.3 錯誤處理、瀏覽和過濾
35.1.4 錯誤註解
35.1.5 用戶界面的功能
35.2 數據模型
35.3 開發數據模組
35.3.1 應用程式初始化和登錄
35.3.2 生成Paradox關鍵值
35.3.3 錯誤處理例程
35.3.4 瀏覽/過濾錯誤
35.3.5 增加用戶
35.3.6 加入註解
35.4 開發用戶界面
35.4.1 主窗體
35.4.2 用戶界面的其他問題
35.5 使應用程式具有Web功能
35.6 總結
第36章 錯誤報告工具:使用WebBroker
36.1 網頁布局
36.2 修改數據模組
36.3 配置TDataSetTableProducer組件:dstpBugs
36.4 配置TWebDispatcher組件:wbdpBugs
36.5 配置TPageProducer組件:pprdBugs
36.6 編寫DDGWebBugs ISAPI伺服器:增加TActionItem實例
36.6.1 輔助例程
36.6.2 介紹網頁
36.6.3 獲取並校驗用戶登錄名字
36.7 瀏覽錯誤信息
36.7.1 瀏覽所有錯誤信息
36.7.2 瀏覽用戶自己的錯誤信息
36.7.3 格式化表格單元並顯示錯誤細節
36.8 增加新的錯誤信息
36.8.1 獲取錯誤信息
36.8.2 校驗插入的錯誤信息
36.9 總結
第六部分 附錄
附錄A 錯誤信息與異常
附錄B BDE錯誤代碼
附錄C 參考文獻
2.6.2 字元
2.6.3 字元串
2.6.4 變體類型
2.6.5 Currency
2.7 用戶自定義類型
2.7.1 數組
2.7.2 動態數組
2.7.3 記錄
2.7.4 集合
2.7.5 對象
2.7.6 指針
2.7.7 類型別名
2.8 強制類型轉換和類型約定
2.9 字元串資源
2.10 測試條件
2.10.1 if語句
2.10.2 case語句
2.11 循環
2.11.1 for循環
2.11.2 while循環
2.11.3 repeat...until
2.11.4 Break()過程
2.11.5 Continue()過程
2.12 過程和函式
2.13 作用域
2.14 單元
2.14.1 uses子句
2.14.2 循環單元引用
2.15 包
2.15.1 使用Delphi的包
2.15.2 包的語法
2.16 面向對象編程
2.17 使用Delphi對象
2.17.1 聲明和實例化
2.17.2 析構
2.18 方法
2.18.1 方法的類型
2.18.2 屬性
2.18.3 可見性表示符
2.18.4 友類
2.18.5 對象的秘密
2.18.6 TObject:所有對象的祖先
2.18.7 接口
2.19.1 異常類
2.19.2 執行的流程
2.19.3 重新觸發異常
2.20 運行期類型信息
2.21 總結
第3章 Win32 API
3.1 對象:以前和現在
3.1.1 核心對象
3.1.2 GDI和用戶對象
3.2 多任務和多執行緒
3.3 Win32記憶體管理
3.3.1 什麼是線性記憶體模式
3.3.2 Win32系統是怎樣管理記憶體的
3.4 Win32的錯誤處理
3.5 總結
第4章 應用程式框架和設計
4.1 理解Delphi環境和項目的體系結構
4.2 構成Delphi5項目的檔案
4.2.1 項目檔案
4.2.2 單元檔案
4.2.3 窗體檔案
4.2.4 資源檔案
4.2.5 項目選項及桌面設定檔案
4.2.6 備份檔案
4.2.7 包檔案
4.3 項目管理提示
4.3.1 一個項目一個目錄
4.3.2 共享代碼的單元
4.3.3 多項目管理
4.4 Delphi5項目的框架類
4.4.1 TForm類
4.4.2 TApplication類
4.4.3 TApplication的方法
4.4.4 TApplication的事件
4.4.5 TScreen類
4.5 定義公共體系結構:使用對象庫
4.5.1 考慮應用程式的體系結構
4.5.2 Delphi固有的體系結構
4.5.3 體系結構的例子
4.5.4 子窗體TChildForm
4.5.5 資料庫基礎模式窗體TDBModeForm
4.5.6 資料庫導航/狀態窗體TDBNavstatForm
4.5.7 使用框架進行應用程式結構設計
4.6 一些項目管理的功能
4.6.1 在項目中添加資源
4.6.2 改變螢幕游標
4.6.3 避免創建一個窗體的多個實例
4.6.4 在DPR檔案中增加代碼
4.6.5 覆蓋應用程式的異常處理
4.6.6 顯示一個封面
4.6.7 使窗體尺寸最小
4.6.8 運行沒有窗體的項目
4.6.9 退出Windows
4.6.10 防止關閉Windows
4.7 總結
第5章 理解Windows訊息
5.1 什麼是訊息
5.2 訊息的類型
5.3 Windows訊息系統是如何工作的
5.4 Delphi的訊息系統
5.5 訊息處理
5.5.1 訊息處理:不是無約定的
5.5.2 對Result域賦值
5.5.3 TApplication的OnMessage事件
5.6 傳送自己的訊息
5.6.1 Perform()
5.6.2 sendMessage()和PostMessage()
5.7 非標準的訊息
5.7.1 通知訊息
5.7.2 VCL內部的訊息
5.7.3 用戶自定義的訊息
5.8 一個訊息系統的剖析:VCL
5.9 訊息與事件之間的關係
5.10 總結
第6章 代碼標準文檔
6.1 一般的原始碼格式規則
6.1.1 縮進
6.1.2 邊距
6.1.3 begin...end
6.2 Object Pascal
6.2.1 括弧
6.2.2 保留字和關鍵字
6.2.3 過程和函式
6.2.4 變數
6.2.5 類型
6.2.6 構造類型
6.2.7 語句
6.2.8 結構化異常處理
6.2.9 類
6.3 檔案
6.3.1 項目檔案
6.3.2 窗體檔案
6.3.3 數據模組檔案
6.3.4 遠程數據模組檔案
6.3.5 單元檔案
6.3.6 檔案頭
6.4 窗體與數據模組
6.4.1 窗體
6.4.2 數據模組
6.5 包
6.5.1 運行期包與設計期包
6.5.2 檔案命名標準
6.6 組件
6.6.1 自定義組件
6.6.2 組件實例的命名規則
6.7 代碼標準文檔升級
第7章 使用ActiveX控制項
7.1 什麼是ActiveX控制項
7.2 何時使用ActiveX控制項
7.3 把ActiveX控制項加到組件面板上
7.4 Delphi組件外套
7.4.1 外套檔案是從哪來的
7.4.2 枚舉
7.4.3 控制項接口
7.4.4 TOleControl的派生類
7.4.5 方法
7.4.6 屬性
7.5 在應用程式中使用ActiveX控制項
7.6 發布帶有ActiveX控制項的應用程式
7.7 註冊ActiveX控制項
7.8 BlackJack:一個OCX示範程式
7.8.1 紙牌
7.8.2 遊戲
7.8.3 調用ActiveX控制項的方法
7.9 總結
第二部分 高級技術
第8章 使用GDI和字型的圖像編程
8.1 Tlmage:Delphi的圖像顯示
8.2 存儲圖像
8.3 使用TCanvas的屬性
8.3.1 畫筆
8.3.2 使用TCanvas.Pixels屬性
8.3.3 使用刷子
8.3.4 使用字型
8.3.5 使用CopyMode屬性
8.3.6 其他屬性
8.4 使用TCanvas的方法
8.4.1 用TCanvas畫線
8.4.2 用TCanvas畫幾何形狀
8.4.3 畫圖的示範程式
8.4.4 用TCanvas輸出文字
8.5 坐標系統和映射模式
8.5.1 設備坐標系
8.5.2 邏輯坐標系
8.5.3 螢幕坐標系
8.5.4 窗體坐標系
8.5.5 坐標映射
8.5.6 設定映射模式
8.5.7 設定視窗/視區範圍
8.5.8 關於映射模式的示範程式
8.6 創建一個繪畫程式
8.7 編寫動畫程式
8.8 高級字型
8.8.1 Win32字型類型
8.8.2 基本字型元素
8.8.3 GDI字型分類
8.8.4 顯示不同字型
8.9 實際創建一種字型
8.9.1 這個程式是如何工作的
8.9.2 顯示字型的有關信息
8.10 總結
第9章 動態程式庫
9.1 究竟什麼是DLL
9.2 靜態連結與動態連結
9.3 為什麼要使用DLL
9.3.1 共享代碼、資源和數據
9.3.2 隱藏實現的細節
9.4 創建和使用DLL
9.4.1 數美分:一個簡單的DLL
9.4.2 顯示DLL中的模式窗體
9.5 顯示DLL中的無模式窗體
9.6 在Delphi應用程式中使用DLL
9.7 DLL的入口函式和出口函式
9.7.1 進程/執行緒初始化和終止例程
9.7.2 DLL入口/出口示例
9.8 DLL中的異常
9.8.1 在16位Delphi中捕捉異常
9.8.2 異常和Safecall指示符
9.9 回調函式
9.9.1 使用回調函式
9.9.2 擁有者繪製的列表框
9.10 從DLL中調用回調函式
9.11 在不同的進程間共享DLL數據
9.11.1 一個可以被共享數據的DLL
9.11.2 訪問DLL中的共享數據
9.12 引出DLL中的對象
9.13 總結
第10章 Delphi 5的列印
10.1 TPrinter對象
10.2 TPrinter.Canvas
10.3 簡單列印
10.3.1 列印TMemo組件中的內容
10.3.2 列印點陣圖
10.3.3 列印RTF格式的文本
10.4 列印窗體
10.5 高級列印
10.5.1 列印分欄報表
10.5.2 放棄列印進程
10.5.3 列印信封
10.5.4 抽象列印
10.5.5 一個簡單的列印預覽程式
10.6 其他列印任務
10.6.1 TDeviceMode結構
10.6.2 設定列印份數
10.6.3 設定列印方向
10.6.4 設定紙張尺寸
10.6.5 設定紙張的長度
10.6.6 設定頁的寬度
10.6.7 設定列印比例
10.6.8 設定列印顏色
10.6.9 設定列印質量
10.6.10 設定雙面列印
10.6.11 指定默認印表機
10.7 獲取印表機信息
10.7.1 GetDeviceCaps()和DeviceCapabilities()
10.7.2 獲取印表機信息的示範程式
10.8 總結
第11章 編寫多執行緒應用程式
11.1 對執行緒的解釋
11.1.1 一種新型的多任務
11.1.2 在Delphi程式中使用多執行緒
11.1.3 關於執行緒的濫用
11.2 TThread對象
11.2.1 TThread基礎
11.2.2 TThread實例
11.2.3 執行緒的終止
11.2.4 與VCL同步
11.2.5 一個演示程式
11.2.6 優先權和時序安排
11.2.7 掛起和喚醒執行緒
11.2.8 測試執行緒的時間
11.3 管理多執行緒
11.3.2 執行緒同步
11.4 一個多執行緒的示範程式
11.4.1 用戶界面
11.4.2 搜尋執行緒
11.4.3 調整優先權
11.5 多執行緒與資料庫
11.6 多執行緒與圖形處理
11.7 總結
第12章 檔案處理
12.1 處理檔案的輸入/輸出
12.1.1 文本檔案的處理
12.1.2 類型檔案的處理
12.1.3 無類型檔案的處理
12.2 TTextRec和TFileRec結構
12.3 記憶體映射檔案
12.3.1 記憶體映射檔案的套用
12.3.2 使用映射檔案
12.3.3 記憶體映射檔案的一致性
12.3.4 文本搜尋實用程式
12.4 目錄和驅動器
12.4.1 獲得有效驅動器和驅動器類型列表
12.4.2 獲取驅動器信息
12.4.3 獲取Windows目錄位置
12.4.4 獲取系統目錄的位置
12.4.5 獲取當前目錄
12.4.6 在目錄中查找檔案
12.4.7 複製和刪除目錄樹
12.4.8 獲取檔案的版本信息
12.4.9 獲取版本號
12.4.10 獲得作業系統信息
12.4.11 使用TVerInfoRes類
12.5 使用SHFileOperation()函式
12.6 總結
第13章 核心技術
13.1 高級訊息處理
13.1.1 子類化
13.1.2 HookMainWindow()
13.2 防止同時出現多個應用程式實例
13.3 使用Delphi的BASM
13.3.1 BASM是如何工作的
13.3.2 簡易的參數訪問
13.3.3 var聲明的參數
13.3.4 Register調用約定
13.3.5 全彙編過程
13.3.6 記錄
13.4 使用掛鈎
13.4.1 設定掛鈎
13.4.2 使用掛鈎函式
13.4.3 使用脫鉤函式
13.4.4 使用SendKeys:一個JournalPlayback類型的掛鈎
13.5 使用C/C++的OBJ檔案
13.5.1 調用一個函式
13.5.2 命名問題
13.5.3 共享數據
13.5.4 使用Delphi RTL
13.6 使用C++類
13.7 替換
13.7.1 generic替換
13.7.2 WM_COPYDATA
13.8 獲取包的信息
13.9 總結
第14章 獲取系統信息
14.1 InfoForm:獲取一般信息
14.1.1 格式化字元串
14.1.2 獲取記憶體狀態
14.1.3 獲取作業系統版本信息
14.1.4 獲取目錄信息
14.1.5 獲取系統信息
14.1.6 檢查環境
14.2 平台無關性
14.3 Windows95/98:使用ToolHelp32
14.3.1 快照
14.3.2 列舉進程
14.3.3 列舉執行緒
14.3.4 列舉模組
14.3.5 列舉堆
14.3.6 堆的視圖
14.3.7 程式源碼
14.4 Windows NT/2000:PSAPI
14.5 總結
第15章 稱植到Delphi 5
15.1 Delphi 5的新功能
15.1.1 哪個版本
15.1.2 單元、組件和包
15.2 從Delphi 4移植到Delphi 5
15.2.1 IDE問題
15.2.2 RTL問題
15.2.3 VCL問題
15.2.4 Internet開發問題
15.2.5 資料庫問題
15.3 從Delphi 3移植到Delphi 5
15.3.1 無符號的32位整數
15.3.2 64位整數
15.3.3 Real類型
15.4 從Delphi 2移植到Delphi 5
15.4.1 改變為Boolean類型
15.4.2 ResourceString
15.4.3 RTL的改變
15.4.4 TCustomForm
15.4.5 GetChildren()
15.4.6 自動化伺服器
15.5 從Delphi 1移植到Delphi 5
15.5.1 字元串和字元
15.5.2 變數長度和範圍
15.5.3 記錄的排列
15.5.4 32位的數學運算
15.5.5 TDateTime類
15.5.6 單元結束代碼
15.5.7 彙編語言
15.5.8 調用約定
15.5.9 動態程式庫
15.5.10 Windows作業系統的變化
15.5.11 32位的地址空間
15.5.12 32位資源
15.5.13 VBX控制項
15.5.14 Windows API函式的變化
15.5.15 16位和32位並存
15.6 總結
第16章 MDI應用程式
16.1 創建MDI應用程式
16.1.1 理解MDI基礎
16.1.2 子窗體
16.1.3 主窗體
16.2 選單
16.2.1 用MDI程式合併選單
16.2.2 在選單中列出打開的文檔
16.3 雜類MDI技術
16.3.1 在MDI客戶區輸出一幅點陣圖
16.3.2 創建一個隱藏的子窗體
16.3.3 最小化、最大化、還原所有MDI子窗體
16.4 總結
第17章 用剪貼簿共享信息
17.1 剪貼簿基礎
17.1.1 剪貼簿對文本操作
17.1.2 剪貼簿對點陣圖操作
17.2 創建你自己的剪貼簿格式
17.2.1 創建一個感知剪貼簿的對象
17.2.2 使用自定義的剪貼簿格式
17.3 總結
第18章 多媒體編程
18.1 創建一個簡單的媒體播放器
18.2 播放WAV檔案
18.3 播放視頻
18.3.1 顯示第一幀
18.3.2 使用Display屬性
18.3.3 使用DisplayRect屬性
18.3.4 理解TMediaPlayer事件
18.3.5 DDGMPlay的原始碼
18.4 設備支持
18.5 創建音頻CD播放器
18.5.1 顯示閃屏
18.5.2 開始編寫CD播放器
18.5.3 更新CD播放器的信息
18.5.4 刷新CD播放器的方法
18.5.5 CD播放器的原始碼
18.6 總結
第19章 測試與調試
19.1 常見的編程錯誤
19.1.1 在類的實例創建之前使用了它
19.1.2 確保類的實例被釋放
19.1.3 掌握指針
19.1.4 使用未初始化的PChar類變數
19.1.5 釋放空指針
19.2 使用內部集成調試器
19.2.1 使用命令行參數
19.2.2 斷點
19.2.3 逐行執行代碼
19.2.4 使用Watch視窗
19.2.5 Debug Inspector
19.2.6 計算和修改
19.2.7 訪問調用棧
19.2.8 查看執行緒
19.2.9 事件日誌
19.2.10 模組視圖
19.2.11 調試DLL
19.2.12 CPU視圖
19.3 總結
第三部分 基於組件的開發
第20章 VCL元素和運行期類型信息
20.1 什麼是組件
20.2 組件的類型
20.2.1 標準控制項
20.2.2 自定義控制項
20.2.3 圖形控制項
20.2.4 非可視組件
20.3 組件的結構
20.3.1 屬性
20.3.2 屬性的類型
20.3.3 方法
20.3.4 事件
20.3.5 流屬性
20.3.6 擁有關係
20.3.7 父子關係
20.4 可視組件的層次關係
20.4.1 TPersistent類
20.4.2 TComponent類
20.4.3 TControl類
20.4.4 TWinControl類
20.4.5 TGraphicControl類
20.4.6 TCustomControl類
20.4.7 其他類
20.5 運行期類型信息
20.5.1 TypInfo.pas單元:定義運行類型信息
20.5.2 獲取類型信息
20.5.3 獲取方法指針的類型信息
20.5.4 獲取有序類型的類型信息
20.5.5 通過RTTI給屬性賦值
20.6 總結
第21章 編寫自定義組件
21.1 組件設計基礎
21.1.1 確定是否需要編寫組件
21.1.2 編寫組件的一般步驟
21.1.3 確定一個祖先類
21.1.4 創建一個組件單元
21.1.5 添加屬性
21.1.6 加入事件
21.1.7 創建自定義的方法
21.1.8 構造器和析構器
21.1.9 註冊組件
21.1.10 測試組件
21.1.11 提供組件圖示
21.2 一個組件的示例
21.2.1 擴展Win32組件外套功能
21.2.2 TddgRunButton:創建屬性
21.3 TddgButtonEdit:一個容器組件
21.3.1 設計
21.3.2 顯現屬性
21.3.3 顯現事件
21.3.4 TddgDigitalClock:創建組件事件
21.3.5 把窗體加到組件面板上
21.4 組件包
21.4.1 為什麼使用包
21.4.2 什麼情況下不使用包
21.4.3 包的類型
21.4.4 包檔案
21.4.5 在Delphi 5應用程式中使用包
21.4.6 把包安裝到IDE中
21.4.7 設計自己的包
21.4.8 包的版本
21.4.9 包的編譯指令
21.4.10 關於{$WEAKPACKAGEUNIT}指令
21.4.11 包的命名約定
21.5 附加包
21.6 總結
第22章 高級組件技術
22.1 偽可視組件
22.1.1 擴展提示功能
22.1.2 創建一個THintWindow的派生類
22.1.3 橢圓型的視窗
22.1.4 使派生的提示視窗有效
22.1.5 放置TDDGHintWindow
22.2 動態組件
22.2.1 走馬燈組件
22.2.2 編寫這個組件
22.2.3 在記憶體中的點陣圖上輸出
22.2.4 輸出組件
22.2.5 使組件動起來
22.2.6 測試TddgMarquee組件
22.3 編寫屬性編輯器
22.3.1 派生出一個屬性編輯器對象
22.3.2 把屬性當作文本來編輯
22.3.3 註冊新的屬性編輯器
22.3.4 用對話框來編輯屬性
22.4 組件編輯器
22.4.1 TComponentEditor
22.4.2 一個簡單的組件
22.4.3 一個簡單的組件編輯器
22.4.4 註冊組件編輯器
22.5 對非公開的組件數據進行流操作
22.5.1 聲明屬性
22.5.2 DefineProperty()的例子
22.5.3 TddgWaveFile:調用DefineBinaryProperty()的例子
22.6 屬性類別
22.6.1 類別的類
22.6.2 自定義類別
22.7 組件列表:TCollection和TCollectionItem
22.7.1 聲明TCollectionItem類:TRunBtnItem
22.7.2 聲明TCollection類:TRunButtons
22.7.3 實現TddgLaunchPad、TRunBtnItem和TRunButtons
22.7.4 用對話框屬性編輯器編輯TCollectionItem組件的列表
22.8 總結
第23章 COM和ActiveX
23.1 COM基礎
23.1.1 COM:組件對象模型
23.1.2 COM、ActiveX、OLE的異同
23.1.3 術語
23.1.4 ActiveX的偉大之處
23.1.5 OLE1和OLE2
23.1.6 結構化存儲
23.1.7 統一數據傳輸
23.1.8 執行緒模式
23.1.9 COM+
23.2 COM與Object Pascal
23.2.1 接口
23.2.2 使用接口
23.2.3 HResult返回類型
23.3 COM對象和類工廠
23.3.1 TComObject和TComObjectFactory
23.3.2 in-process COM伺服器
23.3.3 創建一個in-proc COM伺服器實例
23.3.4 out-of-process COM伺服器
23.4 聚合
23.5 分散式COM
23.6 自動化
23.6.1 IDispatch接口
23.6.2 類型信息
23.6.3 後期捆綁與前期捆綁
23.6.4 註冊
23.6.5 創建自動化伺服器
23.6.6 創建自動化控制器
23.7 高級自動化技術
23.7.1 自動化事件
23.7.2 自動化集合
23.7.3 類型庫中新的接口類型
23.7.4 交換二進制數據
23.7.5 COM的語言支持
23.8 MTS
23.8.1 為什麼會出現MTS
23.8.2 什麼是MTS
23.8.3 Delphi中的MTS
23.9 TOleContainer
23.9.1 一個簡單的範例程式
23.9.2 一個稍複雜的範例程式
23.10 總結
第24章 擴展Windows外殼
24.1 托盤圖示組件
24.1.1 API
24.1.2 處理訊息
24.1.3 圖示及提示
24.1.4 滑鼠點擊
24.1.5 隱藏應用程式
24.1.6 托盤圖示應用程式舉例
24.2 應用程式桌面工具列
24.2.1 API
24.2.2 TAppBar:AppBar的窗體
24.2.3 使用TAppBar
24.3 外殼連結
24.3.1 獲取一個IShellLink實例
24.3.2 使用IShellLink
24.3.3 創建一個外殼連結
24.3.4 獲取及設定連結信息
24.3.5 一個例子程式
24.4 外殼擴展
24.4.1 COM對象嚮導
24.4.2 複製鉤子處理器
24.4.3 上下文選單處理器
24.4.4 圖示處理器
24.5 總結
第25章 創建ActiveX控制項
25.1 為什麼要創建ActiveX控制項
25.2 創建一個ActiveX控制項
25.2.1 ActiveX控制項嚮導
25.2.2 ActiveX框架
25.2.3 屬性頁
25.3 ActiveForm
25.4 在Web上的ActiveX
25.4.1 與Web瀏覽器通信
25.4.2 Web發布
25.5 總結
第26章 使用Delphi Open Tools API
26.1 Open Tools API接口
26.2 使用Open Tools API
26.2.1 Dumb嚮導
26.2.2 Wizard嚮導
26.2.3 DDG Search
26.3 窗體嚮導
26.4 總結
第27章 使用Delphi開發CORBA
27.1 ORB
27.2 接口
27.3 Stub和Skeleton
27.4 VisiBroker的ORB
27.4.1 VisiBroker的運行時支持服務
27.4.2 VisiBroker管理工具
27.5 Delphi的CORBA支持
27.5.1 CORBA的類支持
27.5.2 CORBA對象嚮導
27.5.3 Delphi的類型庫編輯器
27.6 在Delphi 5中創建CORBA解決方案
27.6.1 建立一個CORBA伺服器
27.6.2 實現IQueryServer的方法
27.6.3 編譯一個靜態綁定的CORBA客戶
27.6.4 編譯一個動態綁定的CORBA客戶
27.6.5 跨語言的CORBA
27.7 使用VisiBroker ORB
27.8 總結
第四部分 開發資料庫
第28章 編寫桌面資料庫應用程式
28.1 使用數據集
28.1.1 VCL的資料庫體系結構
28.1.2 BDE數據訪問組件
28.1.3 打開一個數據集
28.1.4 瀏覽數據集
28.1.5 對欄位操作
28.1.6 刷新數據集
28.1.7 變化的狀態
28.1.8 過濾器
28.2 使用TTable組件
28.2.1 查找記錄
28.2.2 主/細表
28.2.3 TTable的事件
28.2.4 通過代碼創建一個資料庫表
28.3 數據模組
28.4 搜尋、設定範圍和過濾的示例
28.4.1 數據模組
28.4.2 主窗體
28.4.3 Range窗體
28.4.4 Key Search窗體
28.4.5 Filter窗體
28.5 TQuery和TStoredProc:其他數據集
28.6 文本檔案資料庫表
28.6.1 概要檔案
28.6.2 數據檔案
28.6.3 使用文本資料庫表
28.6.4 限制
28.6.5 從文本資料庫表中引入數據
28.7 用ODBC連線
28.7.1 到哪兒找ODBC驅動程式
28.7.2 ODBC實例:連線MS Access
28.8 ActiveX Data Object
28.8.1 Microsoft數據訪問簡介
28.8.2 ADOExpress組件
28.8.3 連線一個ADO數據存儲
28.8.4 示例:通過ADO連線
28.8.5 ADO開發
28.9 總結
第29章 開發客戶/伺服器應用程式
29.1 為什麼要採用客戶/伺服器結構
29.2 客戶/伺服器體系結構
29.2.1 客戶
29.2.2 伺服器
29.2.3 業務規則
29.2.4 胖客戶、胖伺服器、中間層:業務規則屬於哪一端
29.3 客戶/伺服器模型
29.3.1 兩層模型
29.3.2 三層模型
29.4 客戶/伺服器與桌面資料庫開發的比較
29.4.1 面向集合與面向記錄
29.4.2 數據安全
29.4.3 記錄鎖定方法
29.4.5 面向事務
29.5 SQL在客戶/伺服器開發中的角色
29.6 Delphi客戶/伺服器開發
29.7 伺服器:後端設計
29.7.1 資料庫對象
29.7.2 定義資料庫表
29.7.3 使用域
29.7.4 用視圖、存儲過程和觸發器定義業務規則
29.7.5 資料庫對象的訪問許可權
29.8 客戶:前端開發
29.8.1 使用TDatabase組件
29.8.2 TTable還是TQuery
29.8.3 使用TQuery組件
29.8.4 執行存儲過程
29.9 總結
第30章 擴展資料庫VCL
30.1 使用BDE
30.1.1 BDE單元
30.1.2 Check()
30.1.3 指針和句柄
30.1.4 使指針同步
30.2 dBASE表
30.2.1 物理記錄編號
30.2.2 顯示被刪除的記錄
30.2.3 測試被軟刪除的記錄
30.2.4 恢復被軟刪除的記錄
30.2.5 緊縮表
30.3 Paradox表
30.3.1 記錄序號
30.3.2 緊縮
30.3.3 限制查詢結果
30.3.4 BDE雜項
30.3.5 編寫數據感知VCL控制項
30.4 擴展TDataSet
30.4.1 過去
30.4.2 現在
30.4.3 創建一個TDataSet派生類
30.5 總結
第31章 用WebBroker使應用程式具有Internet功能
31.1 ISAPI、NSAPI和CGI——Web伺服器擴展
31.1.2 ISAPI和NSAPI
31.2 用Delphi創建Web應用程式
31.2.1 TWebModule和TWebDispatcher
31.2.2 TWebRequest和TWebResponse
31.3 用HTML內容生成器建立動態網頁
31.3.1 TPageProducer
31.3.2 TDatasetTableProducer和TQueryTableProducer
31.4 使用cookie保存狀態
31.5 重定向到另一個Web站點
31.6 從HTML表單中獲取信息
31.7 數據流
31.8 總結
第32章 MIDAS開發
32.1 多層應用程式的結構
32.2 多層體系結構的優點
32.3 典型的MIDAS體系結構
32.3.1 伺服器
32.3.2 客戶
32.4 用MIDAS建立應用程式
32.4.1 設定伺服器
32.4.2 創建客戶
32.5 增強應用程式的更多選擇
32.5.1 客戶最佳化技巧
32.5.2 伺服器端的技巧
32.6 幾個實例
32.6.1 連線
32.6.2 MIDAS的Web功能
32.7 客戶數據集的更多功能
32.7.1 嵌套的數據集
32.7.2 客戶主/細連線
32.7.3 兩層應用程式
32.8 部署MIDAS應用程式
32.9 總結
第五部分 快速開發資料庫應用程式
第33章 貨物管理程式:客戶/伺服器開發
33.1 設計後端
33.1.1 定義域
33.1.2 定義表
33.1.3 定義生成器
33.1.4 定義觸發器
33.1.5 定義存儲過程
33.1.6 授權
33.2 集中資料庫訪問:業務規則
33.2.1 登錄和退出方法
33.2.2 Customer表的方法
33.2.3 Part表的方法
33.2.4 Sales表的方法
33.2.5 臨時表的方法
33.2.6 TDataModule操縱數據訪問組件的事件
33.3 設計用戶界面
33.3.1 TMainForm:應用程式的主窗體
33.3.2 TCustomerForm:客戶輸入
33.3.3 TPartsForm:貨物輸入
33.3.4 TSalesForm:銷售瀏覽
33.3.5 TNewSalesForm:銷售輸入
33.3.6 CustomerSearch對話框
33.4 總結
第34章 客戶跟蹤系統:MIDAS開發
34.1 設計伺服器應用程式
34.2 設計客戶應用程式
34.2.1 客戶數據模組
34.2.2 客戶主窗體
34.3 總結
第35章 錯誤報告工具:桌面資料庫開發
35.1 通用應用程式的需求
35.1.1 為WWW做準備
35.1.2 用戶的數據輸入和登錄
35.1.3 錯誤處理、瀏覽和過濾
35.1.4 錯誤註解
35.1.5 用戶界面的功能
35.2 數據模型
35.3 開發數據模組
35.3.1 應用程式初始化和登錄
35.3.2 生成Paradox關鍵值
35.3.3 錯誤處理例程
35.3.4 瀏覽/過濾錯誤
35.3.5 增加用戶
35.3.6 加入註解
35.4 開發用戶界面
35.4.1 主窗體
35.4.2 用戶界面的其他問題
35.5 使應用程式具有Web功能
35.6 總結
第36章 錯誤報告工具:使用WebBroker
36.1 網頁布局
36.2 修改數據模組
36.3 配置TDataSetTableProducer組件:dstpBugs
36.4 配置TWebDispatcher組件:wbdpBugs
36.5 配置TPageProducer組件:pprdBugs
36.6 編寫DDGWebBugs ISAPI伺服器:增加TActionItem實例
36.6.1 輔助例程
36.6.2 介紹網頁
36.6.3 獲取並校驗用戶登錄名字
36.7 瀏覽錯誤信息
36.7.1 瀏覽所有錯誤信息
36.7.2 瀏覽用戶自己的錯誤信息
36.7.3 格式化表格單元並顯示錯誤細節
36.8 增加新的錯誤信息
36.8.1 獲取錯誤信息
36.8.2 校驗插入的錯誤信息
36.9 總結
第六部分 附錄
附錄A 錯誤信息與異常
附錄B BDE錯誤代碼
附錄C 參考文獻

相關詞條

熱門詞條

聯絡我們