Kann ich nicht nachvollziehen.
Lad doch mal ein Beispiel hoch.
Das hier funktioniert:
Delphi-Quellcode:
type
TForm1 = class(TForm)
Label1: TLabel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
end;
TF2 = class(TForm1)
end;
var
Form1: TForm1;
F2: TF2;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
if F2 = nil then
begin
F2:= TF2.Create(self);
F2.ShowModal;
FreeAndNil(F2);
end;
end;