怎样让FORM实现象一页纸在空中飘浮的效果?(50分)

  • 主题发起人 主题发起人 mingm13
  • 开始时间 开始时间
M

mingm13

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样让FORM实现象一页纸在空中飘浮的效果?
要让整个FORM看起来都是动态的;
请不要告诉我用那个API就可以,那个东西只能实现FORM整体的移动之类的效果
 
放个Timer改变Form left、top
 
XPHope:你那是在控制FORM的大小变化,
一页纸在空中飘动的效果不是那样吧??????
不过还是谢谢你的热心!
 
嘿嘿
什么时候改变Form的大小了?
left、top改变,Form的位置不就改变了吗
procedure TForm1.Timer1Timer(Sender: TObject);
var
i:integer;
begin
Randomize;
Form1.Left:=Form1.Left+(Random(10)-5)*10;
Form1.Top:=Form1.Top+(Random(10)-5)*10;
end;
你不会想要达到红旗飘飘的效果吧
 
XWHope:朋友,你的这个办法也只能使FORM产生移动效果吧,
一页风中飘动的纸不会只有这种效果吧?
再次谢谢你!
 
也想知道,帮你顶
 
程序内嵌flash不就可以了啊。
 
要動的是吧.
AnimateWindow(Handle, 500, AW_CENTER);

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowfunctions/animatewindow.asp
 
画个透明窗体,上面画一面红旗,然后用WHOPE的方法。
 
procedure TForm1.Button1Click(Sender: TObject);
var
Rgn,hInRgn,hOutRgn:hrgn;
i:integer;
Rc:Trect;
begin
i:=0;
GetWindowRect(handle,Rc);
hOutRgn:=CreateRectRgn(0,0,Rc.Right-Rc.Left+1,Rc.Bottom-Rc.Top+1);
try
while (i<width div 2) do begin
inc(i);
hInRgn:=CreateRectRgn(Width div 2-i,height div 2 -i,Width div 2+i,height div 2 +i);
try
CombineRgn(hInRgn,hInRgn,hOutRgn,Rgn_And);
SetWindowRgn(Handle,hInRgn,True);
finally
DeleteObject(hInRgn);
end;
end;
finally
DeleteObject(hOutRgn);
end;
end;


procedure TForm1.Button2Click(Sender: TObject);
begin
width := 1;
Height:=1;
Left:=screen.Width div 2;
top:=screen.Height div 2;
Left:=Left-width div 2;
top:=top-height div 2;
while ((Left>250) and (Top>200)) do begin
Width:=Width+4;
Height:=Height+4;
Left:=Left-2;
Top:=Top-2;
end;
end;
 
procedure TForm1.FormShow(Sender: TObject);
var
i:integer;
begin
AnimateWindow(HandLe,80,AW_CENTER);
for i:=0 to ControlCount-1 do
Controls.Refresh;
Form1.BringToFront;
end;
 
谢谢上面各位,但是现在还没有得到我想要的效果!
我一开就申明不是用AnimateWindow能实现的,那个东西不行!
内置FLASH就更不行了,MYSBS朋友的想法到是比较新颖但是………………
继续等待!
 
请问高手都到哪儿去了?
难道没有人会做吗?
 

Similar threads

后退
顶部