Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi treeview Menü (https://www.delphipraxis.net/113417-treeview-menue.html)

S20000 7. Mai 2008 15:58


treeview Menü
 
Hallo,

ich habe eine Frage zum Thema TreeView.
Ich hab einen Baum erstellt der mehrere Unterbäume mit Namen enthält.
Wie kann ich nun bewirken das etwas geschieht wenn ich auf einen
der Namen klicke. Zum Beispiel: Sobald ich auf einen Namen im
Baum klicke ändert sich der Text in einem Labe.


Gruß
Sebastian

marabu 7. Mai 2008 18:18

Re: treeview Menü
 
Herzlich willkommen in der Delphi-PRAXiS, Sebastian.

Du kannst auf das Ereignis OnChange() reagieren - einfach über den Object Inspector eine Methode für deine TreeView erzeugen und deinen eigenen Code eintragen:

Delphi-Quellcode:
procedure TDemoForm.TreeViewChange(Sender: TObject; Node: TTreeNode);
begin
  if Assigned(Node)
    then DemoLabel.Caption := Node.Text
    else DemoLabel.Caption := '';
end;
Freundliche Grüße

toms 7. Mai 2008 21:01

Re: treeview Menü
 
Zitat:

Zitat von S20000
Wie kann ich nun bewirken das etwas geschieht wenn ich auf einen
der Namen klicke. Zum Beispiel: Sobald ich auf einen Namen im
Baum klicke ändert sich der Text in einem Labe.

Delphi-Quellcode:
procedure TForm1.TreeViewMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
  Node: TTreeNode;
  HitTest: THitTests;
begin
  HitTest := TreeView.GetHitTestInfoAt(X, Y);
  if (htOnIcon in HitTest) or (htOnLabel in HitTest) then
  begin
    Node := TreeView.GetNodeAt(X, Y);
    if Assigned(Node) then
      Label1.Caption := Node.Caption;
  end;
end;

S20000 8. Mai 2008 15:19

Re: treeview Menü
 
Vielen Dank.

S20000 26. Mai 2008 18:16

Re: treeview Menü
 
Wollte nochmal rückmelden wie ich mein Menü
jetzt erstellt habe:

Delphi-Quellcode:

//Hauptmenü über TreeView
procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin

if treeview1.Selected.AbsoluteIndex=0 then
Pagecontrol1.ActivePage:=tabsheet1;
if treeview1.Selected.AbsoluteIndex=1 then
Pagecontrol1.ActivePage:=tabsheet2;
if treeview1.Selected.AbsoluteIndex=2 then
Pagecontrol1.ActivePage:=tabsheet3;

end;

taaktaak 26. Mai 2008 18:30

Re: treeview Menü
 
Moin, Moin,

wenn ich das recht sehe, dann liesse sich das ganze etwas verkürzen:

Delphi-Quellcode:
procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  Pagecontrol1.ActivePageIndex:=TreeView1.Selected.AbsoluteIndex
end;
:wink:

S20000 26. Mai 2008 19:09

Re: treeview Menü
 
Da geb ich dir Recht :-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:20 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