![]() |
Treeview zur Laufzeit auf einem Panel erzeugen
Morgen!
verkopf mich jetzt schon seit 3 Stunden damit. Wenn ich das Treeview direkt auf dem Formular erzeuge gehts - aber auf dem Panel nicht. Kann mir jemand helfen?
Delphi-Quellcode:
DAnke, Daniel
Unit Unit1;
Interface Uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, ExtCtrls; Type myPanel = Class(TPanel) PRIVATE FTreeView: TTreeView; PUBLIC Constructor Create(AOwner: TComponent); OVERRIDE; End; Type TForm1 = Class(TForm) Procedure FormCreate(Sender: TObject); PRIVATE FMyPanel: myPanel; PUBLIC End; Var Form1: TForm1; Implementation {$R *.dfm} Procedure TForm1.FormCreate(Sender: TObject); Begin FMyPanel := myPanel.Create(Self); End; { myPanel } Constructor myPanel.Create(AOwner: TComponent); Begin Inherited; FTreeView := TTreeView.Create(Self); FTreeView.Parent := Self; FTreeView.Align := alClient; FTreeView.Items.AddNode(Nil, Nil, 'test', Nil, naAdd); End; End. |
Re: Treeview zur Laufzeit auf einem Panel erzeugen
Delphi-Quellcode:
Constructor myPanel.Create(AOwner: TComponent);
Begin Inherited; FTreeView := TTreeView.Create(AOwner); //Hier ändern FTreeView.Parent := Self; FTreeView.Align := alClient; FTreeView.Items.AddNode(Nil, Nil, 'test', Nil, naAdd); End; |
Re: Treeview zur Laufzeit auf einem Panel erzeugen
klappt leider nicht - hab i au scho probiert
|
Re: Treeview zur Laufzeit auf einem Panel erzeugen
das klappt schon, nur siehst du davon nix weil du deinem panel (FMyPanel) im Create deines Forms keinen Parent zuordnest. Damit liegt zwar das Tree auf dem Panel aber das Panel nicht auf dem Form...
|
Re: Treeview zur Laufzeit auf einem Panel erzeugen
Zitat:
Setze also den Parent des Panels auf Form1, und das Panel wird auf dem Form liegen. Nun das Panel als Parent der Treeview angeben, und die TV wird auf dem Panel gezeichnet werden ;) Greetz alcaeus |
Re: Treeview zur Laufzeit auf einem Panel erzeugen
hmm - also irgendwie hab ich immer noch den Fehler:
Zitat:
Delphi-Quellcode:
Unit Unit1;
Interface Uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, ExtCtrls; Type myPanel = Class(TPanel) PRIVATE FTreeView: TTreeView; PUBLIC Constructor Create(AOwner: TComponent); OVERRIDE; End; Type TForm1 = Class(TForm) Procedure FormCreate(Sender: TObject); PRIVATE FMyPanel: myPanel; PUBLIC End; Var Form1: TForm1; Implementation {$R *.dfm} Procedure TForm1.FormCreate(Sender: TObject); Begin FMyPanel := myPanel.Create(Self); FMyPanel.Parent := Self; End; { myPanel } Constructor myPanel.Create(AOwner: TComponent); Begin Inherited; FTreeView := TTreeView.Create(Self); FTreeView.Parent := Self; FTreeView.Align := alClient; FTreeView.Items.AddNode(Nil, Nil, 'test', Nil, naAdd); End; End. |
Re: Treeview zur Laufzeit auf einem Panel erzeugen
Moin Daniel,
Du darfst den Parent erst setzen, wenn das Panel erzeugt wurde. Such' hier mal nach ![]() In dieser Methode sollte das gehen. Du musst es Dir allerdings am Besten so einbauen, dass diese Zuweisung nur einmal erfolgt. CreateWnd wird mehrfach aufgerufen. |
Re: Treeview zur Laufzeit auf einem Panel erzeugen
ok - da muss man erst mal draufkommen...
habs jetzt etwas anders gelöst: eine weitere Procedure in MyPanel die das TreeView füllt - geht jetzt einwandfrei Danke an alle |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:08 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