Einzelnen Beitrag anzeigen

Benutzerbild von Jens Hartmann
Jens Hartmann

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

Re: Problem mit Pointer beim VirtualStringTree

  Alt 5. Dez 2009, 23:55
Schönen guten Abend nochmal zusammen,

Ich bin jetzt ein Stück weiter, allerdings denke ich das es der falsche Weg ist, und außerdem ist auch noch eine Fehler drin.

Ich habe jetzt einfach mal so zum Test 4 GLOBALE Variablen angelegt, die ich beim CREATE initialisiere und in die GetText Methode einbinde.
Funktioniert auch jetzt genau so wie ich mir das vorstelle (siehe ScreenShot1), bis auf wenn ich eine Ebene über das - Zeichen Expandiere, kann ich diese Ebene nie wieder FullExpanded setzen(siehe Anhang 2).

Außerdem, gefällt mir das mit den GLOBALEN Var. nicht.

hier mal der aktuelle Code...
Delphi-Quellcode:
procedure TForm1.VSTSystemCreate;
var
  pNode :pVirtualNode;
begin
  DM_PS.ConPSConfig.Connect;
  DM_PS.Qry_VSTSystemCreate.Open;
  Objekt := DM_PS.Qry_VSTSystemCreate.FieldByName('KUNDE').AsString;
  case DM_PS.Qry_VSTSystemCreate.FieldByName('ZENTRALENTYP').AsInteger of
        0: Zentrale := 'NOVAR HB/MB 24';
        1: Zentrale := 'NOVAR HB/MB 48';
        2: Zentrale := 'NOVAR MB100';
        3: Zentrale := 'NOVAR MB256';
        4: Zentrale := 'BOSCH UEZ2000';
        5: Zentrale := 'NOVAR BMC 1024';
        6: Zentrale := 'ESSER IQ8 Control';
        7: Zentrale := 'SONSTIGE';
      end;
  COMPort := 'COM 1, 9600,8,1';
  IPPort := '192.168.100.101';
  DM_PS.Qry_VSTSystemCreate.Close;
  
  VSTSystem.BeginUpdate;
  pNode := VSTSystem.AddChild(nil);
  pNode := VSTSystem.AddChild(pNode);
  VSTSystem.AddChild(pNode);
  VSTSystem.AddChild(pNode);
  VSTSystem.EndUpdate;
end;

procedure TForm1.VSTSystemGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
  Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString);
var
  Level : Integer;
begin
Level := VSTSystem.GetNodeLevel(Node);
if Column = 0 then
  begin
    if Level = 0 then
      CellText := Objekt;
    if Level = 1 then
      CellText := Zentrale;
    if Level = 2 then
      begin
        if Node.Index = 0 then
          CellText := IPPort
        else
          CellText := COMPort
      end;
  end;
end;
Gruß Jens
Miniaturansicht angehängter Grafiken
vst2_155.gif   vst1_122.gif  
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat