Вызов процедуры в Delphi - PullRequest
0 голосов
/ 24 марта 2012

У меня процедура с Sender: TObject paramater

procedure TForm1.FormCreate(Sender: TObject);

Как я могу снова вызвать эту процедуру?

Эта версия не работает:

TForm1.FormCreate(Sender: TObject);

Заранее спасибо.

1 Ответ

5 голосов
/ 24 марта 2012

Я предполагаю, что вы хотите вызвать процедуру FormCreate экземпляра TForm1.

Вы можете сделать FormCreate(Self) или FormCreate(nil) (или вы можете передать любой экземпляр TObject в качестве параметра), если вы находитесь внутри класса TForm1. В противном случае вы должны написать Form1.FormCreate(Self) или Form1.FormCreate(nil) или аналогично, где Form1 - это соответствующий экземпляр из TForm1.

Во всяком случае, не особо «элегантно» вызывать процедуру FormCreate в более позднее время. В самом деле, название ясно указывает на то, что процедура вызывается при создании формы.

Если на других этапах требуется определенный фрагмент логики вашего FormCreate метода, и вы просто не хотите дублировать код, вам, вероятно, следует реализовать этот фрагмент в виде отдельного метода (процедуры или функции) и вызвать это в FormCreate, а также в других частях вашей программы, при необходимости.

Но тогда вам, возможно, будет лучше переместить эту часть вашей бизнес-логики из FormCreate вообще. В FormCreate мы обычно создаем / инициализируем объекты, которые впоследствии неинициализируются / уничтожаются в FormDestroy (при необходимости). Итак, подумайте , что вы делаете в FormCreate, возможно, есть лучшее, логически более подходящее место для некоторых или всех действий, которые вы реализовали в этом методе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...