手動刷新數據
調用數據集的Refresh可以讀取數據集中最新的數據並刷新數據控件,這個功能在多用戶環境尤其有用,因為其他用戶有可能已改變了數據集中的數據。有時候,調用Refresh可能會導致意想不到的結果。例如,如果另一個用戶已經刪除了一條記錄,調用Refresh後,這條記錄將從數據控件中消失。
顯示單個字段的數據控件
有的數據控件以數據庫的一個或幾個字段作為工作內容,如TDBText和TDBEdit,而有的數據控件以整個數據集為工作內容,如TDBGrid和TDBNavigator。顯示單個字段的數據控件往往是從一個標准的Windows控件演化而來的,例如,TDBEdit構件就可以認為是TEdit的數據感知版本。
1、把數據作為標簽顯示
TDBText構件是一個只讀的數據控件,它非常類似於TLabel構件和TStaticText構件。TDBText構件能夠把數據作為標簽顯示,用來標注其他控件。例如,可以用一個TDBText構件顯示名稱(Common_Name字段)。
TDBText構件需要指定一個字段。當用戶使用導航器或其他手段浏覽記錄時,TDBText構件顯示的數據將自動變化,因為TDBText構件總是顯示當前記錄的數據。
TDBText構件的AutoSize屬性一般要設為True,這是因為字段的內容長度可能是不同的。如果AutoSize屬性設為False,有些較長的內容可能會被截斷。
2、顯示和編輯數據
TDBText構件只能顯示數據,不能編輯數據。要既能顯示數據,又能編輯數據,就要用到TDBEdit構件。TDBEdit可以認為是TEdit的數據感知(Data-Aware)版本。例如,有一個TDataSource構件叫CustomersSource,它的DataSet屬性指向一個TTable構件叫CustomersTable。把一個TDBEdit構件放在窗體上,其DataSource屬性設為CustomersSource,把它的DataFIEld屬性設為CustNo。這個TDBEdit構件馬上就能顯示CustNo字段的值。用戶可以在編輯框中鍵入新的值。
顯示和編輯多行文本
TDBMemo構件是TMemo構件的數據感知版本,可以顯示DBase和Paradox數據庫中備注字段的內容。
與TDBEdit不同的是,TDBMemo能夠以多行的形式顯示文本,同時也允許用戶鍵入多行文本。
默認情況下,TDBMemo允許用戶修改它顯示的文本。如果不想讓用戶修改文本,只要把ReadOnly屬性設為True即可。
要允許用戶在文本中插入一個制表符,應當把WantTabs屬性設為True,否則,當用戶按下Tab鍵,將把輸入焦點移走,而不是插入制表符。要限制用戶最多可輸入的字符數,可以設置MaxLength屬性。如果這個屬性設為0,表示沒有限制。
此外,ScrollBars屬性可以設置要不要加上滾動欄,WordWrap屬性可以設置是否允許自動繞回,Alignment屬性可以設置文本的對齊方式。在運行期,您可以調用CutToClipboard和CopyToClipboard函數把選擇的文本剪切和復制到剪貼板中,調用PasteFromClipboard能夠粘貼剪貼板中的文本。
如果AutoDisplay屬性設為True,當DataFIEld屬性所指定的字段的內容改變了時,TDBMemo構件會自動刷新。如果AutoDisplay屬性設為False,TDBMemo構件上只顯示字段名,用戶必須雙擊這個構件或程序調用LoadMemo才能刷新數據。