//Die OBJEKTE
TOOBJEKT =
class
private
Objekt :
String;
ImageIndex : Integer;
end;
type TOSYSTEM =
class
private
Zentrale :
String;
ImageIndex : Integer;
end;
TODATASYS =
class
private
COM,
IP :
String;
ImageIndex : Integer;
end;
//im FormCreate
VSTSystem.NodeDataSize := SizeOf(TOSYSTEM);
//Aber ja Vermutlich nicht ganz richtig, da ich ja mehrere Objekte zur Zeit nutze.
VSTSystemCreate;
//Durch FormCreate aufgerufen
procedure TForm1.VSTSystemCreate;
var
DataObj : TOOBJEKT;
DataSys : TOSYSTEM;
Data : TODATASYS;
pNode :pVirtualNode;
// ein Pointer auf Knoten
i : integer;
begin
DM_PS.ConPSConfig.Connect;
DM_PS.Qry_VSTSystemCreate.Open;
DataObj := TOOBJEKT.Create;
DataSys := TOSYSTEM.Create;
Data := TODATASYS.Create;
VSTSystem.BeginUpdate;
DataObj.Objekt := DM_PS.Qry_VSTSystemCreate.FieldByName('
KUNDE').AsString;
case DM_PS.Qry_VSTSystemCreate.FieldByName('
ZENTRALENTYP').AsInteger
of
0: DataSys.Zentrale := '
NOVAR HB/MB 24';
1: DataSys.Zentrale := '
NOVAR HB/MB 48';
2: DataSys.Zentrale := '
NOVAR MB100';
3: DataSys.Zentrale := '
NOVAR MB256';
4: DataSys.Zentrale := '
BOSCH UEZ2000';
5: DataSys.Zentrale := '
NOVAR BMC 1024';
6: DataSys.Zentrale := '
ESSER IQ8 Control';
7: DataSys.Zentrale := '
SONSTIGE';
end;
Data.COM := '
COM 1, 9600,8,1';
Data.IP := '
192.168.100.101';
pNode := VSTSystem.AddChild(
nil,DataObj);
pNode := VSTSystem.AddChild(pNode,DataSys);
pNode := VSTSystem.AddChild(pNode,Data);
VSTSystem.EndUpdate;
VSTSystem.Refresh;
end;
//Ereignisse vom VST
procedure TForm1.VSTSystemFreeNode(Sender: TBaseVirtualTree;
Node: PVirtualNode);
var
DataObj : TOOBJEKT;
DataSys : TOSYSTEM;
Data : TODATASYS;
begin
DataObj := TOOBJEKT(VSTSystem.GetNodeData(Node)^);
DataObj.Free;
DataSys := TOSYSTEM(VSTSystem.GetNodeData(Node)^);
DataSys.Free;
Data := TODATASYS(VSTSystem.GetNodeData(Node)^);
Data.Free;
end;
procedure TForm1.VSTSystemGetImageIndex(Sender: TBaseVirtualTree;
Node: PVirtualNode; Kind: TVTImageKind; Column: TColumnIndex;
var Ghosted: Boolean;
var ImageIndex: Integer);
begin
case Sender.GetNodeLevel(Node)
of
0: ImageIndex := 0;
else ImageIndex := -1;
end;
end;
procedure TForm1.VSTSystemGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
Column: TColumnIndex; TextType: TVSTTextType;
var CellText: WideString);
var
pNode: PVirtualNode;
Level,
Index: Integer;
DataObj : TOOBJEKT;
DataSys : TOSYSTEM;
Data : TODATASYS;
begin
DataObj := TOOBJEKT(VSTSystem.GetNodeData(Node)^);
DataSys := TOSYSTEM(VSTSystem.GetNodeData(Node)^);
Data := TODATASYS(VSTSystem.GetNodeData(Node)^);
Level := VSTSystem.GetNodeLevel(Node);
case Level
of
0: Celltext := DataObj.Objekt;
1: Celltext := DataSys.Zentrale;
2: Celltext := Data.COM;
end;
end;