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

Delphi 字串列表核心技術:物件關聯與自繪控制項基礎

     編輯:Delphi

字串列表的 Objects 屬性

TStrings 除 Strings 存放文字外,Objects 陣列可攜帶任意物件(索引對應)。大多數操作(AddObject、InsertObject、IndexOfObject)與字串對應。Delete/Clear 會同步移除物件,但 LoadFromFile/SaveToFile 僅處理字串。

關聯物件的兩種方式

// 方式一:對現有字串指派物件
with Fruits do Objects[IndexOf('apple')] := AppleBitmap;

// 方式二:同步加入字串與物件
Fruits.AddObject('Apple', AppleBitmap);

常見用途:自繪控制項綁定位圖,實現圖文並茂列表。

自繪控制項三步驟建立流程

  1. 設定 Style:ListBox/ComboBox 使用 lbOwnerDrawFixed/Variable、csOwnerDrawFixed/Variable;TabSet 使用 tsOwnerDrawVariable。
  2. 加入圖像物件:於 FormCreate 動態建立 TBitmap、載入檔案、呼叫 AddObject。
  3. 處理繪製事件:實作 OnMeasureItem/OnDrawItem(或 Tab 對應事件)。

完整範例:字體列表與圖示 TabSet

procedure TForm1.FormCreate(Sender: TObject);
var Bitmap: TBitmap;
begin
  ListBox1.Items := Screen.Fonts; // 取得系統字體列表
  ListBox1.Style := lbOwnerDrawVariable;

  Bitmap := TBitmap.Create;
  Bitmap.LoadFromFile('PHONE.BMP');
  TabSet1.Tabs.AddObject('phone', Bitmap);
  // ... 更多圖示 ...
end;

ListBox 顯示字體名稱並以該字體渲染;TabSet 標籤顯示圖示+文字。詳見下一節事件實作細節。

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