16.1 數據瀏覽部件的基本特性
大多數的數據瀏覽部件是從標準部件中演變過(guò)來(lái)的,它們具有一些相似的特性,如TDBGrid部件和TStringGrid部件,TDBEdit和TEdit部件,TDBListBox和TListBox等等,只是數據瀏覽部件是專(zhuān)門(mén)用于顯示和編輯數據庫中記錄的字段信息而已。它們的使用方法以及屬性有很大的不同。在程序設計階段,當數據瀏覽部件通過(guò)TDatasource部件和TTable部件連接到一個(gè)物理數據庫時(shí),便可在其中觀(guān)看到數據庫中的數據信息,也就是說(shuō)在程序設計階段便可以看到應用程序運行之后的效果,這種特性給我們修改應用程序帶來(lái)了方便。
數據瀏覽部件是通過(guò)TDatasource部件連接到TTable部件中具體的字段部件的,因而數據控制部件具有一些共同的屬性,用于連接TDatasource部件和TField部件。
Datasource屬性:說(shuō)明數據瀏覽部件連接的數據源部件TDatasource,數據瀏覽部件是從TDatasource部件中獲取數據的。
DataField屬性:說(shuō)明數據瀏覽部件對應數據庫表中實(shí)際的字段名稱(chēng)。該屬性的值其實(shí)是TDataSource連接的數據集部件TTable或TQuery部件中的字段部件的名字。
因此要創(chuàng )建一個(gè)應用程序顯示和編輯數據庫表中的記錄,一般要在應用窗體中放置一個(gè)數據集部件(TTable部件或TQuery部件)和至少一個(gè)數據源部件TDataSource部件以及多個(gè)數據瀏覽部件。其創(chuàng )建的一般步驟如下:
1.在窗體中放置上述所說(shuō)的部件并連接數據集部件、數據源部件。
2.為各數據瀏覽部件設置DataSource屬性值為窗休中存在的TDataSource部件的名字。
3.設置各數據瀏覽部件的DataField屬性為數據集部件TTable或TQuery部件中存在的字段部件的名字。
在這里需要注意的是:TDBGrid部件和TDBNavigator部件是自動(dòng)地訪(fǎng)問(wèn)數據集部件中所有可以訪(fǎng)問(wèn)的字段部件的,因此它們是沒(méi)有DataField屬性的,對于這些部件可以跳過(guò)第3步。
Enabled屬性:當數據瀏覽部件連接到數據集部件時(shí),它的Enabled屬性決定了數據瀏覽部件能否接受來(lái)自鼠標、鍵盤(pán)和定時(shí)器事件的消息。當Enabled屬性值為False時(shí),數據瀏覽部件將變?yōu)闊o(wú)效而不能接受外界的信息。當與數據瀏覽部件相連的TDataSource部件的Enabled屬性為False時(shí)或與數據源部件TDataSource部件相連的數據集部件TTable或TQuery部件的Active屬性為False時(shí),數據瀏覽部件也會(huì )隨之而變?yōu)闊o(wú)效。
ReadOnly屬性:大多數的數據瀏覽部件能夠用來(lái)編輯修改與之對應的字段,因而有ReadOnly屬性,該屬性用來(lái)控制是否可以在數據瀏覽中編輯修改字段的值。缺省情況下,該屬性的值為False,也就是說(shuō)用戶(hù)可以在其中編輯修改字段的值。
當然用戶(hù)要想通過(guò)數據瀏覽部件編輯修改數據庫表中的記錄字段時(shí),還要受到其它因素的制約。除了數據瀏覽部件本身的ReadOnly屬性設置為False外,還要設置其相應的字段部件和數據集部件的CanModify屬性True性;設置TDataSource部件的AutoEdit屬性為T(mén)rue,如果數據庫表是SQL數據庫服務(wù)器中的數據庫表,用戶(hù)必須要具有讀寫(xiě)數據庫的權限等。當然在實(shí)際的程序設計過(guò)程中并沒(méi)有這樣繁瑣,因為很多屬性的缺省值都是允許用戶(hù)修改表中的記錄的。
除了TDBGrid部件之外,如果通過(guò)一個(gè)數據瀏覽部件修改字段值,那么當光標(或焦點(diǎn))離開(kāi)數據瀏覽部件時(shí),數據瀏覽部件中被修改的值就會(huì )自動(dòng)地被寫(xiě)回到磁盤(pán)數據庫中。若在焦點(diǎn)沒(méi)有離開(kāi)數據瀏覽部件之前,按ESC鍵,那么Delphi會(huì )自動(dòng)地放棄其對字段值的修改。在TDBGrid部件中修改表中的記錄時(shí),只有當焦點(diǎn)離開(kāi)當前的記錄時(shí),即記錄指針移到其他記錄上時(shí),用戶(hù)對當前記錄的修改會(huì )被寫(xiě)回磁盤(pán)上的數據庫表,在焦點(diǎn)沒(méi)有離開(kāi)當前記錄時(shí),按ESC鍵,Delphi會(huì )自動(dòng)放棄對當前記錄的修改。
相關(guān)推薦:2010年9月計算機等級考試試題及答案解析專(zhuān)題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |