Мне нужно вставить несколько новых узлов в TVirtualStringTree.Я использую метод InsertNode с параметром UserData.Но дерево не может показать никаких данных.Как я могу получить данные пользователя по событию GetText / FreeNode?
TMyData = record
Name: string;
size: Integer;
end;
PMyData = ^TMyData;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.FormCreate(Sender: TObject);
begin
VirtualStringTree1.NodeDataSize := SizeOf(TMyData);
Randomize;
end;
procedure TForm2.Button1Click(Sender: TObject);
var
Data: PMyData;
Node: PVirtualNode;
begin
New(Data);
Data.Name := DateTimeToStr(now);
Data.size := Random(100);
Node := VirtualStringTree1.InsertNode(nil, amInsertAfter, Data);
end;
procedure TForm2.VirtualStringTree1FreeNode(Sender: TBaseVirtualTree; Node:
PVirtualNode);
var
Data: PMyData;
begin
Data := Sender.GetNodeData(Node);
Data.Name := '';
end;
procedure TForm2.VirtualStringTree1GetText(Sender: TBaseVirtualTree; Node:
PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; var CellText:
WideString);
var
Data: PMyData;
begin
Data := Sender.GetNodeData(Node);
case Column of
0: CellText := Data.Name;
1: CellText := IntToStr(Data.size);
end;
end;