unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls;type
  TForm1 = class(TForm)
    TreeView1: TTreeView;
    procedure TreeView1Expanding(Sender: TObject; Node: TTreeNode;
      var AllowExpansion: Boolean);
    procedure TreeView1DblClick(Sender: TObject);
    procedure TreeView1Collapsing(Sender: TObject; Node: TTreeNode;
      var AllowCollapse: Boolean);
  private
    { Private declarations }
    FDdlClick: Boolean;
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.TreeView1Expanding(Sender: TObject; Node: TTreeNode;
  var AllowExpansion: Boolean);
begin
  if FDdlClick then begin
    FDdlClick := False;
    Exit;
  end;
  AllowExpansion := False;
end;procedure TForm1.TreeView1Collapsing(Sender: TObject; Node: TTreeNode;
  var AllowCollapse: Boolean);
begin
  if FDdlClick then begin
    FDdlClick := False;
    Exit;
  end;
  AllowCollapse := False;
end;procedure TForm1.TreeView1DblClick(Sender: TObject);
begin
  FDdlClick := True;
end;end.

解决方案 »

  1.   

    //测试通过
    procedure TForm1.TreeView1Expanding(Sender: TObject; Node: TTreeNode;
      var AllowExpansion: Boolean);
    begin
      if FDdlClick then Exit;
      AllowExpansion := False;
    end;procedure TForm1.TreeView1Collapsing(Sender: TObject; Node: TTreeNode;
      var AllowCollapse: Boolean);
    begin
      if FDdlClick then Exit;
      AllowCollapse := False;
    end;procedure TForm1.TreeView1DblClick(Sender: TObject);
    begin
      FDdlClick := True;
    end;procedure TForm1.TreeView1Click(Sender: TObject);
    begin
      FDdlClick := False;
    end;
      

  2.   

    to lihao_ningxia:
    别忙说我的对,还有一些问题没有解决
      

  3.   

    zswang(伴水)(破碎的心只剩下灵感):
    按照你的方法,基本可以实现,但是好像有点不太灵敏。给分!
      

  4.   

    没有想到TreeView有许多事件截获不了
      

  5.   

    //更佳答案procedure TForm1.TreeView1Expanding(Sender: TObject; Node: TTreeNode;
      var AllowExpansion: Boolean);
    var
      vPoint: TPoint;
    begin
      vPoint := TreeView1.ScreenToClient(Mouse.CursorPos);
      AllowExpansion := htOnButton in TreeView1.GetHitTestInfoAt(vPoint.X, vPoint.Y);
    end;procedure TForm1.TreeView1Collapsing(Sender: TObject; Node: TTreeNode;
      var AllowCollapse: Boolean);
    var
      vPoint: TPoint;
    begin
      vPoint := TreeView1.ScreenToClient(Mouse.CursorPos);
      AllowCollapse := htOnButton in TreeView1.GetHitTestInfoAt(vPoint.X, vPoint.Y);
    end;
      

  6.   

    to zswang(伴水)(破碎的心只剩下灵感) :
     用你的主意感觉好极了! :)