![]() |
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 |
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 |
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! |
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: |
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!
|
Re: Ausgeben von einer Datenbank mit TTreeView
Zitat:
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 ... |
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; |
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:
[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]
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. |
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. |
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 21:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz