müsste es nicht heißen:
Delphi-Quellcode:
TframeOptionsClass = class of TframeOptions;
function TformMain.ShowWindow(pFrame: TFrame; pFrameClass: TframeOptionsClass): TForm;
damit geht natürlich die Variabilität verloren.
TFrameClass weiß ja nix von Deinem Constructor. Ich weiß jetzt nur nicht auf anhieb, ob man KLassentypen wieder Casten kann:
Delphi-Quellcode:
if pFrameClass is TframeOptions then
TframeOptions(pFrameClass).Create