请问想设计一个Panel的自动滑出式的面板!开始Panel的Height=5当鼠标移到Panel上时Panel就自动滑出Height=100当鼠标移出Panel

  • 主题发起人 主题发起人 linbz
  • 开始时间 开始时间
L

linbz

Unregistered / Unconfirmed
GUEST, unregistred user!
请问想设计一个Panel的自动滑出式的面板!开始Panel的Height=5当鼠标移到Panel上时Panel就自动滑出Height=100当鼠标移出Panel时Panel的height=5?(50分)<br />请问想设计一个Panel的自动滑出式的面板!开始Panel的Height=5当鼠标移到Panel上时Panel就自动滑出Height=100当鼠标移出Panel时Panel的height=5?
 
这个我做过的用两个timer:timer1,timer2
当鼠标移到panel上时执行timer1:timer1.enabled:=true;
当鼠标离开panel时timer2.enabled:=true;
timer1:
timer2.enabled:=false;
if panel1.heigth&lt;100 then
panel1.heigth:=panel1.heigth+1
else
timer1.enabled:=false;

timer2:
panel1.enabled:=false;
if panel1.heigth&gt;5 then
panel1.heigth:=panel1.heigth-1
else
timer2.enabled:=false;

以前好像就是这么谢的,如果不对你改改就好了
 
实现起来很容易的,我有一个网景浏览器工具栏的控件,也是实现工具栏放大
和缩小的,你要不要。
hbezwwl@163.com
 
我想看Delphi具体实现的方法!
 
不用Timer就可以实现:
在Panel的OnMouseMove中判断:
if Panel.Height = 5 then
Panel.Height := 100; //这里你也可以做个循环一次加一点看上去就象是滑出来了

在Panel周围的控件和Form的OnMouseMove事件中加入:
Panel.Height := 5;
 
fanren945说的是错的!
应该在Panel的OnMouseMove中:
用timer控件使panel的height+1;
当height=100,停止。
在Panel周围的控件和Form的OnMouseMove中:
使panel的height-1;
当height=5,停止。
 
以前我就是这么做的!我觉的不科学!
 
試一下我的:
private
procedure move(Sender: TObject; var Done: Boolean);

procedure tform1.move(Sender: TObject; var Done: Boolean);
var point1:tpoint;
begin
Getcursorpos(point1);
point1:=screentoclient(point1);
if (point1.X&gt;=Panel1.Left) and (point1.X&lt;=panel1.Left+panel1.Width)
and (point1.Y&gt;=Panel1.Top) and (point1.Y&lt;=panel1.Top+panel1.height) then
begin
if panel1.Height=5 then
panel1.Height:=100;
end
else
if panel1.Height=100 then
panel1.Height:=5;
End;

procedure TForm1.FormCreate(Sender: TObject);
begin
application.OnIdle:=move;
end;
 
我看了原来我写的代码,D影子D说得对,因为我那个代码是凭记忆写的。
 
接受答案了.
 
后退
顶部