![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здравствуйте!
Мне надо сделать анимацию, где человечик машет флашком. Делал по книге и ни чего не получидлсь...Форма не отражает ни одной линии Помогите разобратся в чем дело? Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
x,y:integer;
implementation
{$R *.dfm}
procedure Baby (x,y:integer;
color:TColor);
Const dx=5; dy=5;
Var
b:TColor;
begin
with form1.Canvas do
begin
b:=pen.COlor;
pen.Color:=color;
MoveTo(x,y);
LineTo(x+3*dx,y-7*dy);
LineTo(x+3*dx,y-13*dy);
//LineTo(x,y-1*dy);
Ellipse (x+1*dx,y-17*dy,x+5*dx,y-13*dy);
MoveTo(x+3*dx,y-7*dy);
LineTo(x+3*dx,y+7*dy);
MoveTo(x+3*dx,y-12*dy);
LineTo(x-3*dx,y+1*dy);
LineTo(x-5*dx,y-2*dy);
LineTo(x-5*dx,y-3*dy);
LineTo(x-5*dx,y-5*dy);
LineTo(x-3*dx,y-2*dy);
LineTo(x-3*dx,y-3*dy);
LineTo(x-5*dx,y-3*dy);
MoveTo(x+3*dx,y-12*dy);
LineTo(x+3*dx,y+1*dy);
LineTo(x+2*dx,y+4*dy);
pen.Color:=b;
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
baby(x,y,form1.Color);
if x<Form1.ClientWidth
then x:=x+5
else begin
y:=Random(50)+100;
end;
baby(x,y,clwhite);
end.Последний раз редактировалось Admin, 31.05.2010 в 10:56. |
|
#2
|
||||
|
||||
|
Добавь объявление процедуры
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
procedure Baby (x,y:integer; color:TColor);
var
Form1: TForm1;
x,y: integer;
implementation
{$R *.dfm} |
|
#3
|
|||
|
|||
|
Объявление добавлять не нужно. Во-первых, посмотрите в инспекторе объектов, установлено ли событие OnTimer у Timer1 на вкладке Events. Во-вторых, в последней строчке кода поменяйте цвет на более видимый, например черный.
Код:
baby(x,y,clBlack); |