【问题标题】:Delphi Firemonkey Xe 8 TreeView Argument out of range on TreeViewItem.EndUpdateDelphi Firemonkey Xe 8 TreeView 参数超出 TreeViewItem.EndUpdate 的范围
【发布时间】:2015-07-19 11:25:23
【问题描述】:

我在表单上有一个 TreeView 和一个用于清除项目并在其中添加新项目的按钮
如果有足够的项目离开屏幕,因此您必须滚动查看所有项目,第二次单击按钮时,我会收到“参数超出范围”错误
如果表格足够大以容纳所有项目,它似乎很高兴
如果我取出 tv1.BeginUpdate 和 tv1.EndUpdate 它有时会起作用,但仍然会随机出现 Argument out of range 错误

procedure TfrmMain.btn1Click(Sender: TObject);
var i : Integer;
begin
  tv1.Clear;
  tv1.BeginUpdate;
  try
    for I := 0 to 10 do begin
      with TTreeViewItem.Create( tv1 ) do begin
        Parent := tv1;
        Text := inttostr(i);
      end;
    end;
  finally
    tv1.EndUpdate;
  end;
end;

这是一个示例项目
https://github.com/dangas56/Delphi-XE8-TreeNode-ArgumentOutOfRange-Error
记得点击两次基本填充按钮

编辑:如果有人可以建议另一个允许您展开和折叠子项的组件,请告诉我

【问题讨论】:

    标签: delphi treeview firemonkey treeviewitem delphi-xe8


    【解决方案1】:

    我尝试进行调查,您的代码似乎没问题。我认为问题来自 FMX.Controls 文件。我尝试编辑和修改它,但似乎需要更多调查。我建议向 embarcadero 声明一个错误。 (这取决于屏幕的大小,然后 EndUpdate 命令中会出现错误)

    【讨论】:

    【解决方案2】:

    我遇到了同样的问题。您需要将 tv1.Clear 放在 tv1.BeginUpdate 之后(即作为 Try...Finally 内的第一行)。

    【讨论】:

      猜你喜欢
      • 2014-12-02
      • 1970-01-01
      • 2013-07-22
      • 2014-01-25
      • 1970-01-01
      • 1970-01-01
      • 2022-01-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多