创建Button时与相应ListItem的Data相关联:
listitem.Data:=Button;
Button的onclick可以这么写:
procedure TForm1.ButtonClick(Sender: TObject);
var
i:integer;
begin
for i:=0 to listview.Items.Count-1do
begin
if Listview1.Items.Data=TButton(sender) then
begin
listview1.Items.Selected:=true;
showmessage(listview1.Items.Caption);
exit;
end;
end;
end;
记得要设TListview的hideselection:=false;
处理方法是一样的,首先要new一个fpitemCtrl。
new(fpItemCtrl);
fpItemCtrl^.button:=Button;
fpItemCtrl^.CheckBox:=CheckBox;
listitem:=listview1.Items.Add;
listitem.Data:=fpItemCtrl;
Button的onclick这么写:
procedure TForm1.Button3Click(Sender: TObject);
var
i:integer;
begin
for i:=0 to listview1.Items.Count-1do
begin
if pItemCtrl(Listview1.Items.Data)^.button=TButton(sender) then
begin
listview1.Items.Selected:=true;
showmessage(listview1.Items.Caption);
exit;
end;
end;
end;
设TListview的hideselection:=false;是为了能显示选中的状态。