程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi數據浏覽部件的應用及編程(3)

Delphi數據浏覽部件的應用及編程(3)

編輯:Delphi

16.4.1 TDBGrid部件的主要屬性及應用 

TDBGrid部件是用於顯示和編輯數據庫表中的記錄信息的重要部件,它是我們在程序設計過程當中要經常使用的、靈活地用於顯示和編輯數據庫表中的記錄信息的一個強有力的工具。TDBGrid具有很多重要的屬性,我們可以在程序設計階段和程序運行過程中進行設置。TDBGrid部件的一些重要屬性及其設置方法請參看聯機幫助文件。TDBGrid部件中一些重要的屬性是Option屬性、DrawMode屬性和DefaultDrawing屬性,我們重點對兩個屬性進行闡述。

Options屬性:它是TDBGrid部件的一個擴展屬性,在程序設計階段設置Options屬性可以控制TDBGrid部件的顯示特性和對事件的響應特性。Options屬性在TDBGrid部件的屬性欄中顯示時,它的前面帶有一個“+”標志,雙擊“+”標志,便可以展開一個布爾型屬性列表,用戶可以逐個地修改其中的各個屬性值,修改完畢後可以雙擊Options屬性前的“-”標志,使TDBGrid部件的屬性列表恢復到原來的顯示狀態。

表16.5列出了Options屬性中包含的所有的擴展屬性項以及它們對TDBGrid部件的影響。 

表16.5 TDBGrid部件的Options屬性中的擴展屬性項

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

屬 性 名 取 值 及 影 響

─────────────────────────────────

dbEditing True: 缺省情況下為此值,確保用戶能夠在網格中編輯插

入和刪除數據庫表中的記錄

False:在網格中不能編輯、插入和刪除表中的記錄

─────────────────────────────────

dbAlwaysShow True: 當用戶選中記錄中的一個字段時,自動地使該字段

Editor 處於編輯狀態

False:缺省情況下為此值。當一個字段被選中,它不能

自動地變成編輯狀態

─────────────────────────────────

dgTitles True: 缺省情況下為此值。在網格的第一行中顯示字段名

或字段標題

False:在網格中不顯示字段名或字段對應的標題

─────────────────────────────────

dgIndicator True: 缺省情況下為此值。在網格的最左邊用一個黑箭頭

標注當前記錄指針所在的位置,在插入狀態時,箭

頭變成星狀,在編輯狀時,箭頭變成"I"頭。

False:在網格中不標識當前記錄指針的位置

─────────────────────────────────

dgColumnResize True: 缺省情況下為此值。通過拖拉網格的垂直分隔線可

以改變網格中各列的寬度,在具體操作時要拖拉各

列中顯示字段標題區域中的垂直分隔線。

False:網格中各列的寬度不能改變

─────────────────────────────────

dgCloLines True: 缺省情況下為此值。在網格中顯示各列之間的垂直

分隔線。

False:在網格中不顯示垂直分隔線

─────────────────────────────────

dgRowLines True: 缺省情況下為此值。在網格中顯示各行之間的水平

分隔線。

False:在網格中不顯示水平分隔線。

─────────────────────────────────

dgTabs True: 缺省情況下為此值。可以在記錄的各字段之間移動

輸入焦點(也即選擇提示棒)

False:不能在記錄的名字段之間移動輸入焦點,在網格中

按Tab鍵時,直接跳出網格

─────────────────────────────────

dgRowSelect True: 選擇提示棒覆蓋整條記錄中的全部字段

False:缺省情況下為此值。選擇提示棒一次只覆蓋記錄中

的一個字段

─────────────────────────────────

dgAlwaysShow True: 缺省情況下為此值。在網格始終顯示選擇提示棒,即

-Selection 使其控件獲得焦點時,也是如此。

False:只在當網格獲得焦點時,才顯示選擇提示棒。

─────────────────────────────────

dbConfirmDelete True: 缺省情況下為此值。當在網格中刪除記錄時,彈出確

認信息。

False:在網格中刪除記錄時不彈出確認信息。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

用戶想了解這些可選屬性項的作用和影響,還可以參看聯機幫助信息。

DragMode屬性:該屬性有兩個可選的屬性值。當它的值被設置為dmManual時,在應用程序運行過程中,用戶可以用鼠標拖放網格中的各列,改變各列在網格中的顯示順序和位置。當用鼠標拖放網格中的一列、改變它在網格中的位置時,只是改變了該列在數據集中的位置,並沒有改變它對應的數據庫表中的位置。當該屬性的值被設置成dmAutomatic時,用戶不能用鼠標拖放網格中的各列而改變它在網格中的位置。

DefalultDrawing屬性:該屬性是布爾型屬性,它用於控制網格中各網格單元的繪制方式。在缺省情況下,該屬性的值為True,也就是說Delphi使用網格本身缺省的方法繪制網格中各網格單元,並填充各網格單元中的內容,各網格單元中的數據根據其對應的字段部件的DisplayFormat屬性和EidtFormat屬性進行顯示和繪制。如果DefaulDrawing屬性被設置為False時,Delphi不會自動地繪制網格中各網格單元和網格單元中的數據,用戶必須自己為TDBGrid部件的OnDrawDataCell事件編寫相應的程序用於繪制各網格單元和其中的數據。

在了解了TDBGrid部件的各個屬性之後,我們便可以使用TDBGrid部件來顯示和編輯數據庫表中的數據了。圖16.5所示的應用窗體中各部件的屬性設置如表16.6所示。

表16.6 各部件的屬性設置

━━━━━━━━━━━━━━━━━━━━

屬 性 名 屬 性 值

────────────────────

Table1.DatabaseName DEMOS

Table1.TableName Customer.DB

Table1.CanModify True

DataSource1.DataSet Table1

DataSource1.AutoEdit True

DBGrid1.Datasource DataSource1

DBGrid1.ReadOnly False

━━━━━━━━━━━━━━━━━━━━

在其他數據浏覽部件(如TDBEdit)中編輯修改其中的內容時,只要用戶用Tab鍵或鼠標將焦點移到其他部件時,用戶對該字段的修改會自動地寫回到數據庫表中,使用TDBGrid部件編輯修改數據庫表時,Delphi是以記錄為基本單位將修改寫回磁盤上的數據庫表的。用戶在編輯和修改表中的當前記錄時,只有用戶將記錄指針移到其他的記錄時,Delphi才將用戶對當前記錄的修改寫回到磁盤上的數據庫表,否則,用戶即使改變焦點到窗體中的其他部件,Dephi也不會投寄用戶對當前記錄的修改。Delphi在向數據庫表投寄TDBGrid部件中的被修改的記錄時,它會自動地檢查所有與當前數據庫相連的數據浏覽部件的狀態,只要其中有任何一數據浏覽部件正在修改數據,這時會彈出出錯信息,並且當前記錄的修改不會被投寄(即被寫回磁盤上的數據庫表)。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved