das Form2 ist in den Optionen auf verfügbar eingestellt?
Ja ... ich kann leider nicht nur mit "Ja" antworten, da es anscheinend eine zu kurze Antwort ist!
Habe das jetzt so gelöst...
Delphi-Quellcode:
unit1;
..
type
TForm1 = class(TForm)
btnCreate: TButton;
btnTest: TButton;
procedure FormDestroy(Sender: TObject);
procedure btnCreateClick(Sender: TObject);
procedure btntestClick(Sender: TObject);
private
{ Private-Deklarationen }
Form2:TForm2;
public
{ Public-Deklarationen }
end;
..
procedure TForm1.FormDestroy(Sender: TObject);
begin
Form2.free;
end;
procedure TForm1.btnCreateClick(Sender: TObject);
begin
if Assigned(Form2) then
begin
Form2.BringToFront;
end
else
begin
Form2 := TForm2.Create(nil);
Form2.PFree := @Form2;
Form2.Show;
end;
end;
////////////////////////////////////////////////////////
unit2;
..
type
TForm2 = class(TForm)
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
PFree: ^TForm; // Adresse von
end;
..
procedure TForm2.FormCreate(Sender: TObject);
begin
PFree:=nil;
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TForm2.FormDestroy(Sender: TObject);
begin
if Assigned(PFree) then
begin
PFree^:=nil;
end;
end;