Aquí va otra idea:
Para crear el formulario con nombre dado puedes definir el siguiente método en el formulario principal:
Código Delphi
[-]
procedure TForm1.CreateForm(FormName: String);
var
FormClass: TPersistentClass;
begin
FormClass := GetClass(FormName);
if Assigned(FormClass) and (FormClass.InheritsFrom(TForm)) then
with TFormClass(FormClass).Create(Application) do
Show;
end;
Para que esto funcione, el formulario principal debe incluir en el
uses, las unidades de los otros formularios, y cada uno de esos otros formularios debe incluir una sección
initialization donde registre la clase del formulario:
Código Delphi
[-]
unit Unit2;
interface
type
TForm2 = class(TForm)
...
end;
implementation
...
initialization
RegisterClass(TForm2);
end.
Es un poco más de trabajo, pero permite iniciar sin tener creados los formularios.
// Saludos