标签:
先上代码
procedure TForm3.Timer1Timer(Sender: TObject);
var
Point: TPoint;
Name: array[0..255] of Char;
Buffer: array[0..1023] of Char;
AHandle: THandle;
begin
//取得鼠标位置
GetCursorPos(Point);
//取得当前窗口句柄
AHandle := WindowFromPoint(Point);
if (AHandle<>LabEGroup.Handle) and (AHandle<>FrameTree1.TreeView1.Handle) then
begin
Timer1.Enabled:=False;
PanelList.Visible:=False;
end;
// GetClassName(AHandle, Name, Length(Name));
// SendMessage(AHandle, WM_GETTEXT, 1023, Integer(@Buffer));
// Caption := StrPas(Name);
// Result := StrPas(Buffer);
end;
在编辑信息的时候,LabGroup是从TreeView中获取的值,TreeView放在Frame中做成一个菜单一样。
上面函数从网上找的,原来是获取鼠标位置控件的类和内容
TlabalEdit,TFrame都没有mouseLeave事件,Form的mouseMove因为有窗口的原因,也没用。最后只有上面的方法可用
昨天是本周第一个子夜觉(12点之间睡着),真是舒服。昨天的效率一般,大部分时候在修改之前窗体的代码,以实现
上篇提到的目标。感觉好菜啊。
标签:
原文地址:http://www.cnblogs.com/jspdelphi/p/5389645.html