Форум "Delphi" (архив)
Паскаль, Делфи
#0 Dr_Phoenix © 07.02.05 11:50:35 - 12.02.05 16:48:49 Работа с TImageКак мне сделать чтобы Timage свертывался и развертывался без мерцания? Я просто создал цыкл в котором пропорцыонально уменьшаются или увеличиваются Width & Height причем чтобы было видно етот процес и цыкл не вис я использовал вызов Application.ProcessMessages! Может кто знает путь попроще или поефективнее??? Заранее благодарен!
|
|
Положи на панель и включи DoubleBuffered |
|
#2
Dmitriy O.
© 07.02.05 12:52:22
Можно использовать компаненты DelphiX получается очень красивое и плавное увеличение/уменьшение изображения типа так procedure Tmyform.DXTimer1Timer(Sender: TObject; LagCount: Integer); var rect:trect; begin if not DXDraw1.CanDraw then exit; If n = 400 then k:=-1; If n = 0 then k:=1; case n of 322..323:q:=300; 324..325:q:=290; 326..327:q:=280; 328..329:q:=270; 330..331:q:=260; 332..333:q:=250; 334..335:q:=190; 336..337:q:=180; 338..339:q:=170; 340..341:q:=160; 342..343:q:=150; 344..345:q:=140; 346..347:q:=130; 348..349:q:=120; 350..351:q:=110; 352..355:q:=50; 356..400:q:=0; else q:=300; end; n:=n+k; rect.left:=10; rect.right:=n; rect.top:=10; rect.bottom:=n; DXDraw1.Surface.Fill(0); DXIMageList1.Items.Find('bg').Draw(DXDraw1.Surface,0,0,0) ; DXIMageList1.Items.Find('wz').DrawAlpha(DXDraw1.Surface,rect,0,q); DXDraw1.Flip end; |
|
#3 jack128 © 12.02.05 16:48:49
Дима в своем репертуаре ;-) if (n >= 322) and (n <= 351) then
|
Тема находится в архиве
Написать ответ |
|
