第1章 關于Delphi與本書(1)
1.1 Delphi是什么(1)
1.1.1 Delphi的歷史(1)
1.1.2 選擇Delphi意味著什么(2)
1.1.3 如何使用Delphi編程(3)
1.2 本書的特點(4)
1.2.1 本書有哪些內容,沒有哪些內容(5)
1.2.2 本書是如何寫作的(5)
1.2.3 如何閱讀本書(5)
第2章 Object Pascal入門(7)
2.1 運算符(7)
2.1.1 賦值運算符(7)
2.1.2 比較運算符(7)
2.1.3 邏輯運算符(8)
2.1.4 算術運算符(8)
2.1.5 按位運算符(9)
2.1.6 其他運算符和模擬運算(9)
2.2 常量和變量(12)
2.2.1 無類型常量和有類型常量(13)
2.2.2 全局變量和局部變量(13)
2.2.3 聲明時使用編譯時函數(shù)(14)
2.2.4 資源字符串(15)
2.3 過程和函數(shù)(15)
2.3.1 過程和函數(shù)的區(qū)別(15)
2.3.2 子過程(16)
2.4 數(shù)據類型(17)
2.4.1 常用類型和復雜類型(17)
2.4.2 不同語言的數(shù)據類型對照表(17)
2.5 程序流程控制(18)
2.5.1 條件分支(18)
2.5.2 循環(huán)(19)
2.5.3 跳轉(20)
2.5.4 用過程輔助實現(xiàn)流程控制(21)
2.6 單元的組織結構(24)
2.6.1 Program的組織結構(24)
2.6.2 Unit的組織結構(25)
2.6.3 單元循環(huán)引用(27)
2.7 with...do語句的用法(28)
2.8 IDE的快捷鍵列表(29)
第3章 Object Pascal精要(31)
3.1 數(shù)據類型及其相互關系(31)
3.1.1 數(shù)據類型概述(32)
3.1.2 變量的內存分配和釋放(48)
3.1.3 數(shù)據的內存結構(52)
3.1.4 強數(shù)據類型與類型轉化(53)
3.2 過程和函數(shù)(59)
3.2.1 作用域(60)
3.2.2 參數(shù)傳遞(62)
3.2.3 聲明指令(66)
3.3 類和類成員(66)
3.3.1 類和類成員概述(67)
3.3.2 深入認識方法(69)
3.3.3 深入認識屬性(78)
3.3.4 深入認識事件(84)
3.3.5 類成員重新聲明(86)
3.3.6 inherited釋疑(88)
3.3.7 接口的真相(89)
3.4 編譯指令(95)
3.4.1 開關指令(96)
3.4.2 參數(shù)指令(99)
3.4.3 條件指令(102)
第4章 VCL入門(104)
4.1 VCL概述(104)
4.2 組件與控件的概念(105)
4.3 使用VCL(105)
4.4 擴展VCL(107)
第5章 VCL精要(108)
5.1 揭開VCL的神秘面紗(108)
5.1.1 VCL架構(108)
5.1.2 構造和析構的內幕(111)
5.1.3 虛擬方法表和動態(tài)方法表(115)
5.1.4 TObject如何使用虛擬方法表(118)
5.1.5 運行時類型信息(122)
5.2 VCL的消息機制(130)
5.2.1 VCL消息機制(130)
5.2.2 處理消息的八種方法(134)
5.2.3 選用什么方法發(fā)送消息(140)
5.2.4 VCL消息大全(144)
5.3 多態(tài)性(161)
5.3.1 多態(tài)性的概念(162)
5.3.2 多態(tài)性和虛方法的關系(164)
第6章 組件開發(fā)實戰(zhàn)(167)
6.1 三種組件開發(fā)方法(167)
6.1.1 繼承、聚合和子類化(167)
6.1.2 接口、虛方法和輔助類的選擇(169)
6.2 文件拖放監(jiān)視器(169)
6.2.1 文件拖放原理(169)
6.2.2 文件拖放實例(170)
6.2.3 組件封裝(171)
6.3 托盤組件(175)
6.3.1 裝入托盤圖標(175)
6.3.2 在應用程序最小化時去掉狀態(tài)欄的圖(177)
6.3.3 給托盤圖標增加接收鼠標消息功能(179)
6.3.4 處理鼠標消息(181)
6.3.5 顯示動畫圖標(182)
6.3.6 設置程序的自動啟動功能(182)
6.3.7 組件封裝(183)
6.4 自動下拉的TComboBox(190)
6.5 開發(fā)數(shù)據敏感控件(195)
6.5.1 數(shù)據敏感原理(196)
6.5.2 開發(fā)日期敏感控件(196)
6.6 開發(fā)聚合組件(203)
6.6.1 開發(fā)LabelDBDatePicker(203)
6.6.2 加強LabelDBDatePicker(206)
6.7 開發(fā)圖形圖像控件(211)
6.8 開發(fā)QuickReport組件(218)
第7章 組件開發(fā)相關工作(225)
7.1 包和包編譯指令(225)
7.2 創(chuàng)建組件圖標(226)
7.3 屬性編輯器(227)
7.4 組件編輯器(231)
第8章 常用函數(shù)和過程(235)
8.1 數(shù)據類型轉化類(235)
8.1.1 數(shù)值和字符串的相互轉化(235)
8.1.2 整數(shù)和字符串的相互轉化(236)
8.1.3 實數(shù)和字符串的相互轉化(236)
8.1.4 實數(shù)子類型的相互轉化(237)
8.1.5 布爾類型和字符串的相互轉化(237)
8.2 字符串處理類(237)
8.2.1 字符串的分類(240)
8.2.2 和字符串相關的類(241)
8.3 流處理類(245)
8.4 內存管理、程序流程控制類(250)
8.4.1 內存管理(250)
8.4.2 程序流程控制(251)
8.5 文件操作類(252)
8.5.1 使用文件句柄進行I/O處理(252)
8.5.2 使用Pascal文件變量進行I/O處理(253)
8.5.3 面向對象文件I/O處理(255)
8.5.4 文件屬性操作(255)
8.5.5 其他函數(shù)和方法(256)
8.6 日期時間類(258)
8.6.1 獲取/合成日期/時間(258)
8.6.2 日期/時間和字符串的轉換(259)
8.6.3 日期/時間的運算(259)
8.7 VCL類(260)
8.7.1 Classes單元(260)
8.7.2 Controls單元(262)
8.7.3 Dialogs單元(262)
8.8 位運算類(264)
8.9 圖形圖像類(266)
第9章 高級開發(fā)技巧(268)
9.1 自定義窗口過程(268)
9.2 自定義消息及其替代方法(270)
9.3 自定義系統(tǒng)惟一消息(272)
9.4 新穎的類工廠(275)
9.5 使用對象庫(281)
9.6 非發(fā)布(published)數(shù)據的持久化(287)
9.7 使用回調函數(shù)(288)
9.8 使用遞歸算法(290)
9.9 編寫NT服務程序(294)
9.10 編寫只能惟一運行的程序(295)
9.11 字段類型全家福(298)
9.12 獲取數(shù)據庫結構信息(300)
9.13 深入使用TCanvas(301)
9.14 指針列表類的使用(308)
9.15 結構化存儲技術(312)
9.16 掛鉤技術(321)
9.17 TRichEdit高級開發(fā)(327)
9.18 用TTreeView分析數(shù)據表的結構(334)
9.19 SQL語句分析器(339)
9.20 剪貼板高級編程(344)
第10章 綜合例子——使用Socket傳輸多個文件(350)
10.1 Socket簡介(350)
10.2 TServerSocket和TClientSocket(351)
10.3 設計通訊協(xié)議(354)
10.4 實現(xiàn)服務端(357)
10.5 實現(xiàn)客戶端(367)
10.6 組件封裝(374)
10.7 自動下載技術在項目中的應用(391)