• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Двигающиеся кнопочки в Lazarus

Mirenetto

Новые
Регистрация
7 Ноя 2016
Сообщения
23
Реакции
7
Баллы
0
Двигающиеся кнопочки в 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;
 
Что таймер отрабатывает? Не совсем ясно, что должно происходить...
По нажатии Button1 та сдвигается на 10 пикселей вправо. Это понятно. Какой обработчик нажатия Button2?
 
Если кнопка должна двигаться непрерывно, то одним нажатием кнопки она будет сдвигаться только на 10.
 
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;
 
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;
это чтобы кнопка с формы совсем не убежала :)
 
Назад
Сверху