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;
我遵循了在 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;