Условие создания главной формы

{codecitation class=»brush: pascal; gutter: false;» width=»600px»}

Автор: Neil Rubenking

Существует ли в Delphi возможность создавать главную форму по условию? Я хочу использовать условие IF (в зависимости от передаваемого параметра) для того, чтобы определить какая форма будет главной при старте приложения. Фактически «другую» форму НЕ нужно будет загружать.

Хитрость здесь заключается в том, что мы предоставляем компилятору весь необходимый для создания форм код, но не допускаем его выполнения (IF FALSE THEN), при этом компилятор не ругается, а мы тем временем (во время выполнения приложения) выбираем и создаем главную форму. Вот пример кода, измененный .DPR-файл, который при старте случайным образом выбирает из друх форм главную:

begin

if FALSE then

begin

Application.CreateForm(TForm1, Form1);

Application.CreateForm(TForm2, Form2);

end;

Randomize;

if Random < 0.5 then

Application.CreateForm(TForm1, Form1)

else

Application.CreateForm(TForm2, Form2);

Application.Run;

end.

Пара «подходящих» для CreateForm форм заключено в никогда не выполнимый блок, тем самым приводя компилятор в состояние свинячего восторга.

{/codecitation}

Добавить комментарий