Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TreeView und DblClick (https://www.delphipraxis.net/90991-treeview-und-dblclick.html)

MacGuyver 27. Apr 2007 08:23


TreeView und DblClick
 
Moin Leute :hi:

Ich hatte da ein Problem mit dem TreeView. Bei einem Doppelklick auf einen Eintrag sollte dieser Eintrag nicht aufklappen. Warum? Egal! Hier ist einfach mal die Lösung dazu:

Delphi-Quellcode:
private
    { Private-Deklarationen }
    FExpandNode,
    FCollapseNode : TTreeNode;



procedure TForm1.TreeView1DblClick(Sender: TObject);
begin
  FCollapseNode:=nil;
  FExpandNode:=nil;
end;

procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  lExpandingEvent : TTVExpandingEvent;
  lCollapsingEvent : TTVCollapsingEvent;
begin
  if Assigned(FExpandNode) then
  begin
    lExpandingEvent:=TreeView1.OnExpanding;
    TreeView1.OnExpanding:=nil;
    FExpandNode.Expand(False);
    TreeView1.OnExpanding:=lExpandingEvent;
    FExpandNode:=nil;
  end;
  if Assigned(FCollapseNode) then
  begin
    lCollapsingEvent:=TreeView1.OnCollapsing;
    TreeView1.OnCollapsing:=nil;
    FCollapseNode.Collapse(False);
    TreeView1.OnCollapsing:=lCollapsingEvent;
    FCollapseNode:=nil;
  end;
end;

procedure TForm1.TreeView1Collapsing(Sender: TObject; Node: TTreeNode;
  var AllowCollapse: Boolean);
begin
  AllowCollapse:=False;
  FCollapseNode:=Node;
end;

procedure TForm1.TreeView1Expanding(Sender: TObject; Node: TTreeNode;
  var AllowExpansion: Boolean);
begin
  AllowExpansion:=False;
  FExpandNode:=Node;
end;
Vielleicht gibt es da noch etwas schöneres mit Botschaften. Auf jeden Fall funktioniert es.

Ach ja, Delphi 5 pro

Stefan


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:25 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 by Thomas Breitkreuz