【发布时间】:2018-12-30 14:53:24
【问题描述】:
是否可以将 ShellListView 中的项目设置为visible=false?我想过像ShelLlistView.Items.visible(false) 这样的东西,但它不存在,我不知道其他解决方案,所以我希望有人能帮我解决这个问题。
我还不能为你发布任何代码,因为我还没有任何 ShellListView,但我希望你能给我一些建议,它是如何工作的。
【问题讨论】:
标签: lazarus freepascal
是否可以将 ShellListView 中的项目设置为visible=false?我想过像ShelLlistView.Items.visible(false) 这样的东西,但它不存在,我不知道其他解决方案,所以我希望有人能帮我解决这个问题。
我还不能为你发布任何代码,因为我还没有任何 ShellListView,但我希望你能给我一些建议,它是如何工作的。
【问题讨论】:
标签: lazarus freepascal
Afaik,这是不可能的,因为 TShellListView 中显示的 ListItems 没有 Visible 属性。但是,根据 PeterBelow (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;
【讨论】: