в dpr файлах Делфи, можно создавать объекты класса и в конце этого файла очищать

в dpr файлах Делфи, можно создавать объекты класса и в конце этого файла очищать, мой вопрос таков, скажите пожалуйста:

  1. Нижеприведённый код корректен?
  2. Как вызвать procedure function в dpr файле.
  3. Объясните пожалуйста, про dpr файл Делфи, так я знаю что в нём подключается модули программы, и происходить инициализация, но примеру какие конструкции языка мы можем использовать в dpr. Примеру можно ли в dpr файле описать процедуру и вызвать его?
program Parser;

{$I cef.inc}

uses
  Vcl.Forms,
  WinApi.Windows,
  uCEFApplication,
  uCEFConstants,
  UParser in 'UParser.pas' {Form1};

{$R *.res}
{$SetPEFlags IMAGE_FILE_LARGE_ADDRESS_AWARE}

begin
  GlobalCEFApp := TCefApplication.Create;

  if GlobalCEFApp.StartMainProcess then
begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end;

  GlobalCEFApp.Free;
  GlobalCEF

App := nil;
end.

Ответы (2 шт):

Автор решения: KoVadim
  1. Да, dpr файл это просто обычный pas файл. Там почти все также.
  2. Так само, как и в других местах.
  3. Ещё раз - dpr - это pas. Просто для удобства среды и программиста он переименован, что бы легко было найти "главный файл". Правила те же самые. Ну кроме того, что если покинуть begin-end, то выйдите с программы.
→ Ссылка
Автор решения: HemulGM

Dpr - это по сути и есть начало программы. А не в FormCreate (как считают многие новички). Именно здесь начинает исполняться программа. Исполняется она ровно до Application.Run; Т.к. внутри него бесконечный цикл обработки сообщений. Как только цикл прерывается (закрыли основное окно или вызвали Application.Terminate), то программа выходит из Application.Run; и если там больше ничего нет, то соответственно завершается.

Так что да, такой код корректен и постоянно используется в крупных проектах. Вся работа в этом файле ни чем не отличается от других мест.

→ Ссылка