Hi,
ich bin mir jetzt nicht sicher ob ich die Frage richtig verstanden habe, aber wenn es darum geht andere Controls wie z.b. eine Progressbar im VST anzuzeigen für jede Node dann wird das ungefähr so gemacht:
Delphi-Quellcode:
type
TNodeData = record
Bar : TProgressBar;
Caption : String;
//das mit dem Record hab ich mir so angewöhnt :)
end;
PNodeData = ^TNodeData;
procedure Tform_Main.btn_AddItemClick(Sender: TObject);
var
Node : PVirtualNode;
NData : PNodeData;
begin
Tv.BeginUpdate;
Node:=Tv.AddChild(tv.RootNode);
NData:=Tv.GetNodeData(Node);
NData.Caption:=TimeToStr(Now);
NData.Bar:=TProgressBar.Create(TV);
NData.Bar.Parent:=Tv;
Ndata.Bar.Position:=Random(Ndata.Bar.Max);
Tv.EndUpdate;
end;
procedure Tform_Main.TVAfterCellPaint(Sender: TBaseVirtualTree;
TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
CellRect: TRect);
var
NData : PNodeData;
begin
if Column=1 then
begin
NData:=Tv.GetNodeData(Node);
if Assigned(NData) then
begin
CellRect:=Tv.GetDisplayRect(Node,Column,false);
NData.Bar.Left:=CellRect.Left;
Ndata.Bar.Top:=CellRect.Top;
NData.Bar.Width:=CellRect.Right-CellRect.Left;
NData.Bar.Height:=CellRect.Bottom-CellRect.Top;
//Ndata.Bar.PaintTo(TargetCanvas,CellRect.Left,CellRect.Top);
end;
end;
end;
procedure Tform_Main.TVGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString);
var
NData : PNodeData;
begin
NData:=Tv.GetNodeData(Node);
CellText:=NData.Caption;
end;
Viele Grüsse
s!