unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, VirtualTrees, StdCtrls, ImgList;
type
POmeinedaten=^TOmeinedaten;
TOmeinedaten=class
private
published
public
Bezeichnung:
string;
Feld:
array[1..6]
of string;
Fobject:tobject;
end;
TForm1 =
class(TForm)
Button1: TButton;
VST: TVirtualStringTree;
ImageList1: TImageList;
procedure Button1Click(Sender: TObject);
procedure VSTGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
Column: TColumnIndex; TextType: TVSTTextType;
var CellText: WideString);
procedure FormCreate(Sender: TObject);
private
function add_entry(node:PVirtualNode;bez,f1,f2,f3,f4,f5,f6:
string):PVirtualNode;
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function TForm1.add_entry(node:PVirtualNode;bez,f1,f2,f3,f4,f5,f6:
string):PVirtualNode;
var daten:TOmeinedaten;
begin
daten:=TOmeinedaten.Create;
If node<>
nil then
Begin
daten:=vst.GetNodeData(node);
End;
daten.Bezeichnung:=bez;
daten.Feld[1]:=f1;
daten.Feld[2]:=f2;
daten.Feld[3]:=f3;
daten.Feld[4]:=f4;
daten.Feld[5]:=f5;
daten.Feld[6]:=f6;
result:=vst.addchild(node,daten);
end;
procedure TForm1.Button1Click(Sender: TObject);
var I:Integer;
aNode:PVirtualNode;
begin
anode:=add_entry(
nil,'
Telegramm aktiv Ein','
s','
s','
s','
s','
s','
s');
add_entry(anode,'
Telegramm aktiv Ein passiv','
a','
a','
a','
a','
a','
a');
// node:=add_entry(nil,'Telegramm aktiv Aus','','','','','','');
// node:=add_entry(nil,'Telegramm aktiv Aus passiv','','','','','','');
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
vst.nodedatasize:=sizeof(TOmeinedaten);
end;
procedure TForm1.VSTGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
Column: TColumnIndex; TextType: TVSTTextType;
var CellText: WideString);
var
data : TOmeinedaten;t0:integer;
begin
data:=TOmeinedaten(VST.getnodedata(node)^);
case Column
of
0: celltext:=Data.Bezeichnung;
1: celltext:=Data.Feld[1];
2: celltext:=Data.Feld[2];
3: celltext:=Data.Feld[3];
4: celltext:=Data.Feld[4];
5: celltext:=Data.Feld[5];
6: celltext:=Data.Feld[6];
end;
end;
end.