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

Delphi ListView 核心操作完全指南:新增、讀取、刪除與資料綁定技巧

     編輯:Delphi

TListItems 集合基礎

ListView1.Items 為 TListItems,每個項目為 TListItem,包含 Caption(第一欄)與 SubItems(其餘欄)。

1. 新增資料(建議使用 with 結構)

with ListView1.Items.Add do
begin
  Caption := '標題文字';        // 第一欄
  SubItems.Add('子項目1');      // 第二欄
  SubItems.Add('子項目2');      // 第三欄
  SubItems.Add('子項目3');      // 第四欄
  // 可同步設定 ImageIndex, StateIndex, Data 指標等
end;

2. 讀取資料

// 單一欄位
var s: string;
s := ListView1.Items[i].Caption;                    // 第 i 行標題
s := ListView1.Items[i].SubItems.Strings[j];        // 第 i 行第 j+1 欄

// 整行導出
s := ListView1.Items[i].SubItems.CommaText;         // 含引號 CSV 格式:"標題","子1","子2"
s := ListView1.Items[i].SubItems.Text;              // 換行分隔:標題#13#10子1#13#10子2

// 選取狀態
if ListView1.Items[i].Selected then ...             // 是否被選中(受 MultiSelect 影響)

3. 刪除與清空

ListView1.Items[i].Delete;        // 刪除單行
ListView1.Items.Clear;            // 清空所有

4. 計數與屬性

i := ListView1.Items.Count;       // 總行數
// 可對單項設定 Checked, Focused, Selected, Cut 等布林屬性

5. 進階:Data 指標綁定物件(推薦)

避免使用平行陣列或 TStringList 維護業務資料,改用 TListItem.Data: Pointer 指向記錄結構:

type
  PMyRecord = ^TMyRecord;
  TMyRecord = record
    ID: Integer;
    Name: string;
    ExtraData: string;
  end;

var
  Rec: PMyRecord;
begin
  New(Rec);
  Rec^.ID := 123;
  Rec^.Name := 'Test';
  with ListView1.Items.Add do
  begin
    Caption := Rec^.Name;
    SubItems.Add(IntToStr(Rec^.ID));
    Data := Rec;                   // 綁定指標
  end;
end;

// 讀取
Rec := PMyRecord(ListView1.Selected.Data);
ShowMessage(Rec^.ExtraData);

// 釋放(在 Clear 或 FormDestroy 時)
for i := 0 to ListView1.Items.Count - 1 do
begin
  Dispose(PMyRecord(ListView1.Items[i].Data));
  ListView1.Items[i].Data := nil;
end;

6. 虛擬模式

大量資料(>10 萬筆)設定 OwnerData := True,於 OnData、OnDataFind、OnDataHint 事件即時提供資料,不佔用 Items 集合記憶體。

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