TVirtualStringTree 显示不正确的数据,即在每个单元格中显示 "node"。如何显示正确的数据?

TVirtualStringTree is displaying incorrect data i.e displaying "node" in each cell. How to display correct data?

我遵循了在 TVirtualStringTree 上显示数据的常规做法。但它在每个单元格中只显示字符串“节点”。有人能告诉我这里缺少什么吗? 提前致谢。

我的代码:

type
  TRecFileDirectory = record
    FileDirectory: WideString;
    FileDirectoryLock: wordbool;
  end;

  TPRecFileDirectory = ^TRecFileDirectory;

implementation

procedure TForm2.btn4Click(Sender: TObject);
var
  I: Integer;
  NewNode: PVirtualNode;
  ptrFileDir: TPRecFileDirectory;
begin
  vsTree1.BeginUpdate;
  for I := 0 to Length(arrFileDirectory)-1 do
  begin
    NewNode := vsTree1.AddChild(nil);
    ptrFileDir := vsTree1.GetNodeData(NewNode);
    ptrFileDir^.FileDirectory := arrFileDirectory[I].FileDirectory;
    ptrFileDir^.FileDirectoryLock := arrFileDirectory[I].FileDirectoryLock;
  end;
  vsTree1.EndUpdate;
  btn4.caption := btn4.caption+' DONE';
end;

设置DefaultText 属性为空字符串,例如在代码或 Inspector 中

您需要为 OnGetText 事件实现一个事件处理程序,它根据提供的列和节点从您的数据中提取要显示的字符串。例如:

procedure TForm1.VSTGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; var CellText: string);
var
  MyData: TPRecFileDirectory;
begin
  MyData := Node.GetData();
  if Column = 0 then
    CellText := MyData.FileDirectory; 
end;