Главная Новые темы Список тем Задать вопрос Поиск  

Форум "Delphi" (архив)


Паскаль, Делфи


 #0 Dr_Phoenix © 07.02.05 11:50:35 - 12.02.05 16:48:49

Работа с TImage



Как мне сделать чтобы Timage свертывался и развертывался без мерцания?  Я просто создал цыкл в котором пропорцыонально уменьшаются или увеличиваются Width & Height причем чтобы было видно етот процес и цыкл не вис я использовал вызов Application.ProcessMessages! Может кто знает путь попроще или поефективнее??? Заранее благодарен! Цитата

 #1 clickmaker © 07.02.05 12:01:04

Положи на панель и включи 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(DXDr­aw1.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
  q := 300 - 10 * ((n - 322) mod 2)
else
  case n of
    352..355: q := 50;
    356..400: q := 0;
  else
    q := 300
  end




  • Тема находится в архиве

    Написать ответ

    Имя: Регистрация HTML?
    smiles смайлики
    Потом перейти в:    
    паутина



      ©  webest.net, 2002-2007  

    top.mail.ru
    » Бесплатный счетчик посещений
    » Рейтинг сайтов