Как мне вызвать любую процедуру или функцию внутри блока инициализации любого модуля в DELPHI - PullRequest
0 голосов
/ 25 января 2020

Я пытаюсь вызвать процедуру в блоке инициализации моего устройства, так как я хочу, чтобы эта процедура выполнялась при запуске приложения, прежде чем что-либо еще. Компилятор показывает эту ошибку:

[dcc32 Error] Unit2.pas(152): E2076 This form of method call only allowed for class methods or constructor

Вот так выглядит моя процедура

procedure TForm2.initilize()   ;
      begin
  ListBox2.Items.Add('Mohit');
  ListBox2.Items.Add('Raghav');
  ListBox2.Items.Add('Maninder');
  ListBox2.Items.Add('Tanya');
      end;

, и именно здесь при инициализации выполняется вызов

initialization
begin
     TForm2.initilize();
end;

1 Ответ

0 голосов
/ 26 января 2020

Я предпочитаю класс c конструктор . Преимущество состоит в том, что вы можете использовать один и тот же метод даже для фреймов, потому что фреймы не имеют OnCreate.

interface
...
type
TForm2 = class(TForm)
private
  procedure initialize;
  ...
public
  constructor Create(AOwner: TComponent); override;
  ...
end;

implementation

constructor TForm2.Create(AOwner: TComponent);
begin
  inherited;
  initialize;
end;
...