Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Двигающиеся кнопочки в Lazarus (http://www.tehnari.ru/f41/t255574/)

Mirenetto 12.09.2017 20:03

Двигающиеся кнопочки в Lazarus
 
Здравствуйте. Нужна помощь в освоении Lazarus. Не могу заставить кнопку двигаться по экрану, когда нажимаю на ту, которая должна ее запускать tehno015
Вот такой вот у меня код получился... В Enabled y Timer стоит False
Код:

procedure TForm1.Button1Click(Sender: TObject);
begin
  Button1.Left:=Button1.Left + 10;
  Timer1.Enabled:=true;
  Timer1.Enabled:=not Timer1.Enabled
  if Timer1.Enabled then Button2.Caption:='Стоп'
                      else Button2.Caption:='Пуск';
end;


vasilych 12.09.2017 23:30

Что таймер отрабатывает? Не совсем ясно, что должно происходить...
По нажатии Button1 та сдвигается на 10 пикселей вправо. Это понятно. Какой обработчик нажатия Button2?

vasilych 12.09.2017 23:35

Если кнопка должна двигаться непрерывно, то одним нажатием кнопки она будет сдвигаться только на 10.

vasilych 13.09.2017 00:13

procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled:=not Timer1.Enabled;
case Timer1.Enabled of
True: Button1.Caption:='Стоп';
False: Button1.Caption:='Старт';
end;
end;


procedure TForm1.Timer1Timer(Sender: TObject);
begin
Button2.Left:=Button2.Left+10;
end;

AlexZir 13.09.2017 06:34

Цитата:

Сообщение от vasilych (Сообщение 2515623)
procedure TForm1.Timer1Timer(Sender: TObject); begin Button2.Left:=Button2.Left+10; end;

Я бы сделал так:
Код:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if Button2.left<Form1.width-Button2.width then Button2.Left:=Button2.Left+10;
end;

это чтобы кнопка с формы совсем не убежала :)


Часовой пояс GMT +4, время: 20:30.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.