在TDBGrid部件中顯示數據庫表中的記錄信息時如果TDBGrid使用數據集部件在運行過程中動態生成的字段部件時TDBGrid顯示數據庫表中的記錄是按表中記錄的缺省順序和字段的缺省順序顯示表中的記錄信息而且要顯示表中各個記錄的全部字段的值而在大多數情況下用戶可能希望按自己喜歡的字段順序顯示記錄的各個字段有時還希望只顯示記錄的部分字段值要達到這一目的必須在設計階段使用字段編輯器來創建永久性的字段部件並且還要設置各個字段部件有關的屬性
當使用字段編輯器(Fields Editor)創建永久性的字段部件提供給TDBGrid部件來使用時我們可以在TDBGrid部件中更靈活地顯示數據庫表中的記錄信息例如在字段編輯器中的Fields列表框中我們可以設定字段部件的顯示順序在設定好字段的顯示順序之後TDBGrid部件便按這個順序顯示記錄的各個字段值當我們設置字段部件的DisplayFormat和EditFormat屬性之後在TDBGrid部件中便相應地以設定的顯式和編輯格式顯示字段值和編輯字段值當設置某一個字段部件的Required屬性為True時當插入一條新記錄時必須要為該字段輸入相應的字段值否則會出錯通過設置字段部件的Visible屬性可以確定相應的字段值是否在TDBGrid組件中顯示有關使用字段編輯器來創建字段部件設置字段部件的屬性請參看節
TDBGrid部件的主要屬性及應用
TDBGrid部件是用於顯示和編輯數據庫表中的記錄信息的重要部件它是我們在程序設計過程當中要經常使用的靈活地用於顯示和編輯數據庫表中的記錄信息的一個強有力的工具TDBGrid具有很多重要的屬性我們可以在程序設計階段和程序運行過程中進行設置TDBGrid部件的一些重要屬性及其設置方法請參看聯機幫助文件TDBGrid部件中一些重要的屬性是Option屬性DrawMode屬性和DefaultDrawing屬性我們重點對兩個屬性進行闡述
Options屬性它是TDBGrid部件的一個擴展屬性在程序設計階段設置Options屬性可以控制TDBGrid部件的顯示特性和對事件的響應特性Options屬性在TDBGrid部件的屬性欄中顯示時它的前面帶有一個+標志雙擊+標志便可以展開一個布爾型屬性列表用戶可以逐個地修改其中的各個屬性值修改完畢後可以雙擊Options屬性前的標志使TDBGrid部件的屬性列表恢復到原來的顯示狀態
表列出了Options屬性中包含的所有的擴展屬性項以及它們對TDBGrid部件的影響
表 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部件來顯示和編輯數據庫表中的數據了圖所示的應用窗體中各部件的屬性設置如表所示
[] [] []
From:http://tw.wingwit.com/Article/program/Delphi/201311/25148.html