首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

Delphi TreeView解决方法

2012-04-27 
Delphi TreeView各位大侠:小弟遇到一个麻烦的问题。小弟的程序里用到的TreeView控件,现在的问题是这样的,小

Delphi TreeView
各位大侠:
  小弟遇到一个麻烦的问题。小弟的程序里用到的TreeView控件,
  现在的问题是这样的,小弟在点击(+)的时候,会运行onlClick();
  现在想屏蔽这个事件,有何好的办法?

[解决办法]
TreeView.onClick := nil;这样等于你所以的点击事件都不能用了,如果是这样那你为什么要写onClick事件,不写不就没事了吗?
[解决办法]
procedure TForm1.TreeView1Click(Sender: TObject);
begin
if YN then exit;
showmessage('单击啦!');
end;

procedure TForm1.TreeView1Expanded(Sender: TObject; Node: TTreeNode);
begin
YN:=true;
end;

procedure TForm1.TreeView1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
YN:=false;
end;



其中YN:boolean;是全局变量。

[解决办法]
procedure TcateForm.tvClick(Sender: TObject);
var P:TPoint;
begin
GetCursorPos(P);
P := tv.ScreenToClient(P);
if (htOnButton in tv.GetHitTestInfoAt(P.X,P.Y)) then exit; //如果是点+号就退出
......
your onclick code
end;
[解决办法]
var
bOnTreeViewOpra :Boolean=False;
  
procedure TForm1.TreeView1Expanding(Sender: TObject;
Node: TTreeNode; var AllowExpansion: Boolean);
begin
bOnTreeViewOpra := True;
end;

procedure TForm1.TreeView1Click(Sender: TObject);
begin
if not bOnTreeViewOpra then
showmessage('sss');
end;

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

procedure TForm1.TreeView1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
bOnTreeViewOpra := False;
end;

热点排行