16.6 TDBMemo部件及其應用
TDBMemo部件主要用於顯示和編輯數據庫表中的大二進制(BLOB)類型的字段值。TDBMemo部件能夠顯示多行文本,也允許用戶在其中輸入和修改多行文本信息,它是Delphi中用來顯示和編輯數據庫表中的大二進制類型的文本字段的唯一的數據浏覽部件。
TDBMemo部件的主要屬性和作用如下:
ReadOnly屬性:這是布爾型屬性,為True時,用戶只能在TDBMemo部件中顯示BLOB型文本信息,如Paradox和DBase數據庫表中的備注型字段。當為False時,用戶在TDBMemo 部件中不僅可以顯示BLOB文本信息而且還允許用戶編輯修改其中的文本信息。
MaxLength屬性:該屬性是整數型屬性,設置該屬性的值用於限制用戶向TDBMemo 部件中輸入字符的個數。若設置該值為0時,表示輸入字符的個數沒有限制。
SCrollBar屬性:說明TDBMemo部件是否顯示滾動條。
WordWrap屬性:說明在TDBMemo部件中輸入文本信息時,輸入到右邊界時,是否自動換行。
Alignment屬性:說明文本信息在TDBMemo部件中的對齊方式,有三種可選值:taLeftJustify、taCenter和taRightJustify。其含義分別是左對齊,居中和右對齊。
在運行過程中,用戶對TDBMemo部件中顯示的文本信息是不能夠進行剪切、拷貝和粘貼操作的,要想具備這些功能,用戶必須編程調用CutToClipboard、CopyToClipboard 和PasteFromClipboard方法分別來實現剪切,拷貝和粘貼操作。
AutoDisplay屬性:因為TDBMemo部件中包含著大量的文本信息。應用程序在運行過程中要顯示其中的信息需要花費很多的時間,特別是當用戶移動記錄指針時,都要更新TDBMemo部件中顯示的信息,這樣會大大減慢程序的運行速度。為此Delphi為TDBMemo部件設定了AutoDisplay屬性,用來控制是否自動顯示表中的備注型字段。當AutoDisplay設置為False時,在TDBMemo部件中只顯示其對應表中的字段名而不顯示字段中的文本信息,用戶如果想浏覽字段中的文本信息,用鼠標左鍵雙擊TDBMemo部件的內部即可;當設置AutoDisplay屬性為True時,在TDBMemo部件中會自動地顯示其對應數據庫表中的字段值。
這裡要注意的是,TDBMemo部件中顯示和編輯文本信息的最大字節數為32K,在使用過程中不要超過這一限制。
圖16.8是TDBMemo顯示數據庫表中備注型字段的情形。該例子在C:\Delphi\DEMOS\DA子目錄中,項目名稱為FashFact.dpr。
用TDBMemo部件顯示備注型字段
16.7 TDBImage部件及其應用
TDBImage部件與TDBMemo部件具有很多相似的屬性,它是用來顯示和編輯數據庫表中的BLOB類型的位圖圖像字段的。
圖16.8中同時也使用了一個TDBImage部件來顯示數據庫表中的位圖圖像。
缺省情況下,在TDBImage部件中是允許用戶對位圖圖像進行編輯的,如將圖像剪切或拷貝到剪帖板上或從剪帖板上粘帖到TDBImage部件中等操作,同時也可以在程序中調用CutToClipboard、CopyToClipboard和PasteFromClipboard方法來實現剪切、拷貝、粘帖操作,當然要進行上述操作必須確保TDBImage的ReadOnly屬性值為False。
TDBImage部件也具有一個AutoDisplay屬性,該屬性的控制和作用與TDBMemo 部件的AutoDisplay屬性是一樣的。
16.8 數據浏覽部件中的列表框和組合框
在數據浏覽部件中有四個部件類似於標准部件中的列表框和組合框,這些列表框和組合框主要是在數據庫應用程序中為用戶提供一系列的可選擇的字段值。注意這些部件只能與TTable部件配合使用,而不能與TQuery部件配合使用。
表16.9 數據浏覽部件中的列表框和組合框
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
部 件 名 用 途
──────────────────────────────────
TDBlistBox 在用戶修改當前記錄中指定的字段值時,可用該部件顯示
一個字段值列表供用戶選擇
TDBComboBox 把一個TDBEdit部件與一個可選的字段值列表結合在一起,
當用戶修改當前記錄中的字段時,可以直接從部件中輸入
新的字段,也可以打開下拉式列表框選擇其中的一個可選項。
TDBLookapList 當用戶要編輯修改數據庫表當前記錄的指定字段時,使用
該部件提供多個可選項,這多個可選項是從相關的其它數
據庫表中讀取的,且以列表框的形式提供給用戶
TDBLookupCombo 該部件結合了TDBEdit部件和TDBComboBOx部件的功能,用
戶可以直接向該部件中輸入字段值,也可以從下拉式列表
框中選擇一個可選項,只是下拉式列表框中的可選項是從
相關的其他數據庫表中讀取來的。