Delphi參考手冊0.doc

上傳人:小** 文檔編號:13550836 上傳時間:2020-06-21 格式:DOC 頁數(shù):1101 大?。?.15MB
收藏 版權(quán)申訴 舉報 下載
Delphi參考手冊0.doc_第1頁
第1頁 / 共1101頁
Delphi參考手冊0.doc_第2頁
第2頁 / 共1101頁
Delphi參考手冊0.doc_第3頁
第3頁 / 共1101頁

下載文檔到電腦,查找使用更方便

8 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《Delphi參考手冊0.doc》由會員分享,可在線閱讀,更多相關(guān)《Delphi參考手冊0.doc(1101頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、Delphi參考手冊(4.0) 第一部分 關(guān)于Delphi 4.0 第一章 Delphi 4 新 特 性 Delphi 4 真“ 酷” ! ---- 倍 受 矚 目 的Delphi 4 已 正 式 在 中 國 上 市, 這 是Borland 更 名 為Inprise 后 推 出 的 一 個 具 有 戰(zhàn) 略 意 義 的 產(chǎn) 品。 與 老 版 本 相 比,Delphi 4 具 有 哪 些 值 得 稱 道 的 新 功 能 ? 讀 了 這 篇 文 章, 你 或 許 會 對 它 有 所 了 解。 Advanced Debugging ---- Delph 4 增 加 了“ 模 塊

2、 窗 口”。 模 塊 窗 口 能 夠 顯 示 當(dāng) 前 所 有 映 射 到 應(yīng) 用 程 序 地 址 空 間 的 模 塊, 包 括 應(yīng) 用 程 序 自 身、 應(yīng) 用 程 序 顯 式 或 隱 式 調(diào) 用 的DLL 以 及 操 作 系 統(tǒng) 調(diào) 用 的DLL, 模 塊 窗 口 可 幫 助 您 優(yōu) 化 程 序 結(jié) 構(gòu)。 此 外,Delphi 4 還 能 自 動 記 錄 在 調(diào) 試 過 程 遇 到 的 事 件, 如 斷 點、Windows 的 消 息 以 及 其 他 調(diào) 試 信 息。Delphi 4 能 夠 監(jiān) 視 指 針 錯 誤, 如 果 某 個 指 針 試 圖 非 法 訪 問 內(nèi) 存 的 某 個 地 址

3、, 程 序 就 會 暫 時 中 斷 運 行, 由 調(diào) 試 器 接 管 控 制 權(quán), 就 好 像 遇 到 斷 點 一 樣。 CodeInsight ---- CodeInsight 是 一 組 代 碼 自 動 化 功 能 的 總 稱, 它 能 夠 幫 助 您 快 速 生 成 代 碼, 從 而 減 少 語 法 錯 誤 并 提 高 編 程 效 率。Delphi 3 已 經(jīng) 有 了CodeInsight 功 能, 但Delphi 4 又 作 了 很 多 改 進。 ---- 一 是“ 類 自 動 完 成”。 由 于Delphi 4 是 一 個 完 全 面 向 對 象 的 編 程 工 具, 編

4、程 過 程 中 經(jīng) 常 要 聲 明 和 實 現(xiàn) 類(Class), 而 類 不 同 于 一 般 的 數(shù) 據(jù) 類 型, 它 具 有 特 殊 的 語 法, 很 多 初 學(xué) 者 往 往 對 類 的 使 用 缺 少 經(jīng) 驗, 即 使 是Delphi 的 高 手, 也 會 對 過 分 嚴(yán) 謹(jǐn) 和 古 板 的Pascal 語 法 感 到 枯 燥 乏 味?!?類 自 動 完 成” 向 導(dǎo), 可 以 幫 助 您 快 速 生 成 有 關(guān) 類 的 代 碼。 ---- 二 是“ 符 號 預(yù) 知”。 當(dāng) 您 在 設(shè) 計 期 編 寫 代 碼 時,Delphi 4 在 后 臺 運 行 編 譯 器, 這 樣 您 無 須

5、 顯 式 地 編 譯 代 碼 就 能 看 到 每 個 符 號 實 際 是 怎 樣 存 儲 的, 能 夠 及 時 地 消 除 錯 誤。 ---- 三 是“ 代 碼 模 板”。 當(dāng) 您 在 設(shè) 計 期 編 寫 代 碼 時, 經(jīng) 常 要 重 復(fù) 輸 入 諸 如if ... then ... else 或for ... do 等 語 句,Delphi 4 把 一 些 常 用 的 代 碼 結(jié) 構(gòu) 預(yù) 先 做 成 模 板, 您 只 要 選 擇 一 個 模 板,Delphi 4 就 會 自 動 把 該 模 板 的 代 碼 插 入 到 代 碼 編 輯 器 中。 代 碼 模 板 也 可 以 自 定 義。

6、 ---- 四 是“ 類 成 員 提 示”。 當(dāng) 您 鍵 入 一 個 類 名 或 對 象 名, 再 鍵 入 一 個 小 圓 點,Delphi 4 估 計 您 要 訪 問 類 的 成 員, 它 就 會 自 動 彈 出 一 個 列 表 框, 列 出 類 的 所 有 特 性、 方 法 和 事 件, 這 樣 您 就 用 不 著 記 憶 類 有 哪 些 成 員, 也 不 用 查 閱 幫 助 或 手 冊, 更 不 用 擔(dān) 心 寫 錯 成 員 的 名 稱。 ---- 五 是“ 參 數(shù) 提 示”。 您 只 要 鍵 入 例 程 名 或 方 法 名, 再 鍵 入 左 圓 括 號,Delphi 4 就 自 動

7、顯 示 該 例 程 或 方 法 的 所 有 參 數(shù) 名 稱 及 其 數(shù) 據(jù) 類 型, 這 樣 就 能 保 證 參 數(shù) 的 個 數(shù)、 順 序 和 數(shù) 據(jù) 類 型 總 是 正 確 的。 BusinessInsight ---- BusinessInsight 是 一 組 數(shù) 據(jù) 分 析 功 能 的 統(tǒng) 稱, 包 括 以 下 幾 個 方 面: ---- 一 是DecisionCube, 用 于 對 數(shù) 據(jù) 進 行 全 方 位、 多 層 次 的 分 析。 其 中,TDecisionCube 可 建 立 一 個 多 維 數(shù) 據(jù) 倉 庫。TDecisionQuery 能 夠 對 數(shù) 據(jù) 庫 進

8、行 查 詢 并 返 回 查 詢 結(jié) 果, 它 附 帶 的 決 策 查 詢 編 輯 器 可 構(gòu) 造 非 常 復(fù) 雜 的 查 詢。 ---- 二 是TeeCharts, 以 圖 表 形 式 顯 示 和 分 析 數(shù) 據(jù), 數(shù) 據(jù) 的 來 源 可 以 是 數(shù) 據(jù) 庫。 ---- 三 是QuickReport, 擅 長 制 作 數(shù) 據(jù) 庫 報 表, 可 預(yù) 覽 和 打 印。 ActiveInsight ---- Delphi 4 完 全 支 持ActiveX, 您 可 以 很 方 便 地 創(chuàng) 建、 注 冊、 安 裝、 發(fā) 布 和 使 用ActiveX 控 件、ActiveForm 和OLE

9、 自 動 化 對 象, 這 應(yīng) 當(dāng) 歸 功 于“ 對 象 接 口” 技 術(shù) 和DAX 技 術(shù)。 ---- Delphi 4 內(nèi) 建 了 對COM 的 支 持, 由 于COM 對 象 具 有 語 言 和 平 臺 無 關(guān) 性, 用Delphi 4 創(chuàng) 建 的 對 象 可 以 與 用Visual Basic、Java、C + + 及 其 他 語 言 實 現(xiàn) 的 對 象 交 互。 在 多 層Client/Server 環(huán) 境 中,COM 對 象 可 以 封 裝 商 業(yè) 規(guī) 則, 為 分 布 式 的 客 戶 提 供 服 務(wù)。 此 外,Delphi 4 用“ 包” 技 術(shù) 減 少 冗 余 的VCL 框

10、 架 代 碼, 從 而 使 應(yīng) 用 程 序 更 精 巧, 更 適 合 于 在Internet/Intranet 上 傳 輸 和 分 發(fā)。Delphi 4 取 消 了 原 來 的 包 編 輯 器, 改 用 項 目 管 理 器 對 包 項 目 統(tǒng) 一 進 行 管 理。 支 持Internet 應(yīng) 用 ---- Delphi 4 包 含 了 一 組Internet 元 件, 可 以 很 方 便 地 實 現(xiàn)WinSock 編 程, 訪 問HTTP、UDP、FTP、SMTP、POP3 和NNTP 等 服 務(wù)。 你 可 以 利 用Delphi 4 方 便 地 創(chuàng) 建Web 服 務(wù) 器 應(yīng) 用 程 序

11、, WebBridge 簡 化 了 對NSAPI 和ISAPI 的 訪 問,WebModules 封 裝 了Web 服 務(wù) 器 的 應(yīng) 用 邏 輯,WebDispatcher 實 現(xiàn) 了HTTP 請 求 消 息 和HTTP 響 應(yīng) 消 息 的 動 態(tài) 調(diào) 度。 運 用ActiveForm 技 術(shù) 和Remote DataBroker 技 術(shù) 可 以 把 分 布 式 的Client/Server 結(jié) 構(gòu) 擴 展 到Internet/Intranet 上。 開 放 性 與 靈 活 性 ---- Delphi 4 的 開 放 體 系 結(jié) 構(gòu) 支 持 多 個 數(shù) 據(jù) 庫 引 擎, 任 何 一 個

12、 數(shù) 據(jù) 庫 引 擎 都 能 與Delphi 4 的 數(shù) 據(jù) 顯 示 控 件 如TDBGrid、TDBEdit 協(xié) 調(diào) 工 作。 ---- Delphi 4 可 以 訪 問Oracle 的BLOB(Binary Large Object) 型 字 段, 實 際 的 數(shù) 據(jù) 存 儲 在 外 部 文 件 中。Delphi 4 支 持Oracle 8 的 抽 象 數(shù) 據(jù) 類 型(ADT), 允 許 自 己 定 義 數(shù) 據(jù) 類 型, 自 定 義 的 數(shù) 據(jù) 類 型 可 以 基 于 真 實 的 類 型, 也 可 以 基 于 已 定 義 的 抽 象 類 型。 這 個 功 能 的 意 義 是 非 常 重

13、 大 的, 您 可 以 把 任 何 商 業(yè) 對 象(Business Objects) 存 儲 到 數(shù) 據(jù) 庫 中, 或 者 把Oracle 數(shù) 據(jù) 庫 中 的 商 業(yè) 對 象 放 到Form 上 顯 示 出 來。 MIDAS ---- Delphi 4 是 開 發(fā) 多 層Client/Server 應(yīng) 用 程 序 的 最 佳 編 程 工 具, 這 與Inprise 的 發(fā) 展 戰(zhàn) 略 有 關(guān)。MIDAS(Multi -Tiered Distributed Application Services) 實 際 上 是 一 組 分 布 式 技 術(shù) 的 統(tǒng) 稱, 它 包 括 以 下 方 面:

14、 ---- Business Broker 是 一 種 分 布 式 的 對 象 名 稱 注 冊 服 務(wù), 它 能 根 據(jù) 當(dāng) 前 的 負 載 情 況 動 態(tài) 地 調(diào) 整 遠 程 對 象 的 投 入 和 切 除, 從 而 保 證 關(guān) 鍵 性 的 商 業(yè) 應(yīng) 用 永 不 中 斷。 ---- OLEnterprise 是 一 個 把 傳 統(tǒng) 的Client/Server 應(yīng) 用 程 序 向 三 層 結(jié) 構(gòu)“ 遷 移” 的 工 具, 它 能 夠 把 應(yīng) 用 邏 輯 和 數(shù) 據(jù) 訪 問 模 塊 集 中 在 應(yīng) 用 服 務(wù) 器 上 完 成。 ---- “Remote Data Broker” 是

15、 多 層Client/Server 結(jié) 構(gòu) 的 關(guān) 鍵 技 術(shù), 客 戶 端 只 需 要 實 現(xiàn) 用 戶 界 面, 而 應(yīng) 用 邏 輯( 又 稱 商 業(yè) 規(guī) 則) 則 由 應(yīng) 用 服 務(wù) 器 實 現(xiàn), 這 樣 就 達 到 使 客 戶 端“ 減 肥” 的 目 的, 并 且“ 瘦” 客 戶 端 的 維 護 成 本 很 低?!癛emote Data Broker” 技 術(shù) 的 另 一 個 作 用 在 于 它 能 顯 著 地 減 少 網(wǎng) 絡(luò) 上 的 數(shù) 據(jù) 流 量, 這 在 帶 寬 問 題 日 益 嚴(yán) 重 的 今 天 具 有 重 要 的 意 義。 ---- MIDAS 除 了 能 傳 遞 數(shù) 據(jù)

16、以 外, 還 能 傳 遞 表 的 結(jié) 構(gòu), 對 于“ 瘦” 客 戶 來 說, 程 序 員 不 用 寫 任 何 代 碼, 就 能 保 證 表 與 表 之 間 的Master/Detail 關(guān) 系 和 嵌 套 關(guān) 系 得 到 維 護 和 更 新。 為 了 保 證 系 統(tǒng) 的 安 全 性, 鑒 別 用 戶 身 份( 登 錄) 是 一 種 最 簡 單 而 又 有 效 的 手 段。Delphi 4 內(nèi) 建 了 用 戶 登 錄 功 能, 程 序 員 不 必 為 此 編 寫 額 外 的 代 碼。 ---- Delphi 4 能 夠 使“ 瘦” 客 戶 端 顯 著 地 加 快 檢 索 數(shù) 據(jù) 的 速 度,

17、 這 是 因 為Delphi 4 采 用 了 一 種“Deferred BLOB” 的 技 術(shù), 它 優(yōu) 先 下 載 非BLOB 型 的 數(shù) 據(jù), 等 非BLOB 型 的 數(shù) 據(jù) 下 載 完 后 再 根 據(jù) 需 要 下 載BLOB 型 數(shù) 據(jù)。 ---- Delphi 4 在“ 瘦” 客 戶 端 用TMIDASConnection 與 應(yīng) 用 服 務(wù) 器 連 接,TMIDASConnection 支 持 三 種 連 接 方 式:TCP/IP、CORBA 和DCOM, 其 性 能 超 過 了Delphi 3 的TremoteServer。 ---- 此 外,Delphi 4 還 支 持M

18、icrosoft Transaction Server(MTS)。MTS 是Microsoft 為 實 現(xiàn) 分 布 式 應(yīng) 用 而 設(shè) 計 的 一 個 中 間 件, 其 基 本 組 成 部 分 是ActiveX。MTS 中 的“ 兩 階 段 提 交” 技 術(shù) 使 得 應(yīng) 用 程 序 能 夠 跨 服 務(wù) 器 處 理 事 務(wù)。MTS 中 的“X/Open XA” 技 術(shù) 允 許 服 務(wù) 器 與MTS 的 資 源 管 理 器 通 信, 客 戶 程 序 能 夠 在 異 構(gòu) 環(huán) 境 下 看 到 提 交 的 數(shù) 據(jù) 包 成 功 還 是 失 敗。 總 結(jié) ---- 從 以 上 介 紹 可 看 出,De

19、lphi 4 的 確 很“ 酷”, 對 于 開 發(fā) 人 員 來 說, 選 擇Delphi 4 是 非 常 明 智 的, 與 其 他 開 發(fā) 工 具 相 比,Delphi 4 的 編 程 效 率 和 應(yīng) 用 程 序 的 性 能 至 少 能 提 高 一 倍, 可 以 這 么 說, 選 擇Delphi 4 意 味 著 軟 件 開 發(fā) 已 經(jīng) 成 功 了 一 半。 使用Delphi4開發(fā)各種應(yīng)用程序 隨時、隨處、隨意獲取數(shù)據(jù)的Borland Delphi 4.0 Borland 的 MIDAS 技 術(shù) Delphi1.0版本 1.1 Delphi 4.0的安裝 1.1.1安裝 1.1.

20、2 BDE 的安裝 1.1.3 自定義VCL 1.1.3.1加入構(gòu)件 1.1.3.2刪除構(gòu)件 1.1.3 文件清單 1. 2設(shè)置使用環(huán)境 1、 進入環(huán)境設(shè)置:Tools|Evironment Options 2、 Preferences頁選項: l Desktop Contents選項: Desktop only:保存當(dāng)前目錄、程序編輯器所打開的文件和打開的窗體等信息。 Desktop and symbols:除保存Desktop only選項相同信息外,還保存最后編輯成功的字符信息。 l Auto save選項: l Form Designer選項(Grid): l

21、 Debugging選項: 1.3 工具 1.3.1集成調(diào)試器 1.3.2 第二部分 Delphi Object Pascal語法 2.1 Object Pascal程序的基本框架結(jié)構(gòu) Delphi的應(yīng)用程序主要就是緊緊圍繞著窗體和單元這兩個部分進行的。窗體(Form)是與用戶直接可見的對象。Delphi程序正是由多個Forms來組成的。與之相應(yīng)的是單元,它的目的是幫助我們建立一段源程序,用以處理窗體中的相關(guān)操作和設(shè)定。每個單元對應(yīng)于一個Form程序區(qū)段,它包含了事件處理程序、過程和函數(shù)。下面讓我們先看一看Delphi程序的基本框架結(jié)構(gòu):(通過雙擊Form窗件) un

22、it Unit1; { 單元標(biāo)題 } interface { 接口部分 } uses SysUtils,WinTypes,WinProcs,Messages,Classes,Graphics,Controls,Forms,Dialogs; type { 類型區(qū)段 } Tform1=class(TForm) private {私有變量聲名} putlic {公有變量聲名} end; var{ 變量定義區(qū) } Form1:TForm1; implementation{ 實現(xiàn)部分 } {$R*DFM} …… end. 從上面的程序中可以看出,Delphi程序的一個

23、單元包括五大部分,即單元標(biāo)題、接口部分、類型區(qū)段、變量定義區(qū)和實現(xiàn)部分。它們是構(gòu)成Delphi程序的基本框架結(jié)構(gòu)。在這五大部分中,每一部分都有特定的意義。單元標(biāo)題,這是Delphi程序自動產(chǎn)生的,通過使用對象觀察可以改變其名;接口部分,該區(qū)段又叫資源說明段,該段通過USES對引用Delphi系統(tǒng)提供的資源或用戶自定義的資源進行說明;類型區(qū)段,該段定義本單元資源,所定義的代碼變量可供其它單元使用;變量區(qū),該區(qū)定義部分系統(tǒng)或在類型區(qū)段的變量供實用區(qū)用;實現(xiàn)部分,又稱程序執(zhí)行過程區(qū),這個區(qū)是我們編寫事件過程、子程序以及過程等有關(guān)內(nèi)容和過程函數(shù)中使用的變量、常量定義及說明,所有的編程工作均在該區(qū)段的內(nèi)

24、完成,這部分所定義的代碼和變量只能在本單元中使用。 2.2 Object Pascal 的內(nèi)部數(shù)據(jù)格式 2.2.1 Integer types An integer type represents a subset of the whole numbers. The generic integer types are Integer and Cardinal; use these whenever possible, since they result in the best performance for the underlying CPU and operating system.

25、 The table below gives their ranges and storage formats for the current 32-bit Object Pascal compiler. Type Range Format Integer *.. signed 32-bit Cardinal 0.. unsigned 32-bit Fundamental integer types include Shortint, Smallint, Longint, Int64, Byte, Word, and Longword. Type Range

26、Format Shortint *128..127 signed 8-bit Smallint *32768..32767 signed 16-bit Longint *.. signed 32-bit Int64 *2^63..2^63*1 signed 64-bit Byte 0..255 unsigned 8-bit Word 0..65535 unsigned 16-bit Longword 0.. unsigned 32-bit In general, arithmetic operations on integers return a v

27、alue of type Integer梬hich, in its current implementation, is equivalent to the 32-bit Longint. Operations return a value of type Int64 only when performed on an Int64 operand. Hence the following code produces incorrect results. var I: Integer; J: Int64; ... I := High(Integer); J :=

28、I + 1; To get an Int64 return value in this situation, cast I as Int64: ... J := Int64(I) + 1; For more information, see Arithmetic operators. Note: Most standard routines that take integer arguments truncate Int64 values to 32 bits. However, the High, Low, Succ, Pred, Inc, Dec, IntT

29、oStr, and IntToHex routines fully support Int64 arguments. Also, the Round, Trunc, StrToInt64, and StrToInt64Def functions return Int64 values. A few routines梚ncluding Ord梒annot take Int64 values at all. When you increment the last value or decrement the first value of an integer type, the result

30、 wraps around the beginning or end of the range. For example, the Shortint type has the range *128..127; hence, after execution of the code var I: Shortint; ... I := High(Shortint); I := I + 1; the value of I is *128. If compiler range-checking is enabled, however, this code generates a

31、runtime error. 2.2.2 Character types Topic group See also The fundamental character types are AnsiChar and WideChar. AnsiChar values are byte-sized (8-bit) characters ordered according to the extended ANSI character set. WideChar values are word-sized (16-bit) characters ordered according t

32、o the Unicode character set. The first 256 Unicode characters correspond to the ANSI characters. The generic character type is Char, which is equivalent to AnsiChar. Because the implementation of Char is subject to change, it抯 a good idea to use the standard function SizeOf rather than a hard-cod

33、ed constant when writing programs that may need to handle characters of different sizes. A string constant of length 1, such as A, can denote a character value. The predefined function Chr returns the character value for any integer in the range of AnsiChar or WideChar; for example, Chr(65) ret

34、urns the letter A. Character values, like integers, wrap around when decremented or incremented past the beginning or end of their range (unless range-checking is enabled). For example, after execution of the code var Letter: Char; I: Integer; begin Letter := High(Letter); for I :

35、= 1 to 66 do Inc(Letter); end; Letter has the value A (ASCII 65). 2.2.3 Character types Topic group Delphi has three character types: Char, AnsiChar, and WideChar. TheChar character type came from Standard Pascal, and was used in Turbo Pascal and then in Object Pascal. Later Obj

36、ect Pascal added AnsiChar and WideChar as specific character types that were used to support standards for character representation on the Windows operating system. AnsiChar was introduced to support an 8-bit character ANSI standard, and WideChar was introduced to support a 16-bit Unicode standard.

37、The name WideChar is used because Unicode characters are also known as wide characters. Wide characters are two bytes instead of one, so that the character set can represent many more different characters. When AnsiChar and WideChar were implemented, Char became the default character type representi

38、ng the currently recommended implementation. If you use Char in your application, remember that its implementation is subject to change in future versions of Delphi. The following table summarizes these character types: Type Bytes Contents Purpose Char 1 Holds a single ANSI character. D

39、efault character type. AnsiChar 1 Holds a single ANSI character. 8-bit Ansi character standard on Windows. WideChar 2 Holds a single Unicode character. 16-bit Unicode standard on Windows. For more information about using these character types, see "Character types*. For more information a

40、bout Unicode characters, see "About extended character sets*. 2.2.4 Real types Topic group See also A real type defines a set of numbers that can be represented with floating-point notation. The table below gives the ranges and storage formats for the fundamental real types. Type Range

41、 Significant digits Size in bytes Real48 2.9 x 10^*39 .. 1.7 x 10^38 11*12 6 Single 1.5 x 10^*45 .. 3.4 x 10^38 7*8 4 Double 5.0 x 10^*324 .. 1.7 x 10^308 15*16 8 Extended 3.6 x 10^*4951 .. 1.1 x 10^4932 19*20 10 Comp *2^63+1 .. 2^63 *1 19*20 8 Currency *477.5808.. 477.5807 1

42、9*20 8 The generic type Real, in its current implementation, is equivalent to Double. Type Range Significant digits Size in bytes Real 5.0 x 10^*324 .. 1.7 x 10^308 15*16 8 Note: The six-byte Real48 type was called Real in earlier versions of Object Pascal. If you are recompiling code t

43、hat uses the older, six-byte Real type, you may want to change it to Real48. You can also use the {$REALCOMPATIBILITY ON} compiler directive to turn Real back into the six-byte type. The following remarks apply to fundamental real types. Real48 is maintained for backward compatibility. Since

44、its storage format is not native to the Intel CPU family, it results in slower performance than other floating-point types. Extended offers greater precision than other real types but is less portable. Be careful using Extended if you are creating data files to share across platforms. The Comp (

45、computational) type is native to the Intel CPU and represents a 64-bit integer. It is classified as a real, however, because it does not behave like an ordinal type. (For example, you cannot increment or decrement a Comp value.) Comp is maintained for backward compatibility only. Use the Int64 type

46、for better performance. Currency is a fixed-point data type that minimizes rounding errors in monetary calculations. It is stored as a scaled 64-bit integer with the four least-significant digits implicitly representing decimal places. When mixed with other real types in assignments and expressi

47、ons, Currency values are automatically divided or multiplied by 10000. 2.2.5 Boolean types Topic group See also The four predefined Boolean types are Boolean, ByteBool, WordBool, and LongBool. Boolean is the preferred type. The others exist to provide compatibility with different languages

48、and the Windows environment. A Boolean variable occupies one byte of memory, a ByteBool variable also occupies one byte, a WordBool variable occupies two bytes (one word), and a LongBool variable occupies four bytes (two words). Boolean values are denoted by the predefined constants True and Fal

49、se. The following relationships hold. Boolean ByteBool, WordBool, LongBool False < True False <> True Ord(False) = 0 Ord(False) = 0 Ord(True) = 1 Ord(True) <> 0 Succ(False) = True Succ(False) = True Pred(True) = False Pred(False) = True A value of type ByteBool, LongBool, or WordBool

50、is considered True when its ordinality is nonzero. If such a value appears in a context where a Boolean is expected, the compiler automatically converts any value of nonzero ordinality to True. The remarks above refer to the ordinality of Boolean values梟ot to the values themselves. In Object Pascal

51、, Boolean expressions cannot be equated with integers or reals. Hence, if X is an integer variable, the statement if X then ...; generates a compilation error. Casting the variable to a Boolean type is unreliable, but each of the following alternatives will work. if X <> 0 then ...;

52、{ use longer expression that returns Boolean value } var OK: Boolean { use Boolean variable } ... if X <> 0 then OK := True; if OK then ...; 2.2.6 String types Topic group See also A string represents a sequence of characters. Object Pascal supports the following predefine

53、d string types. Type Maximum length Memory required Used for ShortString 255 characters 2 to 256 bytes backward compatibility AnsiString ~2^31 characters 4 bytes to 2GB 8-bit (ANSI) characters WideString ~2^30 characters 4 bytes to 2GB Unicode characters; COM servers and interfaces AnsiStri

54、ng, sometimes called the long string, is the preferred type for most purposes. String types can be mixed in assignments and expressions; the compiler automatically performs required conversions. But strings passed by reference to a function or procedure (as var and out parameters) must be of the ap

55、propriate type. Strings can be explicitly cast to a different string type (see Typecasts). The reserved word string functions like a generic type identifier. For example, var S: string; creates a variable S that holds a string. In the default {$H+} state, the compiler interprets string (when

56、it appears without a bracketed number after it) as AnsiString. Use the {$H杴 directive to turn string into ShortString. The standard function Length returns the number of characters in a string. The SetLength procedure adjusts the length of a string. Comparison of strings is defined by the ordering

57、 of the characters in corresponding positions. Between strings of unequal length, each character in the longer string without a corresponding character in the shorter string takes on a greater-than value. For example, 揂B* is greater than 揂*; that is, AB > A returns True. Zero-length strings hold the

58、 lowest values. You can index a string variable just as you would an array. If S is a string variable and i an integer expression, S[i] represents the ith character in S. For a ShortString or AnsiString, S[i] is of type AnsiChar; for a WideString, S[i] is of type WideChar. The statement MyStrin

59、g[2] := A; assigns the value A to the second character of MyString. The following code uses the standard UpCase function to convert MyString to upper-case. var I: Integer; begin I := Length(MyString); while I > 0 do begin MyString[I] := UpCase(MyString[I]); I := I - 1; en

60、d; end; Be careful indexing strings in this way, since overwriting the end of a string can cause access violations. Also, avoid passing long-string indexes as var parameters, because this results in inefficient code. You can assign the value of a string constant梠r any other expression that retu

61、rns a string梩o a variable. The length of the string changes dynamically when the assignment is made. Examples: MyString := Hello world!; MyString := Hello + world; MyString := MyString + !; MyString := ; { space } MyString := ; { empty string } 1.標(biāo)記(TOKEN)

62、 1.1 特別符號(Symbols) 字母(Letters) : A..Z , a..z 數(shù)字(Digits) : 0..9 十六進位數(shù)字(Hex Digits) : 0..9,A..F(OR a..f) 空白(Blank) : ASCII 32 單字元符號:+-*/=<>[].,():;^@{}$# 多字元符號:<=,>=,:=,..,(*,*),(.,.) 1.2 識別字(Identifiers) 表示:常數(shù),型態(tài),變數(shù),程序,函數(shù),程式單元,程式,欄位.... 長

63、度:63位內(nèi)有效,不分大小寫 字首:字母,_ 識別字不得重復(fù),若有重復(fù)必需采 限定識別字 : Name 1.3 標(biāo)箋(Label) : 0..9999 or 識別字 1.4 字元字串 ATTN ----------- ATTN Youll see ---- Yoyll see --------------- 空字串 -------------- 空白字元 Line 1#13#10Line 2 ------ Line 1

64、 Line 2 1.5 注釋 { xxxxxxx } { xxxxxxxx xxxxxx xxxxx } // xxxxxxxx 2.常數(shù)宣告 (使用標(biāo)記 = ) 2.1一般常數(shù)宣告 CONST Min = 0; Max = 100; Center = ( Max - Min ) Div 2; Blank = Chr(32); NumChr = Ord(Z) - Ord(A) + 1;

65、 ErrMsg = Out Of Rang; ErrDtl = Out Of Rang + :Item 10; Numeric = [ 0..9 ]; Alpha = [ A..Z,a..z]; AlphNum = Alpha + Numeric; 2.1型態(tài)常數(shù)(Typed constant)宣告 CONST MaxInt : Integer = 9999; FixReal : Real = -0.12; ListStr : String[4] = This;

66、 AA : Pchar = abcedf; Dim : Array[0..1,0..1,0..1] of Integer = (((0,1),(2,3)),((4,5),(6,7))); { Dim(0,0,0) = 0 Dim(0,0,1) = 1 Dim(0,1,0) = 2 Dim(0,1,1) = 3 Dim(1,0,0) = 4 Dim(1,0,1) = 5 Dim(1,1,0) = 6 Dim(1,1,1) = 7 } -------------------------------- TYPE Trec = record fl1,fl2 : Integer; end; CONST

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔

相關(guān)搜索

關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!