如题
解决方案 »
- 为什么我的ActiveForm里使用Designer.Modified运行时报错?救命!!!!!!!!!
- sql server+ado访问,在win2k server+98用pxe做的无盘下访问不了数据库?
- 用什么方式实现局域网内的数据库实时数据传输比较方便,可靠
- TreeView 的节点问题,急
- DateBaseDeskTop数据类型中的$(Money)能转换成Str或者Float吗?
- case语句?
- 怎么实现sql封装?
- 为什么在Win2000下编写的程序到Win98下界面变的很丑?
- SqlServer2000+BDE为什么不能执行FILTER?
- 怎么让钩子(HOOK) 截获按键,并转化为别的按键!
- qreport的小问题!急呀!!!!!!!!!!!
- 怎样得到一个字符串中某一个字符的位置
能实现当mouse 不在该区域时把字再变回去,代码如下:
unit testu;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Buttons, StdCtrls;type
TForm1 = class(TForm)
SpeedButton1: TSpeedButton;
procedure SpeedButton1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
TMyLabel=class(Tlabel)
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE; end;
var
Form1: TForm1;implementation
var
ml:TMylabel=nil;
min:boolean=false;
{$R *.DFM}
procedure TMyLabel.CMMouseEnter(var Message: TMessage);
begin
inherited;
if not min then
begin
font.Style :=font.style+[fsUnderline];
min:=true;
Repaint;
end;
end;
procedure TMyLabel.CMMouseLeave(var Message: TMessage);
begin
inherited;
if min then
begin
font.Style :=font.style-[fsUnderline];
min:=false;
Invalidate;
end;
end;procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
if ml<>nil then exit;
ml:=tmylabel.Create(self);
ml.parent:=form1;
ml.left:=50;
ml.top:=50;
ml.width:=50;
ml.height:=50;
ml.caption:='abcdefghijklmnopqrstuvwxyz';
ml.show;
end;procedure TForm1.FormDestroy(Sender: TObject);
begin
if ml<>nil then ml.free;
end;end.
P := ScreenToClient(P);
var
Point : TPoint;
FrmRect : TRect;
begin
GetCursorPos(Point);
FrmRect.TopLeft := ClientToScreen(Self.GetClientRect().TopLeft);
FrmRect.BottomRight := ClientToScreen(Self.GetClientRect().BottomRight);
if not PtInRect(FrmRect,Point) then
begin
Self.Hide;
Self.Timer1.Enabled := false;
end;
end;
TForm1 = class(TForm) procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
FbMouseOn : boolean;
public
{ Public declarations }
procedure WMMouseLeave(var Message: TMessage); message WM_MOUSELEAVE;
end;--------------------
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
tme : tagTrackMouseEvent;
begin
if not FbMouseOn then
begin
FbMouseOn := true;
tme.cbSize := sizeof(tme);
tme.dwFlags := TME_LEAVE;//这里决定是否发送鼠标离开窗体的消息WM_MOUSELEAVE
tme.hwndTrack := self.Handle;
TrackMouseEvent(tme);
end;
end;procedure TForm1.WMMouseLeave(var Message: TMessage);
begin
self.Hide ;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
FbMouseOn := false;
end;