const
nTitleNum = 3;
STitles: array [0..nTitleNum] of string = ('Caption', 'SubItem1', 'SubItem2', 'SubItem3');{Delete Selected Item}
procedure TForm1.Button2Click(Sender: TObject);
var
I: Integer;
begin
I := ListView1.Items.IndexOf(ListView1.Selected);
if I <> -1 then ListView1.Items.Delete(I);
end;
{Add Item}
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
begin
with ListView1.Items.Add do
begin
Caption := 'Caption';
for I := 1 to nTitleNum do
SubItems.Add(STitles[I]);
end;
end;{Add Columns}
procedure TForm1.FormCreate(Sender: TObject);
var
I: Integer;
begin
ListView1.ViewStyle := vsReport;
ListView1.RowSelect := True;
ListView1.Columns.Clear;
for I := 0 to nTitleNum do
with ListView1.Columns.Add do
begin
Alignment := taCenter;
Caption := STitles[I];
AutoSize := True;
end;
end;
nTitleNum = 3;
STitles: array [0..nTitleNum] of string = ('Caption', 'SubItem1', 'SubItem2', 'SubItem3');{Delete Selected Item}
procedure TForm1.Button2Click(Sender: TObject);
var
I: Integer;
begin
I := ListView1.Items.IndexOf(ListView1.Selected);
if I <> -1 then ListView1.Items.Delete(I);
end;
{Add Item}
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
begin
with ListView1.Items.Add do
begin
Caption := 'Caption';
for I := 1 to nTitleNum do
SubItems.Add(STitles[I]);
end;
end;{Add Columns}
procedure TForm1.FormCreate(Sender: TObject);
var
I: Integer;
begin
ListView1.ViewStyle := vsReport;
ListView1.RowSelect := True;
ListView1.Columns.Clear;
for I := 0 to nTitleNum do
with ListView1.Columns.Add do
begin
Alignment := taCenter;
Caption := STitles[I];
AutoSize := True;
end;
end;
var
Button: TButton;
Item: TListItem;
begin
Button := TButton.Create(Self);
with Button do
begin
//button all property (Rect, parent);
end;
Item := listview1.Items.Add;
Item.Caption := Button.Caption;
Item.SubItem.Add('Other Info....');
Item.Data := Pointer(Button); //增加的Item.Data指向当前的生成Button
end;
//使用时用 TButton(ListView1.Selected.Data)即可。
//删除简单了。 先将TButton(ListView1.Selected.Data).Free;然后删除这个Item即可。