2014-01-13 2 views
1

Я разработал две процедуры из двух кнопок для задачи 1 и задачи 2. Знаете ли вы, как создать новую кнопку, которая может повторять процедуры двух предыдущих кнопок для выполнения задачи 1 + 2 в назначенное количество раз?Как повторить процедуру кнопки

+1

Используйте [ 'actions'] (HTTP: //wiki.freepascal .org/TActionList) для этой цели. – TLama

+0

"* repeat ... task 1 + 2 в назначенное количество раз *" означает, что вы нажимаете 2 раза Button1 (-> Task1) и 3 раза Button2 (-> Task2), а на Button3 вы хотите выполнить 'Task1; Задание 1; Task2; Task2; Task2; '? –

+0

@TLama: как действия здесь помогают? – jpfollenius

ответ

2

Extract задачи в отдельные методы:

procedure TForm1.DoTask1; 
begin 
    .... 
end; 

procedure TForm1.DoTask2; 
begin 
    .... 
end; 

procedure TForm1.Button1Click(Sender: TObject); 
begin 
    DoTask1; 
end; 

procedure TForm1.Button2Click(Sender: TObject); 
begin 
    DoTask2; 
end; 

А затем добавить новую кнопку с OnClick обработчиком, как это:

procedure TForm1.Button3Click(Sender: TObject); 
var 
    i: Integer; 
begin 
    for i := 1 to N do 
    begin 
    DoTask1; 
    DoTask2; 
    end; 
end; 
+2

+1 это часто хорошая идея, так как (а) имена методов имеют тенденцию быть намного точнее и информативнее, и (б) мы можем изменить подпись, избавиться от параметра «Отправитель» и т. Д. – jpfollenius

Смежные вопросы