Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как сделать анимацию?


Кирилл Таран ©   (2006-06-22 12:17:00) 

Как можно сделать анимацию в Дельфи 7.0?
Пробовал сделать, как в Борланд Паскале, используя оператор паузы (Delay), но не нашёл такой оператор :), с таймером и пустыми циклами не получилось.
Кто-нибудь подскажет ,как сделать анимацию, или этот оператор?


Sava18   (2006-06-24 19:23:00) [1]

попробуй покапаться в этом коде.Я его давненько писал и так до ума не довел.Програмка сыроватая но зато работает.Для ее работы на форму надо добавить таймер и имажелист.Ну там сам разбережся.За одно тут представлено как двигать  фигуру с помощью стрелок.

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, ExtCtrls, ImgList, StdCtrls;

type
 TForm1 = class(TForm)
   ImageList1: TImageList;
   Timer1: TTimer;
   procedure Timer1Timer(Sender: TObject);
   procedure FormActivate(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
dx,y,x,n,r:integer;
implementation

{$R *.dfm}

 procedure TForm1.FormActivate(Sender: TObject);
begin
N:=-1;
x:=50;
y:=50 ;
dx:=10;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
a,y1,x1:integer;
begin

x1:=x;
y1:=y;
if hiword(getkeystate(vk_right))=0 then a:=0;
if hiword(getkeystate(vk_right))<>0 then a:=1;
if hiword(getkeystate(vk_left))<>0 then a:=2;
case a  of
1: x1:=x1+dx;
2: x1:=x1-dx;
end;
case a of
0:r:=3;
1:r:=r+1;
2:r:=r-1;
end;
begin
N:=r;

Repaint;
if r=6 then r:=0;
if r<0 then r:=6;//временно
WITH form1.ImageList1 DO
BEGIN
case r of
0: Draw(Canvas,x1,y1,1);
1: Draw(Canvas,x1,y1,2);
2: Draw(Canvas,x1,y1,3);
3: Draw(Canvas,x1,y1,4);
4: Draw(Canvas,x1,y1,5);
5: Draw(Canvas,x1,y1,0);

end;
x:=x1;
end;
end;

end;

end.


grouzd)ev   (2006-06-22 22:55:00) [2]

Sleep

---
... we are walking on a thin line and you better avoid the risk ...


Чародей   (2006-06-22 20:31:00) [3]

Через таймер


Наверх

Титульная страница Поиск, карта сайта Написать письмо