СообЧа > База Знаний > Программирование > Delphi

Вопрос

Какие есть способы заставить компонент (например Shape) самому двигаться по форме ?

Ответ

У компонента Shape нет методов, позволяющих ему самому двигаться по форме, зато у него есть свойства Left и Top, определяющие координаты его левого угла на форме. Их можно изменять. Лучше всего это делать через Timer (вкладка System). Установите свойство Interval таймера в 1 и Shape «поедет»:

procedure TForm1.Timer1Timer(Sender: TObject);

begin

Shape1.Left := Shape1.Left + 1;

Shape1.Top := Shape1.Top + 1;

end;



Если же использовать такие свойства Shape, как Width и Height, то можно сделать следующее:

procedure TForm1.Timer1Timer(Sender: TObject); const dx: integer = 1; dy: integer = 1; begin with Shape1 do begin Left := Left + dx; Top := Top + dy; if (Left <= 0) or (Left + Width >= Form1.Width — 10) then dx := -dx; if (Top <= 0) or (Top + Height >= Form1.Height — 35) then dy := -dy; end; end;

Из конференции Expert_FAQ



Copyright © 2000-2004 Сообщество Чайников
Контактная информация