Условие создания главной формы
01.01.2007
Существует ли в 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 форм заключена в никогда не выполнимый блок, тем самым приводя компилятор в состояние свинячего восторга.

