Einzelnen Beitrag anzeigen

Apollo13

Registriert seit: 3. Sep 2004
Ort: Pirna
36 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: Virtual String Tree aus Oracle erstellen

  Alt 6. Okt 2004, 11:55
hier ist alles wichtig was ich in dem tree habe:

speedbutton löst die procedure aus...

Delphi-Quellcode:
procedure TForm1.LMDDockSpeedButton1Click(Sender: TObject);
begin
  LoadData;
end;

Delphi-Quellcode:
procedure tform1.LoadData;
begin
if not ADOQuery1.Active then
       ADOQuery1.Open;
ADOQuery1.filtered := false;
ADOQuery1.filter := '';
vtree.BeginUpdate;
vtree.Clear;
vtree.NodeDataSize := Sizeof(TMyRec);
ADOQuery1.First;
vtree.RootNodeCount := ADOQuery1.recordcount;
vtree.SortTree(0,sdAscending,true);
vtree.EndUpdate;
end;

Delphi-Quellcode:
procedure TForm1.VtreeInitNode(Sender: TBaseVirtualTree; ParentNode,
  Node: PVirtualNode; var InitialStates: TVirtualNodeInitStates);
var
  Data: PMyRec;
  treedata: PMyRec;
  nodeweg: PVirtualNode;
  i: integer;
begin
  with Sender do
  begin
    Data := GetNodeData(Node);
    Initialize(Data^);
    Data.Caption := adoquery1.FieldByName('BEZEICHNUNG').AsString;
    Data.ID := adoquery1.FieldByName('ID').AsInteger;
    Data.GruppeID := adoquery1.FieldByName('GRUPPEID').AsInteger;
    if Data.GruppeID = 1 then [b]//<- Problem, alle mit GruppeID = 1 sollen in extra childnode stehen[/b]
    begin
      i:=i+1;
      nodeweg := vtree.AddChild(vtree.getfirstchild(vtree.rootnode));
      vtree.GetFirstChild(vtree.rootnode).ChildCount := i; [b]//<- erstellt auch entsprechend viele nodes, nur eben mitdem faslchen daten...???[/b]
    end;
    if not adoquery1.eof then
    adoquery1.Next;

  end;
end;
Delphi-Quellcode:
procedure TForm1.VtreeGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
  Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString);
var
  Data: PMyRec;
  i: integer;
begin
  Data := Sender.GetNodeData(Node);
  if Column = 0 then
    CellText := Data.Caption
  else if Column = 1 then
    CellText := inttostr(Data.ID)
  else if Column = 2 then
    CellText := inttostr(Data.GruppeID)
  else CellText := '';
  end;
so, das ist der code. hat irgendjemand einen tip(p) für mich, wie ich am einfachsten childnodes in den vst einfügen kann...?!?!?! kann auch eine andere art lösung sein als in diesem code hier...

help me....
Es muss etwas getan werden! Aber nicht jetzt...
  Mit Zitat antworten Zitat