Kha*_*war 0 delphi treeview delphi-xe
我正在使用delphi xe
我想在运行时更改树视图节点的文本,该节点已在屏幕截图中圈出.

我正在使用下面的代码来更改它
TreeView1.Items[2].Item[6].Text:='Some Text';
Run Code Online (Sandbox Code Playgroud)
但是得到下面的错误
列表索引超出范围(6)
但是,如果我更改第一项的任何子项的文本,例如相同的代码
TreeView1.Items[0].Item[1].Text:='Some Text';
Run Code Online (Sandbox Code Playgroud)
分而治之. 您应确定错误发生的确切位置,执行步骤导致错误.
引入一些适当类型的临时变量,并将长问题行分成一系列简单的行.
而不是TreeView1.Items[2].Item[6].Text:='Some Text';做那样的事情:
var tmp_is: TTreeNodes;
var tmp_iN, tmp_iNN: TTreeNode;
tmp_is := TreeView1.Items;
ShowMessage(IntToStr(tmp_is.Count));
tmp_iN := tmp_is[2];
ShowMessage(tmp_iN.Text + ' : ' + IntToStr(tmp_iN.Count));
tmp_iNN := tmp_iN[6];
ShowMessage(tmp_iNN.Text);
tmp_iNN.Text := 'Some Text';
Run Code Online (Sandbox Code Playgroud)
然后跟踪它,看看哪一行给出了一个错误,以及该节点实际拥有多少元素以及您实际将要运行的元素.