P
pdjwind
Unregistered / Unconfirmed
GUEST, unregistred user!
我写了一个MYpanel,有mousein,和mouseout两个事件,
mousein时显示form2,mouseout时,延迟0.2秒关闭form2。
在mousein进入form2(当中也有MYpanel)时 ,触发另外一个事件,form2不关闭,mouse离开form2时,form2关闭。
我用一个全局变量来控制
实际上,程序是关闭了form2后,才去触发form2上的事件,(实际上这是不可能的)
如何在延迟的过程中,先去触发form2上的事件呢??
(类似qq上的用户属性:当鼠标移动到头像上时,弹出一个属性页,鼠标在属性页上时,该页不关闭,鼠标离开该页时,该属性页关闭)
var
form_in:boolean;
procedure TForm1.Mypanel1MouseLeave(Sender: TObject);
begin
form_in :=true;
sleep(350);
Application.ProcessMessages;
if form_in then
begin
Form2.Close ;
end;
procedure TForm1.Mypanel1MouseEnter(Sender: TObject);
begin
Form2.Show ;
end;
================================
另外一个unit
procedure TForm2.Mypanel1MouseEnter(Sender: TObject);
begin
form_in :=false;
end;
mousein时显示form2,mouseout时,延迟0.2秒关闭form2。
在mousein进入form2(当中也有MYpanel)时 ,触发另外一个事件,form2不关闭,mouse离开form2时,form2关闭。
我用一个全局变量来控制
实际上,程序是关闭了form2后,才去触发form2上的事件,(实际上这是不可能的)
如何在延迟的过程中,先去触发form2上的事件呢??
(类似qq上的用户属性:当鼠标移动到头像上时,弹出一个属性页,鼠标在属性页上时,该页不关闭,鼠标离开该页时,该属性页关闭)
var
form_in:boolean;
procedure TForm1.Mypanel1MouseLeave(Sender: TObject);
begin
form_in :=true;
sleep(350);
Application.ProcessMessages;
if form_in then
begin
Form2.Close ;
end;
procedure TForm1.Mypanel1MouseEnter(Sender: TObject);
begin
Form2.Show ;
end;
================================
另外一个unit
procedure TForm2.Mypanel1MouseEnter(Sender: TObject);
begin
form_in :=false;
end;