Если у вас есть код в клике обработчике, который должен быть вызван в другом месте, то правильный подход был бы реорганизовать эту работу на отдельные методы. Программные нажатия кнопок в качестве средства для запуска обработчиков событий в качестве средства для выполнения кода - это просто плохая практика. Как отмечали другие, метод в вашем вопросе должен работать эквивалентно, но это стиль программирования, которого следует действительно избегать.
Например, если у вас есть:
procedure TForm1.btnResetClick(Sender: TObject);
begin
//
// here some actions are taken
//
//
end;
вы можете реорганизовать в:
procedure TForm1.DoReset;
begin
//
// here some actions are taken
//
//
end;
procedure TForm1.btnResetClick(Sender: TObject);
begin
DoReset;
end;
таким образом, если вам нужно DoReset
вне контекста обработчика щелчка вы можете просто написать:
if pos(hexFileVersion, currentFWVersion) = 0 then begin
Memo1.Lines.Add('Versions are different from each other, updating...');
DoReset;
DoCaptureTarget;
DoBProgram;
DoBResetLIA;
end;
Обработчики событий пользовательского интерфейса, как правило, должны быть очень легкий - у них должен быть как можно меньше кода. Если бизнес-логика начинает проникать в них, это должно быть сильным признаком того, что вам нужно их убрать.
между ... ** и ** ...? –
Невозможно сказать. Метод Click работает нормально. Вы не сказали, что пошло не так, что вы ожидаете и т. Д. Эти сны кажутся фиктивными. –
между написанием «xxx.click» и одним нажатием кнопки ... – Muammer