Hi,
Zitat von
OregonGhost:
Ach so, jetzt verstehe ich langsam. Also geht es dir sonstwo vorbei, ob der Benutzer nun Alt+F4 oder X gedrückt hat, du willst nur wissen, ob das der Fall war oder dein Abbrechen-Button, der im Endeffekt die Prozedur abbricht, die aber wiederum das Schließen vornimmt. Kann man das ungefähr so zusammenfassen:
Delphi-Quellcode:
begin
while not CancelClicked do begin
DoSomething;
end;
Close;
end;
procedure TMyForm.CancelButtonClick(...);
begin
if MessageDlg(...) = mbYes then begin
CancelClicked := true;
end;
end;
Das ist schon mal absolut richtig. So sehen meine Schleife und meine Abbruchbedingung auch in etwa aus (bei mir über Event-Steuerung).
Aber ich kann nicht darauf warten, dass meine Prozedur (wie die while-schleife) fertig ist und danach im FormCloseQuery auf eine Variable zugreift, die erst nach Beenden dieser Prozedur gesetzt wird.
Wenn ich dort bei der CloseQuery abfragen wollte, ob abgebrochen werden soll und der Benutzer mit Nein antwortet, kann ich nicht in der Bearbeitungsprozedur weitermachen, die ist ja schon beendet.
Im Prinzip müsste das, was ob in CancelButtonClick steht aufgerufen werden, wenn ich das [x] (oder Alt+F4) drücke.
MFG
Lorenz
Ich habe viel von meinem Geld für Alkohol, Weiber und schnelle Autos ausgegeben ... Den Rest habe ich einfach verpraßt.
George Best - 22.05.1946 - 25.11.2005 - nordirischer Fußballspieler