熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

Delphi數據庫控件使用入門(二)

2013-11-11 21:05:05  來源: Delphi編程 

  以RTF格式顯示文本

  TDBRichEdit構件可以認為是TRichEdit構件的數據感知版本用於以RTF格式顯示BLOB字段中的格式化文本它的用法類似於TDBMemo構件也能顯示多行文本

  注意盡管TDBRichEdit構件能夠顯示RTF格式的文本並且提供了很強的編輯功能但是它本身並沒有提供用戶界面應用程序必須設計出相應的用戶界面才能把TDBRichEdit 構件強大的功能發揮出來

  默認情況下TDBRichEdit構件允許用戶鍵入新的文本如果不想讓用戶修改文本可以把ReadOnly屬性設為True要允許用戶在文本中插入一個制表符應當把WantTabs屬性設為True否則當用戶按下Tab鍵將把輸入焦點移走而不是插入制表符

  要限制用戶最多可輸入的字符數可以設置MaxLength屬性如果這個屬性設為表示沒有限制如果AutoDisplay屬性設為True當DataField屬性所指定的字段的內容改變了時TDBRichEdit構件會自動刷新如果AutoDisplay屬性設為FalseTDBRichEdit構件上只顯示字段名用戶必須雙擊這個構件或程序調用LoadMemo函數才能刷新數據

  顯示和編輯圖像

  TDBImage構件可以認為是TImage構件的數據感知版本它可以顯示BLOB字段的內容TDBImage構件從數據集中檢索了圖像後在本地以DIB格式建立一個副本

  可以調用CutToClipboard或CopyToClipboard函數把圖像剪切或復制到剪貼板中調用 PasteFromClipboard可以從剪貼板中粘貼圖像

  如果Stretch屬性設為True圖像將自動縮放以適應TDBImage構件的大小這樣就可能造成圖像變形

  如果AutoDisplay屬性設為True當DataField屬性所指定的字段的內容改變了時TDBImage構件會自動刷新如果這個屬性設為FalseTDBImage構件上只顯示字段名用戶必須雙擊這個構件才能刷新數據當然也可以調用LoadPicture來刷新數據

用列表框和組合框顯示和編輯數據

  有個特殊的數據控件可以用列表框和組合框顯示和編輯數據它們可以認為是標准的列表框和組合框的數據感知版本下面簡單介紹這個數據控件

  TDBListBox用列表框顯示一組數據讓用戶從中選擇一個值

  TDBComboBox用組合框顯示一組數據讓用戶從中選擇一個值

  TDBLookupListBox用列表框顯示另一個數據集中的一組數據讓用戶從中選擇一個值

  TDBLookupComboBox用組合框顯示另一個數據集中的一組數據讓用戶從中選擇一個值

  TDBComboBox

  TDBComboBox構件實際上是TComboBox構件的數據感知版本它能以組合框的形式顯示一組數據讓用戶從列表中選擇一個值或直接輸入一個值

  Items屬性用於設置列表中要顯示的一組數據在設計期可以單擊Items屬性邊上的省略號按鈕打開一個字符串列表編輯器然後輸入一些字符串

  DropDownCount屬性用於設置當用戶下拉組合框時不需要加滾動欄就能顯示的項的個數默認是表示用戶下拉組合框時如果項的個數超過個才加上滾動欄如果實際的項數還沒有DropDownCount屬性指定的值多下拉的組合框的高度自動縮小

  在Style屬性設為csOwnerDrawFixed的情況下ItemHeight屬性用於設置項的高度 

  顯示另一個數據集中的數據

  TDBLookupListBox構件和TDBLookupComboBox構件分別以列表框和組合框的形式顯示另一個數據集中的數據

  假設有一個表格叫OrdersTable其中包含一個CustNo字段用於表達客戶的編號但OrdersTable表中除了客戶的編號外不包含客戶的其他信息而另一個表格假設叫CustomersTable除了有CustNo字段外還有諸如客戶的公司名稱地址等信息

  TDBLookupListBox構件可以實現這樣的功能當用戶在OrdersTable中浏覽記錄時程序首先在CustomersTable中查找與CustNo字段匹配的記錄如果找不到就從列表中查找與Company字段匹配的字符串如果找到就選擇這一項

  用復選框處理布爾類型的字段

  TDBCheckBox構件可以認為是TCheckBox構件的數據感知版本用於處理布爾類型的字段例如可以用一個復選框來表示客戶是否已付帳

  TDBCheckBox構件實際上是把字段的值與預設的兩個字符串比較這兩個字符串分別由ValueChecked和ValueUnChecked屬性指定如果字段的值與ValueChecked屬性指定的字符串匹配就選中復選框如果字段的值與ValueUnchecked屬性指定的字符串匹配就不選中復選框注意ValueChecked屬性和ValueUnchecked屬性所指定的字符串不能相同

  一般情況下ValueChecked屬性設為TrueYes之類的字符串但也可以是其他任意的字符串甚至是一組字符串彼此之間要用分號隔開例如

  DBCheckBoxValueChecked := True;Yes;On;

  上述情況下當字段的值只要與其中一個字符串匹配就選中復選框要說明的是ValueChecked屬性指定的字符串是大小寫敏感的一般情況下ValueUnchecked屬性設為FalseNo之類的字符串但也可以是其他任意的字符串甚至是一組字符串彼此之間用分號隔開如果字段的值既不與ValueChecked屬性指定的字符串匹配也不與ValueUnchecked屬性指定的字符串匹配復選框就變灰


From:http://tw.wingwit.com/Article/program/Delphi/201311/8451.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.