![]() |
stack überlauf beim schließen
Guten Morgen Freunde der Kunst,
beim Beenden meines Programmes über das X rufe ich eine Prozedur auf, jedoch kommt es stattdessen zu einem stack overflow an der stelle.
Delphi-Quellcode:
Das Programm prüft also beim schließen durch das X ob sich in einem RichEdit ein Text befindet, der noch nicht gespeichert wurde. Nun sollte die ButtonExitClick Prozedur aufgerufen werden die das prüft und einen Dialog aufruft. Falls sich nichts in dem RichEdit befindet bzw. schon gespeichert wurde, dann soll das Programm einfach beendet werden können, andernfalls ruft es zum speichern auf. Warum kommt es hier zu einem stack overflow und wie kann ich das lösen?
procedure TForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin ButtonExitClick(self); action := caNone; end; procedure TForm.ButtonExitClick(Sender: TObject); var intDialogResult:integer; begin if (length(MainRichEdit.text) > 0) and (bolsaved = false) then begin intDialogResult := MessageDlg('Möchten Sie die Änderungen speichern?', mtWarning, [mbYes,mbNo,mbCancel], 0); case intDialogResult of 6: begin SaveAsButtonClick(self); end; 7: begin ApoTabThemen.Close; ApoTabPPP.Close; close; end; end; end else begin ApoTabThemen.Close; ApoTabPPP.Close; close; end; end; Die ButtonExitClick wird auch von einem speedbtn ausgelöst, hier funktioniert es ohne Probleme. Danke |
Re: stack überlauf beim schließen
Du rufst nochmal im FormClose indirekt über ButtonExitClick nochmals close auf.
|
Re: stack überlauf beim schließen
also ruft das Close; indirekt das OnClose; event auf... alles klar danke :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz