Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 12.09.2017, 20:03   #1 (permalink)
Mirenetto
Member
 
Регистрация: 07.11.2016
Сообщений: 23
Сказал(а) спасибо: 0
Поблагодарили 6 раз(а) в 1 сообщении
Репутация: 585
Post Двигающиеся кнопочки в Lazarus

Здравствуйте. Нужна помощь в освоении Lazarus. Не могу заставить кнопку двигаться по экрану, когда нажимаю на ту, которая должна ее запускать
Вот такой вот у меня код получился... В 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;
__________________
Хакер - это тот, кто даже в закрытом сарае может наступить на грабли
Mirenetto вне форума   Ответить с цитированием

Старый 12.09.2017, 20:03
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Прочитайте похожие темы, это не сложно

Матрицы в Lazarus
Строки в Lazarus
Lazarus и PostgreSQL
Lazarus выдает ошибку
Кнопочки...

Старый 12.09.2017, 23:30   #2 (permalink)
vasilych
Member
 
Аватар для vasilych
 
Регистрация: 17.01.2012
Адрес: Краснодар
Сообщений: 2,708
Записей в дневнике: 5
Сказал(а) спасибо: 30
Поблагодарили 254 раз(а) в 36 сообщениях
Репутация: 59322
По умолчанию

Что таймер отрабатывает? Не совсем ясно, что должно происходить...
По нажатии Button1 та сдвигается на 10 пикселей вправо. Это понятно. Какой обработчик нажатия Button2?
__________________
Одна голова - хорошо, а три - сквозной канал!©
vasilych вне форума   Ответить с цитированием
Старый 12.09.2017, 23:35   #3 (permalink)
vasilych
Member
 
Аватар для vasilych
 
Регистрация: 17.01.2012
Адрес: Краснодар
Сообщений: 2,708
Записей в дневнике: 5
Сказал(а) спасибо: 30
Поблагодарили 254 раз(а) в 36 сообщениях
Репутация: 59322
По умолчанию

Если кнопка должна двигаться непрерывно, то одним нажатием кнопки она будет сдвигаться только на 10.
__________________
Одна голова - хорошо, а три - сквозной канал!©
vasilych вне форума   Ответить с цитированием
Старый 13.09.2017, 00:13   #4 (permalink)
vasilych
Member
 
Аватар для vasilych
 
Регистрация: 17.01.2012
Адрес: Краснодар
Сообщений: 2,708
Записей в дневнике: 5
Сказал(а) спасибо: 30
Поблагодарили 254 раз(а) в 36 сообщениях
Репутация: 59322
По умолчанию

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;
__________________
Одна голова - хорошо, а три - сквозной канал!©
vasilych вне форума   Ответить с цитированием
Старый 13.09.2017, 06:34   #5 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,794
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Цитата:
Сообщение от vasilych Посмотреть сообщение
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;
это чтобы кнопка с формы совсем не убежала
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




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

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.