Hallo zusammen
Sorry für den Titel...Ist vielleicht etwas undeutlich formuliert.
Ich hab da ein Problem. Ich hab zwar schon die
DP durchsucht und die
OH bemüht, aber leider nix passendes gefunden. Also Da mir der Standard MessageDlg nicht gefällt, wollte ich mir selber einen machen. Ich wollte das so machen, dass ich dann in ein anderes Programm einfach die
Unit einbinde und dann über eine Funktion einen Rückgabewert erhalte. Soweit so gut. Ich erstelle also ein dynamisches Form und zwei dynamische Buttons, denen ich jeweils eine andere Prozedure zuweise (Hab dazu was im Forum gefunden). Nun ja, das funzt auch alles ganz prächtig, nur wird irgendwie anscheinend der Speicher nicht ganz freigegeben. Soll heißen, ich rufe die Funktion aus einem anderen Formular auf => es erscheint der Dialog mit dem dyn. erzeugten Form => ich klicke auf "Ja" oder "Nein" und dann schließt sich das Fenster auch und gibt den Korrekten Wert zurück. Aber im Taskmanager bleibt auch nach dem Schließen des Dialogs der Speicherverbrauch der Anwendung gleich
Also ich meine, zuerst hat die Anwendung zu, Beispiel 2.800 K und ab dem Aufruf des Dialogs dann 2.844. Beim nächsten Aufruf des Dialogs wird es entsprechend mehr. Kann mir da wer weiterhelfen? Mein Code is der folgende. Hab ich vielleicht irgendwas falsch freigegeben?
Danke schon mal. Man liest sich, Stanlay
Delphi-Quellcode:
procedure SetNo(Sender: TObject);
procedure SetYes(Sender: TObject);
function JesOrNo: Boolean;
procedure QuestionForm;
implementation
var Form : TForm;
BtnYes : TButton;
BtnNo : TButton;
Bool : Boolean;
procedure QuestionForm;
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';
@OnClick := @SetYes;
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';
@OnClick := @SetNo;
end;
Form.ShowModal;
end;
procedure SetNo(Sender: TObject);
begin
Bool := false;
Form.Close;
end;
procedure SetYes(Sender: TObject);
begin
Bool := true;
Form.Close;
end;
function JesOrNo: Boolean;
begin
QuestionForm;
JesOrNo := Bool;
BtnYes.Destroy;
BtnNo.Destroy;
Form.Destroy;
end;