16.4.2 TDBGrid部件的事件及應(yīng)用
TDBGrid部件在具有很多重要屬性的同時(shí),Delphi也為它賦予了一些事件,以用于控制用戶在TDBGrid部件中的操作,我們通過(guò)為其中的一些事件編寫處理程序,可以有效地控制TDBGrid部件的行為。因?yàn)樵赥DBGrid部件中一次是顯示多條記錄和記錄中的多個(gè)字段,也許在實(shí)際應(yīng)用中,不同的用戶各有自己特殊的需要,如只想改變其中某一列的值或者控制用戶每次只能進(jìn)出網(wǎng)格中指定的列等等。表16.7列出了TDBGrid部件的主要事件及目的用途。
表16.7 TDBGrid部件中的主要事件
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
事 件 名 目 的 用 途
────────────────────────────────
OnColEntor 當(dāng)用戶進(jìn)入網(wǎng)格各列時(shí),觸發(fā)該事件
OnColExit 當(dāng)用戶離開網(wǎng)格各列時(shí),觸發(fā)該事件
OnDblClick 當(dāng)用戶在網(wǎng)格中雙擊鼠標(biāo)左鍵時(shí),觸發(fā)該事件
OnDragDrop 當(dāng)用戶在網(wǎng)格中用鼠標(biāo)進(jìn)行拖放操作時(shí),觸發(fā)該事件
OnDragOver 當(dāng)用戶在網(wǎng)格中用鼠標(biāo)拖動(dòng)網(wǎng)格時(shí),觸發(fā)該事件
OnDrawDataCell 用于定制繪制網(wǎng)格中各網(wǎng)格單元,當(dāng)向網(wǎng)格中填充數(shù)
據(jù)時(shí)觸發(fā)該事件
OnEndDrag 當(dāng)用戶停止拖動(dòng)網(wǎng)格時(shí),觸發(fā)該事件
OnEnter 當(dāng)網(wǎng)格獲得焦點(diǎn)時(shí),觸發(fā)該事件
OnExit 當(dāng)網(wǎng)格失去焦點(diǎn)時(shí),觸發(fā)該事件
OnKeyDown 當(dāng)用戶在網(wǎng)格中按下任何鍵或組合鍵時(shí),觸發(fā)該事件
OnKeyPress 當(dāng)用戶在網(wǎng)格中按了任何一個(gè)數(shù)字鍵或字母鍵時(shí),觸
發(fā)該事件
OnKeyUp 當(dāng)用戶在網(wǎng)格中釋放任何被按下的鍵時(shí),觸發(fā)該事件
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
上述這些事件在我們開發(fā)實(shí)際的應(yīng)用程序時(shí),是很有用處的,讀者們可以仔細(xì)地研究這些事件的用途,并參看聯(lián)機(jī)幫助信息。
例如,我們可以為TDBGrid部件的OnDblClick事件編寫處理程序,當(dāng)用戶在網(wǎng)格中雙擊鼠標(biāo)左鍵時(shí),彈出一個(gè)列表框供用戶為網(wǎng)格中某一列選擇一個(gè)字段值。在例16.1中我們創(chuàng)建如圖16.5所示的應(yīng)用,在Object Inspector中設(shè)置各字段部件的Visible屬性,在網(wǎng)格中只顯示CustNo、Company、Country和City字段。我們?yōu)镈BGrid編寫OnDblclick事件處理過(guò)程,當(dāng)用戶編輯修改Country字段時(shí),雙擊鼠標(biāo)左鍵便彈出一個(gè)列表框ListBox1,其中顯示“中國(guó)”、“美國(guó)”、“日本”、“英國(guó)”、“法國(guó)”、“俄羅斯”供用戶選擇,用戶單擊其中的國(guó)家名稱后,將相應(yīng)的洲名選入網(wǎng)格中。
其中ListBox1的Items屬性寫入上述國(guó)家的名稱,并且設(shè)置其Visible屬性為False。
6.5 TDBNavigator部件及其應(yīng)用
TDBNavigator 部件主要用于在數(shù)據(jù)集中進(jìn)行記錄導(dǎo)航和為用戶操縱數(shù)據(jù)集中的記錄提供了一組簡(jiǎn)單明了的控制按鈕。TDBNavigator部件中包含一組控制按鈕,用戶單擊其中的按鈕可以向前向后移動(dòng)記錄指針、插入記錄、修改現(xiàn)存記錄、投寄對(duì)記錄的修改、取消修改、刪除記錄;以及刷新記錄的顯示等。
圖16.7為TDBNavigator部件中的控制按鈕。
下表描述了TDBNavigator部件中的各個(gè)控制按鈕。
表16.8 TDBNavigator部件中的控制按鈕
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
按鈕名稱 主 要 功 能
─────────────────────────────────
First 將當(dāng)前記錄指針移到數(shù)據(jù)庫(kù)表中第一條記錄處
Prior 將記錄指針移到當(dāng)前記錄的前一條記錄處
Next 將記錄指針移到當(dāng)前記錄的后一條記錄處
Last 將當(dāng)前記錄指針移到數(shù)據(jù)庫(kù)表中最后一條記錄處
Insert 調(diào)用數(shù)據(jù)集部件的Insert方法,在當(dāng)前記錄的前面
插入一條新記錄,并將數(shù)據(jù)集部件置為插入狀態(tài)
Delete 刪除當(dāng)前記錄,如果TDBNavigator部件的ConfirmDelete
屬性設(shè)置為true時(shí),會(huì)彈出刪除確認(rèn)對(duì)話框
Edit 將數(shù)據(jù)集部件置為編輯狀態(tài),以便用戶修改當(dāng)前的記錄
Post 投寄對(duì)當(dāng)前記錄的修改
Cancel 取消對(duì)當(dāng)前記錄的修改,并將數(shù)據(jù)集部件置為瀏覽狀態(tài)
Refresh 清除數(shù)據(jù)瀏覽部件的顯示緩沖區(qū),并用與其相連的數(shù)據(jù)
集部件(TTable或TQuery)中的記錄刷新顯示緩沖區(qū)。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
TDBNavigator部件的屬性較少。下面我們作一簡(jiǎn)單的介紹:TDBNavigator部件的一個(gè)重要屬性是VisibleButtons屬性,該屬性中包含著多個(gè)可選的擴(kuò)展子屬性,主要用于選擇TDBNavigator部件中各個(gè)控制按鈕的顯示與否的。因?yàn)樵趯?shí)際的應(yīng)用當(dāng)中,我們并不需要那么多的控制按鈕。如在一個(gè)瀏覽數(shù)據(jù)庫(kù)表的應(yīng)用中,我們一般只需要First、Prior、Next、Last四個(gè)按鈕就行了,那么我們便在VisibleButtons屬性中設(shè)置其它的按鈕為False即可。
ShowHint屬性:該屬性是布爾型屬性,它用于控制是否顯示TDBNavigator部件中各按鈕的動(dòng)態(tài)提示信息。缺省情況下該屬性的值為False,當(dāng)設(shè)置它的值為True時(shí),當(dāng)用戶將鼠標(biāo)光標(biāo)停留在TDBNavigator部件中某一個(gè)控制按鈕上,超過(guò)1秒鐘時(shí)間后,Delphi便會(huì)自動(dòng)顯示有關(guān)該控制按鈕的提示信息。
Hints屬性:在缺省情況下,TDBNavigator部件中的各控制按鈕都有相應(yīng)的動(dòng)態(tài)提示信息,如First、Prior、Next、Last等,用戶可以根據(jù)自己的需要,通過(guò)設(shè)置Hints屬性可以為各控制按鈕設(shè)置其他的動(dòng)態(tài)提示信息,用戶自己設(shè)置的動(dòng)態(tài)提示信息會(huì)覆蓋原來(lái)的提示信息。
相關(guān)推薦:2010年9月計(jì)算機(jī)等級(jí)考試試題及答案解析專題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |