AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Ausgeben von einer Datenbank mit TTreeView
Thema durchsuchen
Ansicht
Themen-Optionen

Ausgeben von einer Datenbank mit TTreeView

Offene Frage von "fruity"
Ein Thema von ZeroQool007 · begonnen am 30. Aug 2004 · letzter Beitrag vom 7. Apr 2006
 
Benutzerbild von fruity
fruity

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

Re: Ausgeben von einer Datenbank mit TTreeView

  Alt 9. Aug 2005, 09:34
So hab jetzt mal ein Problem festgestellt.
Ich war wiedermal zu unaufmerksam beim lesen und hab uebersehen,
dass das auffuellen des Trees in eine extra Procedure gehoert.

Trotzdem funktioniert die Ausgabe noch nicht.

Hier mal meinen neuen Code

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);
    procedure FillTreeView(TheView : TTreeView; TheData : TDataSet);
  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);
begin
  FillTreeView(TreeView1, DMHaupt.QHauptTreeView);
end;
//-08-Aug-2005--------------------------------------------------------------------------------------
//
procedure TFmHaupt.FormClose(Sender: TObject; var Action: TCloseAction);
begin
//
end;
//-08-Aug-2005--------------------------------------------------------------------------------------
//
procedure TFmHaupt.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
//
end;
//-08-Aug-2005--------------------------------------------------------------------------------------
//
procedure TFmHaupt.FormDestroy(Sender: TObject);
begin
//
end;
//-09-Aug-2005--------------------------------------------------------------------------------------
//
procedure TFmHaupt.FillTreeView(TheView: TTreeView; TheData: TDataSet);

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;
end.
[Edit] Wenn ich das Programm in einzelnen Schritten durchgehe, dann durchlaeuft es zwar die Procedure VillTree, aber die for schleife wird nicht durchgelaufen, da der TreeView1.Items.Count 0 ist. Was mach ich nur falsch? [/Edit]
Rechtßreibvehler sind geistiegeß Eigentumm dess Autorren !!!
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz