当前位置:编程学习 > Delphi >>

delphi 问题

如何在鼠标离开Image时触发Label4.caption:='';
补充:怎么判断 具体点  谢谢
		
答案:
楼上正确

提供代码给楼主参考

//先定义全局变量
implementation
var
Top, Left, Height, Width: Integer;//记录楼主你的图框的左上角的坐标和图框的宽度和维度
CursorPos: TPoint;//这个是记录鼠标指针的坐标

begin
Top := Image1.Top;
Left := Image1.Left;
Height := Image1.Height;
Width := Image1.Width;
GetCursorPos(CursorPos);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if (CursorPos.X < Left) or (CursorPos.X > Left + Width) then//超出维度就提示
begin
Edit1.Text := '';
Canvas.TextOut(20,20,'移出图框');//在窗体显示
end;
if (CursorPos.Y < Top) or (CursorPos.Y > Top + Height) then
begin
Edit1.Text := '';
Canvas.TextOut(20,20,'移出图框');
end;
end;
答案补充
procedure Tzhumain.FormMouseMove,这个当然不行,这个是鼠标移出窗口引发的事件
首选,GetCursorPos(CursorPos);是要实时监控的,不断获取TPoint的坐标,然后传送给指针坐标X和Y,
但是GetCursorPos()函数获取的是屏幕坐标,而不是窗体坐标,所以用ScreenTClient(CursorPos)函数转换成窗体坐标,再用屏幕坐标减去窗体坐标的差值和图框的四个坐标点比较,超出就Label4.Caption:='';
如果程序确实没问题,一般重新打开一次Delphi就好了。
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
img1: TImage;
lbl1: TLabel;
procedure MouseLeave(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}



procedure TForm1.MouseLeave(Sender: TObject);
begin
lbl1.Caption := '';
end;

end.
image控件本身是没有这个事件的。。你可以在onmousemove事件里判断鼠标的坐标是否落在image的范围内。。

上一个:delphi解释
下一个:关于DELPHI

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,