TShellListView 拉撒路

TShellListView Lazarus

是否可以将 ShellListView 中的项目设置为 visible=false?我想过 ShelLlistView.Items.visible(false) 之类的东西,但那不存在,我不知道其他解决方案,所以我希望有人能帮我解决这个问题。

我还不能 post 任何代码给你,因为我还没有任何 ShellListView,但我希望你能给我一些建议,告诉我它是如何工作的。

Afaik,这是不可能的,因为 TShellListView 中显示的 ListItem 没有 Visible 属性。但是,根据 Peter Below(TeamB)的说法,您可以通过销毁它来有效地 "hide" 一个项目。参见 http://www.delphigroups.info/2/67/290279.html

当然,如果您希望 "unhide" 以这种方式隐藏一个项目,您需要创建并添加一个具有相同 Caption 的新节点,等等

使用标准 Lazarus TShellListView,此代码对我来说工作正常:

procedure TForm1.Button1Click(Sender: TObject);
var
  Item : TListItem;
begin
  Item := ShellListView1.Items[0];
  Caption := Item.Caption;
  Item.Free;
end;

并删除列表中的第一项。

以下删除了 ShellListView 中的所有项目。 downto 是为了说明 Count 值在循环的每次迭代中都会减少。

procedure TForm1.Button1Click(Sender: TObject);
var
  i : Integer;
begin
  for i := ShellListView1.Items.Count - 1 downto 0 do
    ShellListView1.Items[i].Free;
end;