Thema: Delphi TreeView und DblClick

Einzelnen Beitrag anzeigen

Benutzerbild von MacGuyver
MacGuyver

Registriert seit: 9. Sep 2003
Ort: Wildeshausen
295 Beiträge
 
Turbo Delphi für Win32
 
#1

TreeView und DblClick

  Alt 27. Apr 2007, 08:23
Moin Leute

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
Englisch eine Weltsprache? Zu kompliziert und der nahe Osten würde Englisch als Pflichtweltsprache nicht akzeptieren.
IDO wäre genau das Richtige: http://forum.idolinguo.de/index.php oder www.idolinguo.de
  Mit Zitat antworten Zitat