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