Einzelnen Beitrag anzeigen

Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#1

Problem mit Pointer beim VirtualStringTree

  Alt 4. Dez 2009, 10:37
Hallo zusammen,

ich habe ein Problem mit einem VST. Ich möchte Daten aus einer Datenbank in folgendem Aufbau anzeigen.

Code:
-Kunde
  -Zentrale
    -Port
    -IP
Jetzt habe ich das über folgende Weg versucht, bekomme allerdings eine Fehlermeldung beim beenden von meinem Programm, das der Zeiger ungültig ist. Der Fehler muss irgendwo bei FreeNode auftreten.

Hier mal der Code...

Delphi-Quellcode:
  //Einfügen der Daten

  DM_PS.ConPSConfig.Connect;
  DM_PS.Qry_VSTSystemCreate.Open;

  DataSys := TOSYSTEM.Create;
  VSTSystem.BeginUpdate;
  with DataSys do
  begin
  DataSys.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;
  DataSys.COM := 'COM 1, 9600,8,1';
  DataSys.IP := '192.168.100.101';
  end;

  pNode := VSTSystem.AddChild(nil,DataSys);
  pNode := VSTSystem.AddChild(pNode,DataSys);
  pNode := VSTSystem.AddChild(pNode,DataSys);
  VSTSystem.AddChild(pNode,DataSys);

  VSTSystem.EndUpdate;
  VSTSystem.Refresh;

//FreeNode
var
  DataSys : TOSYSTEM;
begin
  DataSys := TOSYSTEM(VSTSystem.GetNodeData(Node)^);
  DataSys.Free;


Danke schon mal

und Gruß

Jens
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat