红鱼儿

Delphi 11 ListView实现删除一行

实现下图的界面,用ListView显示一个数据集的内容:

 

 点Delete删除所在行,下面是实现的代码:

procedure TForm3.FormCreate(Sender: TObject);
var
  I: Integer;
begin
  //prepare dataset
  for I := 1 to 10 do
  begin
    clientdataset1.Append;
    clientdataset1.Fields[0].Value:=i;
    clientdataset1.Post;
  end;

  LinkFillControlToField1.Active:=False;
  LinkFillControlToField1.Active:=True;

end;

procedure TForm3.ListView1ItemClickEx(const Sender: TObject; ItemIndex: Integer;
  const LocalClickPos: TPointF; const ItemObject: TListItemDrawable);
begin
  if (ListView1.Selected<>nil) and //用户选择了一行
     (ItemObject is TListItemTextButton) and (SameText(TListItemTextButton(ItemObject).Text,'delete')) then //点击delete按钮
       Listview1.Items.Delete(ListView1.Selected.Index); //删除选择行
end;

注意:在ListView1ItemClickEx事件中,不要使用ItemIndex,这个值不准,取而代之,我们使用ListView1.Selected并且使用他的Index属性值。

 

posted on 2022-03-21 10:30  红鱼儿  阅读(693)  评论(0编辑  收藏  举报