15.6 字段部件和字段編輯器的使用
字段部件有時又稱字段對象它對應(yīng)著數(shù)據(jù)庫表中的列即字段,字段對象是不可見的部件,在Delphi中有兩種方式創(chuàng)建字段部件:
①在應(yīng)用程序運行過程中,隨著數(shù)據(jù)集部件被激活,對應(yīng)于數(shù)據(jù)庫表中每一列的字段部件便動態(tài)地被創(chuàng)建。
、谠谠O(shè)計過程中,程序設(shè)計人員利用字段編輯器(Fields Editor)可以創(chuàng)建永久性的字段部件,即使字段對象對應(yīng)的數(shù)據(jù)庫表的結(jié)構(gòu)發(fā)生了變化時,這些字段部件也不會發(fā)生變化。
既然字段部件是對應(yīng)于數(shù)據(jù)庫表中的各個字段的,而數(shù)據(jù)庫表中的字段有多種數(shù)據(jù)類型,所以字段部件相應(yīng)也有多種類型,字段部件的類型與數(shù)據(jù)庫表中的字段的數(shù)據(jù)類型的對應(yīng)關(guān)系如表15.5所示。
表15.5 字段部件的類型
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
字段部件的類型 對應(yīng)的數(shù)據(jù)類型
────────────────────────────
TStringField 字符串類型的字段
TSmallIntField 短整數(shù)類型的字段 -32768-32767
TIntegerField 整數(shù)類型的字段
TWordField 正整數(shù)類型的字段0-65535
TBooleanField 布爾型字段
TFloatField 浮點數(shù)類型的字段
TCurrenCyField 貨幣型字段
TDataField 日期型
TTimeField 時間型
TBCDField 小數(shù)位數(shù)固定的浮點數(shù)
TDataTimeField 日期時間型字段
━━━━━━━━━━━━━━━━━━━━━━━━━━━
我們在本書中只介紹一些常見類型的字段部件的使用,其他類型字段部件的使用可以參看聯(lián)機幫助文件。
15.6.1 字段部件
字段部件在應(yīng)用程序中始終是不可見的部件。在程序運行過程中是如此,在程序設(shè)計階段也是如此,但是它在應(yīng)用中起著非常重要的作用,可以說它是所有數(shù)據(jù)瀏覽部件從數(shù)據(jù)庫表中顯示、編輯數(shù)據(jù)的基礎(chǔ)。這是因為字段部件直接對應(yīng)著數(shù)據(jù)庫表中的字段,瀏覽和修改表中的數(shù)據(jù)必須要通過字段部件,同時字段部件所擁有的屬性可以用來說明數(shù)據(jù)庫表中對應(yīng)的字段的數(shù)據(jù)類型、當前的字段值、顯示格式、編輯格式等,字段部件的事件如OnValidate可以用來設(shè)定輸入字段值時進行有效性檢驗。
數(shù)據(jù)庫表的每一列在應(yīng)用程序中都有其對應(yīng)的一個字段部件,在缺省情況下,當TTable或TQuery的Active屬性被置為False或調(diào)用close方法時,與表中各列對應(yīng)的字段部件也隨即消失,要想為應(yīng)用程序創(chuàng)建永久性的字段部件,我們必須要在程序設(shè)計階段使用字段編輯器(Fields Editor)來創(chuàng)建。使用字段編輯器創(chuàng)建永久性字段的好處是:我們在程序代碼中利用永久性字段部件可以更加有效、方便、可靠地訪問數(shù)據(jù)庫表中記錄的各字段值,在任何時候我們都可以以同樣的字段順序、固定的字段顯示表中的記錄,即使數(shù)據(jù)庫表的結(jié)構(gòu)已發(fā)生了變化。當然如果在數(shù)據(jù)庫表中與字段部件對應(yīng)的字段已經(jīng)不存在時,應(yīng)用程序就不能正常地執(zhí)行下去了,Delphi會彈出一個錯誤信息框,告訴用戶表中的字段已經(jīng)不存在了。
15.6.1.1 字段部件的屬性及應(yīng)用
字段部件具有很多的屬性,通過設(shè)置字段部件有關(guān)的屬性,可以控制字段對象在數(shù)據(jù)瀏覽部件中的顯示方式、字段值能否被修改等。特別是對于用字段編輯器創(chuàng)建的永久性的字段部件,我們在程序設(shè)計階段便可以在Object Inspector中方便地選取字段部件, 進行有關(guān)屬性的設(shè)置。
字段部件的主要屬性如表15.6所示,該表中列出的屬性只是字段部件的部分屬性,它主要用來控制字段對象的顯示方式。
表15.6 字段部件的主要屬性
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
屬性名 功 能
───────────────────────────────
Alignment 說明字段值在數(shù)據(jù)瀏覽部件中顯示時的對齊方式:
左對齊、右對齊、居中三種方式。
───────────────────────────────
Calculated 說明字段是否是計算字段,屬性值為True時,該
字段是計算字段、字段值可以根據(jù)表中其它字段
的值計算得出。
───────────────────────────────
Currency 等于true時,以貨幣格式顯示數(shù)值,等于False時,
不以貨幣格式顯示數(shù)值型數(shù)據(jù)。
───────────────────────────────
DisplayFormat 用于說明字段值在數(shù)據(jù)瀏覽部件中的顯示格式
───────────────────────────────
DisplayLabel 字段在網(wǎng)格(TDBGrid部件)中顯示時,為字段指定
顯示標題。
───────────────────────────────
DisplayNidth 字段在網(wǎng)格(TDBGrid部件)中顯示時,為字段指定
顯示寬度,單位是字符數(shù)。
───────────────────────────────
EditFormat 說明字段在數(shù)據(jù)瀏覽部件中的編輯輸入格式
───────────────────────────────
EditMask 在進行字段值的編輯輸入時,限定輸入字段值的
過濾條件(即字段值的范圍)。
───────────────────────────────
FieldName 該字段部件對應(yīng)實際數(shù)據(jù)庫表中的字段的名字
───────────────────────────────
Index 該字段部件在數(shù)據(jù)集所有字段部件中的順序號
───────────────────────────────
MaxValue 說明可以為該字段輸入最大的數(shù)值
───────────────────────────────
MinValue 說明可以為該字段輸入最小的數(shù)值
───────────────────────────────
Name 字段部件的名字
───────────────────────────────
ReadOnly 等于true時,只能讀取該字段的字段值,不能修改;
等于False時,可以對該字段的字段值進行讀寫。
───────────────────────────────
Size 說明字段的大小,單位是字符數(shù)
───────────────────────────────
Visible 為True時,該字段可以在TBDBGrid部件中顯示;
為False時,該字段不能在TDBGrid部件中顯示
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
表15.6中的屬性并不是所有類型的字段部件都擁有的,如一個TStringField類型的字段部件是沒有Currency、MaxValue、MinValue和DisplayFormat屬性的,一個TFloatField類型的字段部件是沒有Size屬性的。
對于布爾型屬性,在設(shè)計過程中的Object Inspector中雙擊該屬性,該屬性的值將會在True和False之間來回切換,其他屬性需要用戶輸入屬性值或從下拉式列表框中選取屬性值。所有的屬性都可以通過程序代碼進行設(shè)置。大多數(shù)屬性可以獨立地設(shè)置,只有DisplayFormat,EditFormat和EditMask是相互聯(lián)系的。在設(shè)置它們的屬性值時一定要確保相互協(xié)調(diào)。
相關(guān)推薦:2010年9月計算機等級考試試題及答案解析專題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |