Einzelnen Beitrag anzeigen

Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#1

2. Form schliessen Variable=Nil

  Alt 22. Aug 2011, 17:07
Hallo,

ich glaube heute ist es zu warm.... oder ich sehe den Wald vor Bäumen nicht usw... daher brauche ich kurz Hilfe....

Szenario bisher: Form_1 erstellt zur Laufzeit eine Form_2 und zwar modal. Schön und gut. Saubere Sache.
Delphi-Quellcode:
unit1:
...
Form2:=Tform.Create(nil);
try
  Form2.ShowModal;
finally
  FreeAndNil(Form2);
end;
...

Szenario jetzt: Die Form2 soll nicht mehr modal sein, kann aber jederzeit selber geschlossen oder erstellt werden oder Inhalte ändern sich oder wird bei Programmende einfach mit geschlossen. Form2 darf, wenn nur einmal existieren.

Mein Problem gerade. Wenn die Form2 geschlossen wird dann bekommt unit1 das nicht mit und die Variable Form2 ist noch assigned, auch wenn in Form2 unter FormClose Action:=caFree; eingestellt ist.

Delphi-Quellcode:
unit1:
uses uForm2,...

Form2:TForm2;
...
procedure TForm1.btnCreateForm2Click(Sender: TObject);
begin
  if Assigned(Form2) then <--- hier knallts beim 2. Aufruf wenn Form2 geschlossen wurde, da Form2<>Nil ist!
  begin
    ShowMessage('schon da!');
    Form2.BringToFront;
  end
  else
  begin
    Form2:=TForm2.Create(nil);
    Form2.Show;
  end;
end;

...

procedure TForm1.DingeDieDieWeltNichtBraucht;
begin
  ...
  Form2.ZeigeWasAnderes;
  ...
end;
Wie setze ich Form2=nil wenn der Anwender das Form_2 schliesst?

Ich möchte aber nicht FindComponent nutzen...

Danke schon mal....
  Mit Zitat antworten Zitat