![]() |
TreeView als Menü-wie?
So Hallo erstmal!
Bin ein Delphi noob und hab gleich mal eine Frage an euch. Ich will ein Treeview als Menü nutzen: ![]() Also wenn im Treeview was angklickt wird soll im 2. Bereich sich alles ändern. Wie kann ich das am besten realisieren? Es soll so wie bei mIRC in den Option seihen.. Danke schonmal im vorraus. |
Re: TreeView als Menü-wie?
Herlich willkommen in der DP! :party:
Mit den OnClick()-Events der einzelnen Items müsste es gehen. [edit]Immer diese Rechtschriebfehler... :mrgreen:[/edit] |
Re: TreeView als Menü-wie?
Ja danke aber was nehme ich, damit ich im 2. Bereich mehere verschiedene "Ebenen" haben kann die dann aufrufbar sind. Jeweils ne neue Form? Wäre umständlich geht es auch einfacher?
|
Re: TreeView als Menü-wie?
Ich würde verschiedene Groupboxes nehmen und jeweils nur EINE Sichtbar machen.
|
Re: TreeView als Menü-wie?
Aus Erfahrung hab ich gelernt, daß das Übereinanderlegen von Groupboxen o.ä. während der Designtime zum Desaster führt, da die Formelemente sich gegenseitig überlagern. Seitdem bevorzuge ich für jeden Treevieweintrag ein eigenes Form, das ich dann einfach in einem dafür vorgesehenem Panel darstellen lasse. Die einzelnen Forms an sich sind dann sehr übersichtlich in der IDE zu handhaben... Hier noch kurz der Code zum Darstellen einer Form in einem Panel:
Delphi-Quellcode:
procedure TfrmMain.ChangeModule (ModuleNum : integer) ;
var NewDemoClass: TFormClass; NewDemo: TForm; begin case ModuleNum of 1: NewDemoClass := TForm1; 2: NewDemoClass := TForm2; { usw. für alle anderen Forms } else NewDemoClass := nil; end; { panContainer = TPanel } if (panContainer.ControlCount = 0) or not (panContainer.Controls[0] is NewDemoClass) then begin if panContainer.ControlCount > 0 then panContainer.Controls[0].Free; if Assigned(NewDemoClass) then begin NewDemo := NewDemoClass.Create(Self); NewDemo.Hide; NewDemo.BorderStyle := bsNone; NewDemo.Parent := panContainer; NewDemo.Align := alClient; NewDemo.Show; end; end; end ; |
Re: TreeView als Menü-wie?
Hallo MeaChrome,
und herzlich willkommen bei der Delphi-PRAXiS! Unter ![]() ![]() Zitat:
|
Re: TreeView als Menü-wie?
Danke.
Wie kann ich die einzelnen Treeview Nodes (glaub ich) bei OnClick ansprechen? |
Re: TreeView als Menü-wie?
Liste der Anhänge anzeigen (Anzahl: 1)
mahlzeit,
es ist recht simpel dies mit einem PageControl zu realisieren. Hier eine Demo: |
Re: TreeView als Menü-wie?
Zitat:
sehr geiler artikel. Danke für den Link. Ich arbeite schon längere Zeit mit Frames, aber das mit dem registrieren der Frames ist neu für mich. Dann bekomme ich das gesamte konzept noch unabhängiger und kann den Aufbau der Applikation noch viel übersichtlicher gestalten. Danke Gruß Ken |
Re: TreeView als Menü-wie?
Zitat:
Und wie verhinderst du ein Flackern? |
Re: TreeView als Menü-wie?
Zitat:
Zitat:
|
Re: TreeView als Menü-wie?
hi, alternativ könntest du auch die TJvPageList aus der
![]() |
Re: TreeView als Menü-wie?
Zitat:
Meine Form2-Deklaration sieht so aus:
Delphi-Quellcode:
Und der Quelltext:
type
TForm2 = class(TForm) Panel1: TPanel; Memo1: TMemo; Button1: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private-Deklarationen } FPCaption: String; procedure SetPCaption(ACaption: String); public { Public-Deklarationen } property PanelCaption: String read FPCaption write SetPCaption; end;
Delphi-Quellcode:
Wenn ich den Button1 drücke, wird die Panel-Caption geändert. Wenn ich es aber von der Mainform aus machen will, passiert nix
procedure TForm2.SetPCaption(ACaption: String);
begin Panel1.Caption := ACaption; end; procedure TForm2.Button1Click(Sender: TObject); begin Panel1.Caption := 'Test'; end; procedure TForm2.FormCreate(Sender: TObject); begin FPCaption := Panel1.Caption; end;
Delphi-Quellcode:
Hab es doch jetzt wie du gesagt hast, oder nicht? :wall:
procedure TForm1.DoSomething1Click(Sender: TObject);
begin Form2.PanelCaption := 'Aus Hauptform geändert'; end; |
Re: TreeView als Menü-wie?
Das sollte eigentlich so funktionieren, abgesehen daß wenn du lesend auf deine PanelCaption zugreifst, nicht der richtige Inhalt geliefert wird. Aber das sollte nichts mit deinem Problem zu tun haben.
Hast du schon probiert von deinem Mainform mittels
Delphi-Quellcode:
zu die caption zu verändern.
form2.panel1.caption := 'Titel' ;
|
Re: TreeView als Menü-wie?
Liste der Anhänge anzeigen (Anzahl: 1)
Das war das erste was ich probiert hatte. Der Code wird ausgeführt aber es passiert nix.
Hmm, ich häng mal das Testbeispiel von mir an. Vielleicht findest du ja den Fehler |
Re: TreeView als Menü-wie?
Das Problem liegt darin, daß du mit Form2 nicht die Form ansprichst, die in deinem Panel angezeigt wird. ChangeModule erstellt eine neue Form und legt diese in NewDemo ab. Wenn du dir NewDemo in deiner Mainform als public deklarierst, anstatt nur lokal in der Methode Changemodule, solltest du wie folgt die Caption ändern können:
Delphi-Quellcode:
(Newdemo as TForm2).panel1.caption := 'Irgendwas' ;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:33 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