Einzelnen Beitrag anzeigen

Benutzerbild von fruity
fruity

Registriert seit: 2. Apr 2005
Ort: Bregenz
24 Beiträge
 
#27

Re: Ausgeben von einer Datenbank mit TTreeView

  Alt 9. Aug 2005, 09:04
Morgen,

ich versuche gerade eine Tabelle die ich in einer SQL DB habe in einem TreeView auszugeben. Dazu habe ich mir schon den
Thread angeschaut und so ziemlich alles davon verwenden koennen.

Ich bekomm auch keine Fehlermeldung, aber es wird keine Ausgabe im TreeView erstellt.

Waere euch sehr dankbar wenn ihr mir einen kleinen Denkanstoss geben wuerdet. Ich vermute dass das Problem in der For Schleife liegt, nur leider weiss ich nicht genau wo.

Danke im voraus.

Delphi-Quellcode:
unit Hauptformular;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, ComCtrls, Menus, OleCtrls, SHDocVw, DB;

type
  TFmHaupt = class(TForm)
    MainMenu1: TMainMenu;
    Datei1: TMenuItem;
    TreeView1: TTreeView;
    Splitter1: TSplitter;
    Panel1: TPanel;
    WebBrowser1: TWebBrowser;
    Panel2: TPanel;
    DSTreeView: TDataSource;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure FormDestroy(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

type
  TTView = Record
    ID : Integer;
    ParentID : Integer;
end;

  PView = ^TTView;

var
  FmHaupt: TFmHaupt;

implementation

uses HauptformularDM;

{$R *.dfm}
//-08-Aug-2005--------------------------------------------------------------------------------------
// Form Create
procedure TFmHaupt.FormCreate(Sender: TObject);

  procedure MoveToParentNode(TheNode: TTreeNode);
    var x : Integer;
    begin
      for x := 0 to TreeView1.Items.Count-1 do begin
        if Assigned(TreeView1.Items[x].Data) then begin
          if PView(TreeView1.Items[x].Data).ID = PView(TheNode.Data).ParentID then begin
            TheNode.MoveTo(TreeView1.Items[x], naAddChild);
            Break;
          end;
        end;
      end;
    end;

var Root,AktNode : TTreeNode;
  i : Integer;
begin
  DMHaupt.QHauptTreeView.First;
  Root := TTreeNode.Create(TreeView1.Items);
  Root.Text := 'Test';
  Root.Data := nil;
  while not DMHaupt.QHauptTreeView.EOF do begin
    AktNode := TTreeNode.Create(TreeView1.Items);
    AktNode.Data := new(PView);
    PView(AktNode.Data).ID := DMHaupt.QHauptTreeView.FieldByName('ID').AsInteger;
    PView(AktNode.Data).ParentID := DMHaupt.QHauptTreeView.FieldByName('ParentID').AsInteger;
    DMHaupt.QHauptTreeView.Next;
  end;
  for i := 0 to TreeView1.Items.Count-1 do begin
    if Assigned(TreeView1.Items[i].Data) then begin
      if PView(TreeView1.Items[i].Data).ParentID <> 0 then MoveToParentNode(TreeView1.Items[i]);
    end;
  end;
end;
Rechtßreibvehler sind geistiegeß Eigentumm dess Autorren !!!
  Mit Zitat antworten Zitat