TShellListView拉撒路

时间:2018-07-23 07:51:17

标签: lazarus freepascal

是否可以将ShellListView中的项目设置为visible=false?我曾想过类似ShelLlistView.Items.visible(false)之类的东西,但是那还不存在,我也不知道有其他解决方案,因此希望有人可以帮助我。

我还不能为您发布任何代码,因为我还没有任何ShellListView,但是我希望您能给我一些建议,说明它如何工作。

1 个答案:

答案 0 :(得分:1)

Afaik,这是不可能的,因为TShellListView中显示的ListItem没有Visible属性。但是,根据彼得·贝夫特(TeamB)所说,您可以通过销毁物品来有效地“隐藏”物品。参见http://www.delphigroups.info/2/67/290279.html

当然,如果您希望“取消隐藏”以这种方式隐藏的项目,则需要使用相同的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;