5,388
社区成员
发帖
与我相关
我的任务
分享
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, VirtualTrees;
type
TForm1 = class(TForm)
VirtualStringTree1: TVirtualStringTree;
procedure VirtualStringTree1GetText(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
var CellText: WideString);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
//定义VirtualStringTree结构
type
PVSTNodeData = ^TVSTNode;
TVSTNode = record
Name: string;
//可以继续扩展
end;
implementation
{$R *.dfm}
procedure TForm1.VirtualStringTree1GetText(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
var CellText: WideString);
var
VSTNode: PVSTNodeData;
begin
//將Node资料读出
VSTNode := Sender.GetNodeData(Node);
//设定Cell的值
CellText := VSTNode.Name;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
Data:PVSTNodeData;
RootNode:PVirtualNode;
begin
//清除所有Node
VirtualStringTree1.Clear;
//指定VitrualStringTree有幾個Node
//VirtualStringTree1.RootNodeCount := 2;
//將所定義的結構大小指定給VitualStringTree
VirtualStringTree1.NodeDataSize := SizeOf(TVSTNode);
//添加节点
RootNode:= VirtualStringTree1.AddChild(nil);
Data:=VirtualStringTree1.GetNodeData(RootNode);
Data^.Name:='根结点';
RootNode:= VirtualStringTree1.AddChild(nil);
Data:=VirtualStringTree1.GetNodeData(RootNode);
Data^.Name:='根结点aaa';
end;
end.