Hallo,
@Sir Rufo: Soweit ich das Verstanden habe wollte er kein Modal-Form haben.
Du hast recht ... es war modal und jetzt nicht mehr ...
Ich würde es einfach so machen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if Assigned(TestForm) then
begin
ShowMessage('Schon da');
TestForm.Show;
end else
begin
TestForm:=TForm2.Create(Self);
end;
end;
öhhm ... würde ich so machen
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if not Assigned( Form2 ) then
begin
Form2 := TForm2.Create( Self );
end
else
begin
ShowMessage( 'Schon da' );
end;
Form2.Show;
end;
Delphi-Quellcode:
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
Caption:= 'Form1 - Test';
Show;
end;
procedure TForm2.FormDestroy(Sender: TObject);
begin
if Assigned(TestForm) then
begin
TestForm:=NIL;
end;
end;
end.
Bis bald Chemiker
Das kann aber auch ins Auge gehen, wenn es 2 Instanzen von TForm2 gibt. Darum besser so
Delphi-Quellcode:
procedure TForm2.FormDestroy(Sender: TObject);
begin
// Nur wenn die aktuelle Instanz mit der in der globalen Variablen "Form2" gespeicherten übereinstimmt
if Form2 = Self then
begin
Form2 := NIL;
end;
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)