首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 資料感知元件進階:TDBGrid 事件控制、TDBNavigator 按鈕客製化、TDBMemo/TDBImage BLOB 處理與 Lookup 元件

     編輯:Delphi

16.4.2 TDBGrid 關鍵事件:精細控制格列互動

事件觸發時機典型用途
OnColEnter/OnColExit進入/離開格列特定欄位進入時顯示下拉選單、驗證
OnDblClick雙擊滑鼠左鍵彈出選單讓使用者挑選值(如國家代碼)
OnDrawDataCell繪製每個儲存格自訂繪圖、條件格式(DefaultDrawing=False 時必寫)
OnKeyDown/Press/Up鍵盤動作攔截熱鍵、限制輸入字元
OnDragDrop/Over/EndDrag拖曳操作欄位重新排序、拖放外部資料

OnDblClick 實戰:Country 欄位雙擊挑選國家

  1. Fields Editor 設定 Visible 只顯示 CustNo、Company、Country、City
  2. ListBox1.Items 加入「中國、美國、日本、英國、法國、俄羅斯」,Visible := False
  3. DBGrid1.OnDblClick:若滑鼠在 Country 欄 → ListBox1.Popup → 使用者選擇後寫回欄位

16.5 TDBNavigator 完整按鈕與屬性客製化

按鈕功能
First / Prior / Next / Last記錄指標首/前/後/尾
Insert當前記錄前插入、進 dsInsert
Delete刪除當前記錄、ConfirmDelete=True 彈確認
Edit進 dsEdit 修改
Post投遞修改/新增
Cancel取消修改、回 dsBrowse
Refresh清除顯示緩衝、重讀資料集重繪

客製化屬性

  • VisibleButtons:布林陣列,逐鍵決定顯示/隱藏(唯讀模式僅保留導航四鍵)
  • ShowHint := True:滑鼠停 1 秒顯示內建提示
  • Hints:字串清單覆寫各鍵提示文字
  • ConfirmDelete:False 關閉刪除確認框

16.6 TDBMemo:BLOB 文字欄位編輯器

  • 多行文字、支援 ReadOnly/MaxLength/ScrollBars/WordWrap/Alignment
  • 執行期無法直接剪貼簿操作,需呼叫 CutToClipboard/CopyToClipboard/PasteFromClipboard
  • AutoDisplay:False 只顯示欄位名,雙擊才載入內容(大量文字效能優化)
  • 限制:最大 32KB 文字

16.7 TDBImage:BLOB 位圖影像元件

  • 屬性與 TDBMemo 類似,支援剪貼簿方法與 AutoDisplay
  • ReadOnly=False 時可編輯影像

16.8~16.10 資料感知清單/組合框四大元件

元件資料來源互動模式適用場景
TDBListBox設計期 Items 靜態清單單選、不可輸入固定代碼表(如狀態碼)
TDBComboBox設計期 Items 靜態清單可輸入、可下拉選半固定選單(可輸入新值)
TDBLookupListBox其他資料表 動態查詢單選、不可輸入外鍵查找(如客戶代碼帶出名稱)
TDBLookupComboBox其他資料表 動態查詢可輸入、可下拉選外鍵查找+手動輸入彈性

限制:Lookup 系列僅支援 TTable,不支援 TQuery。

TDBComboBox 風格控制

  • csDropDown(預設):編輯框+下拉框、可輸入新值
  • csSimple:固定顯示清單框
  • csDropDownList:下拉框+編輯框、禁止輸入清單外值
  • csOwnerDrawFixed/Variable:自繪項目(含圖片)

DropDownCount 限制下拉顯示筆數、ItemHeight 控制自繪高度、Sorted 自動字母排序。

TDBListBox 整體高度控制

IntegralHeight=True(預設):底部項目自動對齊上次選取項;False:依 ItemHeight 固定高度,底部可能不完整顯示。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved