Вопрос
Какие есть способы заставить компонент (например 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 Сообщество Чайников
Контактная информация