speedbutton 用法(50分)

  • 主题发起人 主题发起人 fan_dph
  • 开始时间 开始时间
F

fan_dph

Unregistered / Unconfirmed
GUEST, unregistred user!
各位:
在窗体中放一Tspeedbutton控件,一Tlabel控件,我想当我把鼠标移到speedbutton上时,
Tlabel控件能看到,当把鼠标从Tspeedbutton中移开时,Tlabel控件看不到,请问如何解决!
 
先将lable控件的visible属性设为false,在speedbutton的onmousemove事件里添加
这个语句:lable1.visible:=true;
 
把 lavel的visable写到speedbutton的onmouse事件里去。
 
我试过,不行,但是当我把鼠标从Tspeedbutton中移开时,Tlabel没有变
 
1。简单法:在 SpeedButton.OnMouseMove 事件上设置 Label 可见
在 SpeedButton 的父类上(比如 Form1) 的 OnMouseMove 事件设 Label 不可见
2。Timer法:
设一Timer每隔一段时间检查一下鼠标位置。
 
取得鼠标位置,
if 鼠标位置在SpeedButton上 then
begin
Label1.Visible := True;
end else
begin
Label1.Visible := False;
end;
 
请问千年宾虫:如何实现,我试过好象不行!
 
关键是在Timer里如何获取鼠标位置:
procedure TForm1.Timer1Timer(Sender : TObject);
var
Mouse : TPoint; //鼠标位置
iX, iY : longint;
begin
GetCursorPos(Mouse);
SpeedButtonScreenToClient(Mouse);
......
end;
 
假如你的SpeedButton1的Parent是Form。即SpeedButton1放在Form1中。

procedure TForm1.SpeedButton1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
Label1.Visible :=True;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Label1.Visible :=False;
end;
 
妄论几句:
移出speedbutton与 移到form上好象不一样吧?
如果移出了speedbutton而到了 一个edit上(没经过form)那楼上诸位的方法(除去timer法)还行么?
有没有 控件的移出事件 ?
 
就看speedbutton的四周是啥了,如果没有,只是Form,上面代码应该没有问题
 
后退
顶部