Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Ausgeben von einer Datenbank mit TTreeView (https://www.delphipraxis.net/28782-ausgeben-von-einer-datenbank-mit-ttreeview.html)

ZeroQool007 30. Aug 2004 14:34

Re: Ausgeben von einer Datenbank mit TTreeView
 
Hab es nun nach deiner Reihenfolge gemacht:
Code:
[Fehler] Unit1.pas(58): Undefinierter Bezeichner: 'TheView'
[Fehler] Unit1.pas(58): 'END' erwartet, aber ')' gefunden
[Fehler] Unit1.pas(61): ';' erwartet, aber 'WHILE' gefunden
[Fehler] Unit1.pas(62): Undefinierter Bezeichner: 'AktNode'
[Fehler] Unit1.pas(62): Undefinierter Bezeichner: 'TreeView1'
[Fehler] Unit1.pas(62): 'END' erwartet, aber ')' gefunden
[Fehler] Unit1.pas(67): '.' erwartet, aber ';' gefunden
[Fehler] Unit1.pas(68): Bezeichner redefiniert: 'Finalization'
[Fehler] Unit1.pas(69): ')' erwartet, aber Bezeichner 'Items' gefunden
[Fehler] Unit1.pas(70): ')' erwartet, aber Bezeichner 'Items' gefunden
[Fehler] Unit1.pas(77): Anweisung erwartet, aber Dateiende gefunden
[Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden
:(

Leuselator 30. Aug 2004 14:37

Re: Ausgeben von einer Datenbank mit TTreeView
 
1. ersetze in Zeile 58 TheView (gibt es nicht mehr) durch TreeView1
2. Schreib erstmal ein paar kleine Programme, damit Du den Umgang mit Delphi und IDE erlernst, bevor Du Dir hier Hausaufgaben machen lässt.
Ende meiner Posts zu diesem Thread

ZeroQool007 30. Aug 2004 14:47

Re: Ausgeben von einer Datenbank mit TTreeView
 
Naja schade, dass du direkt so gereizt bsit! Sagte doch bin Azubi im 1.Jahr (gerade 1 Monat erst rum) und mit allen Komponenten ect. nicht so viel Erfahrung wie du zb!

:( Trotzdem thx für deine Hilfe! Weiss ich zu schätzen und sorry für die Unannehmlichkeiten!

Delphi_Fanatic 30. Aug 2004 15:01

Re: Ausgeben von einer Datenbank mit TTreeView
 
Siehst Du, ZeroCool, jetzt geht's Dir hier auch nicht anders, als unter Delphi-Groups.
Da hat auf Dauer nämlich niemand Bock drauf, für Dich das denken zu übernehmen und Dir am besten
gleich komplett fertige Sourcen zu liefern, während Du selbst Dich überhaupt gar nicht anstrengst. :wink:

ZeroQool007 30. Aug 2004 15:14

Re: Ausgeben von einer Datenbank mit TTreeView
 
Naja, das hat damit nichts zu tun! Das wäre das Gleiche als würde ich dir nen chinesischen Text hinlegen u du sollst übersetzen! Ohne Vorkenntnisse bzw wenn dir keiner hilft kannst du fast nichts machen! Ich hab halt bei der Umsetzung Probleme, obwohl ich weiss was zu machen ist sprich nach dem Struktogramm vorzugehen!

Delphi_Fanatic 30. Aug 2004 15:23

Re: Ausgeben von einer Datenbank mit TTreeView
 
Zitat:

Ohne Vorkenntnisse bzw wenn dir keiner hilft kannst du fast nichts machen!
Gerade die Vorkenntnisse sollst Du Dir ja selber aneignen.
Dokus lesen, Ausprobieren, fang' erstmal mit kleinen Sachen an, schau's Dir im Debugger an, was
genau er da macht usw....

Wenn Du es Dir jetzt nicht selbst erarbeitest, dann stehst Du bei dem nächsten Problem wieder
hier und willst Dir von jemandem alles vorkauen lassen. So lernst Du's nie....

P.S. aber hey.. was red' ich ... ist ja Deine Sache ...

fruity 9. Aug 2005 09:04

Re: Ausgeben von einer Datenbank mit TTreeView
 
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;

fruity 9. Aug 2005 09:34

Re: Ausgeben von einer Datenbank mit TTreeView
 
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]

Jelly 9. Aug 2005 09:53

Re: Ausgeben von einer Datenbank mit TTreeView
 
Du musst die Prozedur natürlich auch aufrufen :roll:

Ausserdem, warum übergibts du der Prozedur einen Parameter TheView, wenn du intern trotzdem auf TreeView1 zugreifst.

fruity 9. Aug 2005 09:58

Re: Ausgeben von einer Datenbank mit TTreeView
 
Die Prozedur rufe ich ja im FormCreate auf, also kann das auch nicht das Problem sein.

Soviel ich weiss ist doch TheView und TreeView vom gleichen Typ, nicht??


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:41 Uhr.
Seite 3 von 4     123 4      

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