表 各部件的屬性設置
━━━━━━━━━━━━━━━━━━━━
屬 性 名 屬 性 值
────────────────────
TableDatabaseName DEMOS
TableTableName CustomerDB
TableCanModify True
DataSourceDataSet Table
DataSourceAutoEdit True
DBGridDatasource DataSource
DBGridReadOnly False
━━━━━━━━━━━━━━━━━━━━
在其他數據浏覽部件(如TDBEdit)中編輯修改其中的內容時只要用戶用Tab鍵或鼠標將焦點移到其他部件時用戶對該字段的修改會自動地寫回到數據庫表中使用TDBGrid部件編輯修改數據庫表時Delphi是以記錄為基本單位將修改寫回磁盤上的數據庫表的用戶在編輯和修改表中的當前記錄時只有用戶將記錄指針移到其他的記錄時Delphi才將用戶對當前記錄的修改寫回到磁盤上的數據庫表否則用戶即使改變焦點到窗體中的其他部件Dephi也不會投寄用戶對當前記錄的修改Delphi在向數據庫表投寄TDBGrid部件中的被修改的記錄時它會自動地檢查所有與當前數據庫相連的數據浏覽部件的狀態只要其中有任何一數據浏覽部件正在修改數據這時會彈出出錯信息並且當前記錄的修改不會被投寄(即被寫回磁盤上的數據庫表)
TDBGrid部件的事件及應用
TDBGrid部件在具有很多重要屬性的同時Delphi也為它賦予了一些事件以用於控制用戶在TDBGrid部件中的操作我們通過為其中的一些事件編寫處理程序可以有效地控制TDBGrid部件的行為因為在TDBGrid部件中一次是顯示多條記錄和記錄中的多個字段也許在實際應用中不同的用戶各有自己特殊的需要如只想改變其中某一列的值或者控制用戶每次只能進出網格中指定的列等等表列出了TDBGrid部件的主要事件及目的用途
表 TDBGrid部件中的主要事件
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
事 件 名 目 的 用 途
────────────────────────────────
OnColEntor 當用戶進入網格各列時觸發該事件
OnColExit 當用戶離開網格各列時觸發該事件
OnDblClick 當用戶在網格中雙擊鼠標左鍵時觸發該事件
OnDragDrop 當用戶在網格中用鼠標進行拖放操作時觸發該事件
OnDragOver 當用戶在網格中用鼠標拖動網格時觸發該事件
OnDrawDataCell 用於定制繪制網格中各網格單元當向網格中填充數據時觸發該事件
OnEndDrag 當用戶停止拖動網格時觸發該事件
OnEnter 當網格獲得焦點時觸發該事件
OnExit 當網格失去焦點時觸發該事件
OnKeyDown 當用戶在網格中按下任何鍵或組合鍵時觸發該事件
OnKeyPress 當用戶在網格中按了任何一個數字鍵或字母鍵時觸發該事件
OnKeyUp 當用戶在網格中釋放任何被按下的鍵時觸發該事件
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
上述這些事件在我們開發實際的應用程序時是很有用處的讀者們可以仔細地研究這些事件的用途並參看聯機幫助信息
例如我們可以為TDBGrid部件的OnDblClick事件編寫處理程序當用戶在網格中雙擊鼠標左鍵時彈出一個列表框供用戶為網格中某一列選擇一個字段值在例中我們創建如圖所示的應用在Object Inspector中設置各字段部件的Visible屬性在網格中只顯示CustNoCompanyCountry和City字段我們為DBGrid編寫OnDblclick事件處理過程當用戶編輯修改Country字段時雙擊鼠標左鍵便彈出一個列表框ListBox其中顯示中國美國日本英國法國俄羅斯供用戶選擇用戶單擊其中的國家名稱後將相應的洲名選入網格中
其中ListBox的Items屬性寫入上述國家的名稱並且設置其Visible屬性為False
TDBNavigator部件及其應用
TDBNavigator 部件主要用於在數據集中進行記錄導航和為用戶操縱數據集中的記錄提供了一組簡單明了的控制按鈕TDBNavigator部件中包含一組控制按鈕用戶單擊其中的按鈕可以向前向後移動記錄指針插入記錄修改現存記錄投寄對記錄的修改取消修改刪除記錄以及刷新記錄的顯示等
下表描述了TDBNavigator部件中的各個控制按鈕
表 TDBNavigator部件中的控制按鈕
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
按鈕名稱 主 要 功 能
─────────────────────────────────
First 將當前記錄指針移到數據庫表中第一條記錄處
Prior 將記錄指針移到當前記錄的前一條記錄處
Next 將記錄指針移到當前記錄的後一條記錄處
Last 將當前記錄指針移到數據庫表中最後一條記錄處
Insert 調用數據集部件的Insert方法在當前記錄的前面
插入一條新記錄並將數據集部件置為插入狀態
Delete 刪除當前記錄如果TDBNavigator部件的ConfirmDelete屬性設置為true時會彈出刪除確認對話框
Edit 將數據集部件置為編輯狀態以便用戶修改當前的記錄
Post 投寄對當前記錄的修改
Cancel 取消對當前記錄的修改並將數據集部件置為浏覽狀態
Refresh 清除數據浏覽部件的顯示緩沖區並用與其相連的數據集部件(TTable或TQuery)中的記錄刷新顯示緩沖區
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
TDBNavigator部件的屬性較少下面我們作一簡單的介紹TDBNavigator部件的一個重要屬性是VisibleButtons屬性該屬性中包含著多個可選的擴展子屬性主要用於選擇TDBNavigator部件中各個控制按鈕的顯示與否的因為在實際的應用當中我們並不需要那麼多的控制按鈕如在一個浏覽數據庫表的應用中我們一般只需要FirstPriorNextLast四個按鈕就行了那麼我們便在VisibleButtons屬性中設置其它的按鈕為False即可
ShowHint屬性該屬性是布爾型屬性它用於控制是否顯示TDBNavigator部件中各按鈕的動態提示信息缺省情況下該屬性的值為False當設置它的值為True時當用戶將鼠標光標停留在TDBNavigator部件中某一個控制按鈕上超過秒鐘時間後Delphi便會自動顯示有關該控制按鈕的提示信息
Hints屬性在缺省情況下TDBNavigator部件中的各控制按鈕都有相應的動態提示信息如FirstPriorNextLast等用戶可以根據自己的需要通過設置Hints屬性可以為各控制按鈕設置其他的動態提示信息用戶自己設置的動態提示信息會覆蓋原來的提示信息
TDBMemo部件及其應用
TDBMemo部件主要用於顯示和編輯數據庫表中的大二進制(BLOB)類型的字段值TDBMemo部件能夠顯示多行文本也允許用戶在其中輸入和修改多行文本信息它是Delphi中用來顯示和編輯數據庫表中的大二進制類型的文本字段的唯一的數據浏覽部件
[] [] []
From:http://tw.wingwit.com/Article/program/Delphi/201311/25149.html