Man kann aber gefahrlos einen 2. Konstruktor erzeugen, der weitere Parameter besitzt und der dann den Standardkonstruktor aufruft.
Das macht er ja schon, aber der Standardkonstruktor versucht eben die zugehörige
DFM zu laden und wenn keine vorhanden ist, dann knallt es eben.
Es sei denn man schaltet dieses Verhalten ab oder man ruft den Standardkonstruktor nicht auf, aber Letzeres ist nicht zu empfehlen, da sonst viele und wichtige Initialisierungen des Formulars fehlen.
PS: Das
FCaption: string;
ist wohl etwas unnütze/zuviel, dazumal die Form selber schon ein Caption (siehe Self.Caption) besitzt.