Öffne den Dialog mehrmals und schau wie sich dann der Speicher entwickelt.
Manchmal bleiben Handles für die spätere Verwendung erhalten.
Desweiteren...
Delphi-Quellcode:
function JesOrNo: Boolean;
begin
QuestionForm;
FreeAndNil(Form); // Zerstört rest mit
end;
Oder sauberer...
Delphi-Quellcode:
function JesOrNo: Boolean;
implementation
function JesOrNo: Boolean;
begin
Form := TForm.Create(nil);
With Form do
begin
Caption := 'Möchten Sie den Button sichtbar lassen?';
Width := 500;
Height := 250;
Left := Screen.WorkAreaWidth div 2 - Width div 2;
Top := Screen.WorkAreaHeight div 2 - Height div 2;
end;
BtnYes := TButton.Create(Form);
With BtnYes do
begin
Parent := Form;
Width := 50;
Height := 25;
Left := Form.Width div 2 - Width div 2 - Width;
Top := Form.Height div 2 - Height div 2 - Height;
Caption := 'Ja';
ModalResult := mrYes; // <--- NEU
end;
BtnNo := TButton.Create(Form);
With BtnNo do
begin
Parent := Form;
Width := 50;
Height := 25;
Left := Form.Width div 2 - Width div 2 + Width;
Top := Form.Height div 2 - Height div 2 - Height;
Caption := 'Nein';
ModalResult := mrNo;
end;
Result := Form.ShowModal = mrYes;
Form.Free;
end;
Sieht doch einfache aus...
Man hätte haber Liebe die Sache
OOP-mäßig lösen sollen...
[edit=Christian Seehase]Schliessendes Delphi-Tag korrigiert. Mfg, Christian Seehase[/edit]