首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >展开树视图时,添加的树项目不会显示

问展开树视图时,添加的树项目不会显示
EN

Stack Overflow用户
提问于 2015-06-23 23:16:33
回答 3查看 757关注 0票数 0

我有一个应用程序为iOS/安卓与德尔福XE8 FMX开发。

在应用程序中,我有一个带有树形项目的树形视图。当我在同一个父节点展开的情况下向节点添加树项目时,我需要a)从应用程序本身折叠和展开父节点,或者b)以编程方式(见下文)来立即显示树项目。我试着调用‘重新绘制’,但那不起作用。有没有更好的办法呢?有时,当像下面这样调用折叠所有、展开所有时,一些树节点会变得没有响应(不可选),直到我第一次选择最顶端的树节点。

代码语言:javascript
复制
procedure TnewForm.AddTreeItemClick(Sender: TObject);
var
  t:TTreeViewItem;
begin
  t:=TTreeViewItem.Create(nil);
  t.Text:=NewTreeItemEdit.Text;
  if TreeView.Selected<>nil then
  begin
    t.Parent:=TreeView.Selected
  end else
    t.Parent:=TreeView;
  //Treeview.Repaint;
  treeview.CollapseAll;
  treeview.ExpandAll;
  NewTreeItemEdit.Text:='';
end;

如何在不折叠/展开treeview的情况下立即显示动态添加的树形项目?

EN

回答 3

Stack Overflow用户

发布于 2015-06-24 21:32:11

你可以试试这个。

代码语言:javascript
复制
procedure TnewForm.AddTreeItemClick(Sender: TObject);
var
  t:TTreeViewItem;
begin
  t:=TTreeViewItem.Create(nil);
  t.Text:=NewTreeItemEdit.Text;
  if TreeView.Selected<>nil then
  begin
    t.Parent:=TreeView.Selected
  end else
    t.Parent:=TreeView;
  //Treeview.Repaint;
  treeview.Selected := t;
  NewTreeItemEdit.Text:='';
end;
票数 1
EN

Stack Overflow用户

发布于 2015-06-24 22:10:25

Dsm's solution可以工作,但会更改树视图的选择。如果您希望所选内容保持不变,而只是希望添加的项目立即可见,则展开其父项:

代码语言:javascript
复制
procedure TForm1.AddTreeItemClick(Sender: TObject);
var
  T :TTreeViewItem;
begin
  T := TTreeViewItem.Create(nil);
  T.Text := NewTreeItemEdit.Text;
  if TreeView.Selected <> nil then
  begin
    T.Parent := TreeView.Selected;
    TreeView.Selected.IsExpanded := True;
  end else
    T.Parent := TreeView;
  NewTreeItemEdit.Text := '';
end;
票数 1
EN

Stack Overflow用户

发布于 2015-10-20 03:48:27

Windows / XE8也有类似的问题。为我做到这一点的变通方法:

代码语言:javascript
复制
  if Assigned(TV.Selected) then
    begin
      N := TTreeviewItem.Create(Self);
      N.Text := 'Another child';
      N.Parent := TV.Selected;
      N.IsExpanded := TRUE; // This seems to do the trick
    end;

希望这将在下一个版本中得到关注。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31006791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档