Klar, kann ich das.
Du erzeugst Dein Fenster hiermit:
Delphi-Quellcode:
procedure TFrmMain.ModalesFensterffnen1Click(Sender: TObject);
var
ModalesFenster : TFrmModalesFenster;
begin
ModalesFenster := TFrmModalesFenster.Create(self);
ModalesFenster.Show;
end;
Beachte, dass Du hier die Variable ModalesFenster deklarierst und damit das Fenster erstellst und aufrufst.
In Deinem modalen Fenster erzeugst Du damit Deinen Frame (das ist der alte Code!):
Delphi-Quellcode:
procedure TFrmModalesFenster.btnAnzeigenClick(Sender: TObject);
var
MeineFrame : TMeineFrame;
begin
MeineFrame := TMeineFrame.Create(self);
MeineFrame.Parent := FrmModalesFenster;
end;
Du setzt den Parent auf FrmModalesFenster, welches aber, da Du oben eine eigene Variable definiert hast, gar nicht initialisiert ist.
Das heißt, Du setzt den Parent auf eine nicht initialisierte Variable, demnach wird das Fenster nicht angezeigt.
Um das Problem zu lösen, kannst Du entweder mit Self arbeiten, oder Du änderst den Code zum Erstellen des Fenster wie folgt ab:
Delphi-Quellcode:
procedure TFrmMain.ModalesFensterffnen1Click(Sender: TObject);
begin
FrmModalesFenster := TFrmModalesFenster.Create(self);
FrmModalesFenster.Show;
end;
So klappt es dann auch wieder.