现在我终于能回答你的问题了,为了这个问题我问了好多人,也看了好多书,累死累活的
你说我这样做容易吗?......呵呵,闲话少说了. 对你所说的问题,我自己编了一个程序,就象QQ一样,当鼠标移到上面时弹出来,移走时缩进去;我是这样实现的:
1) 新建一个工程project,然后在form1放置一个timer组件,适当的设置时间,当然越小反应
越快,然后双击它的ontime事件生成一个procedure,过程代码如下:
var
i:Tpoint;
begin
getcursorpos(i); //获得当前鼠标的位置;
if form1.top<=0 //窗体上端位置在<=0的位置时,才能缩进去;
then with form1 do
if (x>left+width) or (x<left) or (y>top+height) //判断鼠标位置是否在窗体上
then begin
top:=0; //把窗体上端位置设为0;
height:=3; //窗体缩进去;
borderstyle:=none;
Timer1.Enabled:=false;
end;
end;2) 当鼠标移到窗体上时,窗体弹出来,因此可在在窗体的OnMouseMove事件当中,
写下如下的代码:
begin
with form1 do
begin
Height:=你原来设置的窗体高度;
borderstyle:=bsSizeable;
Timer1.Enabled:=true;
end;
你说我这样做容易吗?......呵呵,闲话少说了. 对你所说的问题,我自己编了一个程序,就象QQ一样,当鼠标移到上面时弹出来,移走时缩进去;我是这样实现的:
1) 新建一个工程project,然后在form1放置一个timer组件,适当的设置时间,当然越小反应
越快,然后双击它的ontime事件生成一个procedure,过程代码如下:
var
i:Tpoint;
begin
getcursorpos(i); //获得当前鼠标的位置;
if form1.top<=0 //窗体上端位置在<=0的位置时,才能缩进去;
then with form1 do
if (x>left+width) or (x<left) or (y>top+height) //判断鼠标位置是否在窗体上
then begin
top:=0; //把窗体上端位置设为0;
height:=3; //窗体缩进去;
borderstyle:=none;
Timer1.Enabled:=false;
end;
end;2) 当鼠标移到窗体上时,窗体弹出来,因此可在在窗体的OnMouseMove事件当中,
写下如下的代码:
begin
with form1 do
begin
Height:=你原来设置的窗体高度;
borderstyle:=bsSizeable;
Timer1.Enabled:=true;
end;
http://www.software-power.com/sc/programs/minibar.zip
要想刚开始就让他缩进去,那么在窗体的Oncreate事件中写上如下代码:
begin
timer1timer(nil);
end;现在基本上差不多了,那么程序运行后的执行为:
首先timer1启动判断过程,判断鼠标是否在窗体上,如果在,那么不做任何事情;如果不在,
则窗体缩进去,同时timer1的enabled变为false,timer1不再运行;当鼠标从窗体外移到窗体上,那么触发onmousemove的过程,将窗体恢复原样,同时timer的enabled变为true,timer启动;这样周而复始,从而达到要求;程序已经在电脑上运行过了,行!因为网吧的服务器没有软驱,所以我只有这样叙述了,真是麻烦!如果有问题,再联系;
e-mail: [email protected]这个本来上次就发的,谁知道留言不准连续三次,所以等到现在了