Цитата:
Сообщение от fuzo
создаю новый проект копирую код, добавляю таймер. Но почемуто на форме ничег оне происходит 
|
Нужно было сперва создать обработчики событий OnPaint и OnTimer, а уже потом вставлять в них код или на вкладке Events назначить процедуры в качестве обработчиков. Иначе эти процедуры не будут связаны с объектами.
Вот я сделал всё в виде одной процедуры, так будет проще:
Код:
procedure WalkingMan(Canvas: TCanvas; Width: Integer; var X1, X2, I: Integer);
begin
if X1 < Width then
X1 := X1 + 20
else
X1 := 20;
if I < 7 then
Inc(I)
else
I := 0;
case I of
0:X2 := 20;
1:X2 := 15;
2:X2 := 10;
3:X2 := 5;
4:X2 := 0;
5:X2 := 5;
6:X2 := 10;
7:X2 := 15;
end;
with Canvas do
begin
FillRect(Canvas.ClipRect);
Ellipse(X1 - 20, 10, X1 + 20, 50);
MoveTo(X1, 50);
LineTo(X1, 100);
MoveTo(X1 - X2, 100);
LineTo(X1, 50);
LineTo(X1 + X2, 100);
MoveTo(X1 - X2, 150);
LineTo(X1, 100);
LineTo(X1 + X2, 150);
end;
end;
Объяви три глобальных переменных типа Integer:
Код:
var
Form1: TForm1;
A, B, C: Integer;
и в OnTimer вызывай эту процедуру таким образом:
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
WalkingMan(Form1.Canvas, Form1.Width, A, B, C);
end;