15.6.1 字段部件
字段部件在應用程序中始終是不可見的部件。在程序運行過程中是如此,在程序設計階段也是如此,但是它在應用中起著非常重要的作用,可以說它是所有數據浏覽部件從數據庫表中顯示、編輯數據的基礎。這是因為字段部件直接對應著數據庫表中的字段,浏覽和修改表中的數據必須要通過字段部件,同時字段部件所擁有的屬性可以用來說明數據庫表中對應的字段的數據類型、當前的字段值、顯示格式、編輯格式等,字段部件的事件如OnValidate可以用來設定輸入字段值時進行有效性檢驗。
數據庫表的每一列在應用程序中都有其對應的一個字段部件,在缺省情況下,當TTable或TQuery的Active屬性被置為False或調用close方法時,與表中各列對應的字段部件也隨即消失,要想為應用程序創建永久性的字段部件,我們必須要在程序設計階段使用字段編輯器(FIElds Editor)來創建。使用字段編輯器創建永久性字段的好處是:我們在程序代碼中利用永久性字段部件可以更加有效、方便、可靠地訪問數據庫表中記錄的各字段值,在任何時候我們都可以以同樣的字段順序、固定的字段顯示表中的記錄,即使數據庫表的結構已發生了變化。當然如果在數據庫表中與字段部件對應的字段已經不存在時,應用程序就不能正常地執行下去了,Delphi會彈出一個錯誤信息框,告訴用戶表中的字段已經不存在了。
15.6.1.1 字段部件的屬性及應用
字段部件具有很多的屬性,通過設置字段部件有關的屬性,可以控制字段對象在數據浏覽部件中的顯示方式、字段值能否被修改等。特別是對於用字段編輯器創建的永久性的字段部件,我們在程序設計階段便可以在Object Inspector中方便地選取字段部件, 進行有關屬性的設置。
字段部件的主要屬性如表15.6所示,該表中列出的屬性只是字段部件的部分屬性,它主要用來控制字段對象的顯示方式。
表15.6 字段部件的主要屬性
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
屬性名 功 能
───────────────────────────────
Alignment 說明字段值在數據浏覽部件中顯示時的對齊方式:
左對齊、右對齊、居中三種方式。
───────────────────────────────
Calculated 說明字段是否是計算字段,屬性值為True時,該
字段是計算字段、字段值可以根據表中其它字段
的值計算得出。
───────────────────────────────
Currency 等於true時,以貨幣格式顯示數值,等於False時,
不以貨幣格式顯示數值型數據。
───────────────────────────────
DisplayFormat 用於說明字段值在數據浏覽部件中的顯示格式
───────────────────────────────
DisplayLabel 字段在網格(TDBGrid部件)中顯示時,為字段指定
顯示標題。
───────────────────────────────
DisplayNidth 字段在網格(TDBGrid部件)中顯示時,為字段指定
顯示寬度,單位是字符數。
───────────────────────────────
EditFormat 說明字段在數據浏覽部件中的編輯輸入格式
───────────────────────────────
EditMask 在進行字段值的編輯輸入時,限定輸入字段值的
過濾條件(即字段值的范圍)。
───────────────────────────────
FIEldName 該字段部件對應實際數據庫表中的字段的名字
───────────────────────────────
Index 該字段部件在數據集所有字段部件中的順序號
───────────────────────────────
MaxValue 說明可以為該字段輸入最大的數值
───────────────────────────────
MinValue 說明可以為該字段輸入最小的數值
───────────────────────────────
Name 字段部件的名字
───────────────────────────────
ReadOnly 等於true時,只能讀取該字段的字段值,不能修改;
等於False時,可以對該字段的字段值進行讀寫。
───────────────────────────────
Size 說明字段的大小,單位是字符數
───────────────────────────────
Visible 為True時,該字段可以在TBDBGrid部件中顯示;
為False時,該字段不能在TDBGrid部件中顯示
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
表15.6中的屬性並不是所有類型的字段部件都擁有的,如一個TStringFIEld類型的字