Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Повторение автонажатия кнопки на форме


Автор: Wizlight 7.2.2011, 13:18
Например имеем на форме кнопку Button1

Код

procedure TForm1.Button1Click(Sender: TObject);
Var
begin
//Код
end.


Как сделать чтобы например с периодом в 30 сек автоматически программно нажималась эта кнопка? 
Спасибо за внимание 

Автор: kami 7.2.2011, 13:21
сделать таймер с интервалом 30 секунд и в качестве обработчика OnTimer подвесить Button1Click

Автор: Wizlight 7.2.2011, 13:44
Спасибо, кажется работает.
Правильна ли реализация? 

Создал еще одну кнопку на форме, которая б запускала таймер (Button2) в Events в Свойстве OnClick указал Timer1Timer, а в Таймере OnTimer подвесил Button1Click 

Код

procedure TForm1.Button1Click(Sender: TObject);
Var
begin
//Код
end.

procedure TForm1.Timer1Timer(Sender: TObject);
begin
        Timer1.Interval:=5000;
end;

Автор: kami 7.2.2011, 13:50
Wizlight, без 100 грамм не разберешься smile
Если нужно, чтобы автонажатие начиналось сразу при создании формы, то дополнительных кнопок не нужно.
у таймера есть свойство Enabled (доступно через Инспектор объектов). И если его поставить в True, то таймер начнет автоматом срабатывать через заданные промежутки времени.
Если же нужно действительно активировать таймер через другую кнопку, то код события OnClick этой кнопки будет состоять из 1 строки:
Код

procedure TForm1.Button2Click();
begin
  Timer1.Enabled:=True;
end;


Еще раз:
У Button2 - своя процедура OnClick, код которой просто активирует таймер.
У Button1 - своя процедура OnClick, код которой выполняет нужные действия.
У Timer1 - процедура onTimer равна Button1Click.

иначе сами запутаетесь smile

Добавлено через 4 минуты и 35 секунд
Цитата(Wizlight @  7.2.2011,  13:44 Найти цитируемый пост)
procedure TForm1.Timer1Timer(Sender: TObject);
begin
        Timer1.Interval:=5000;
end;

Кстати, этот код просто делает период срабатывания таймера равным 5 секунд. И не меняет активность таймера. То есть, если Timer1.Enabled было False, то работать таймер не начнет.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)