Shortcut "Escape" fängt "Escape"-Senden

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
_ny
Beiträge: 40
Registriert: Do 18. Okt 2007, 13:40

Shortcut "Escape" fängt "Escape"-Senden

Beitrag von _ny »

Hallo,

bei Druck auf "Escape" wird die Routine zum Beenden des Programmes ausgelöst. Entweder, das Programm wird geschlossen, oder, falls noch diverse Fenster offen sind, wie die Suche oder ein Bearbeiten-Modul, werden diese erst geschlossen. Sieht dann so aus.

Das ganze sieht dann in einer Prozedure so aus:

Code: Alles auswählen

if _globalExit then
    Close
  else begin
 
  case pc_main.ActivePageIndex of
  0: pan1_bottomleft.Width := _widthSucheClose;
  2: begin
       if MessageDlg('Änderungen verwerfen?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
       begin
         pc_main.ActivePageIndex := 0;
         ts_FirmaBearbeiten.TabVisible := False;
         _globalExit := True;
       end else begin
         _globalExit := False;
         Exit();
       end;
     end;
  end;
 
  _globalExit := True;
 
  end;
Wenn ich nun im PageControl auf Seite 2 bin und die Escape-Taste drücke wird nach obiger Anweisung erst eine Dialogbox aufgerufen und der Anwender gefragt, ob er Änderungen verwerfen will. Der drückt dann wiederum die Escape-Taste um quasi als ModalResult "No" zu senden. Die Dialogbox verschwindet daraufhin. So solls sein.
Wenn ich gleich darauf wieder auf Escape drücke, erscheint der Dialog danach nur noch kurz und schließt sich wieder - so als würde die "Escape-Taste" noch irgendwo hängen, zwischengespeichert, und jetzt erst ihr Signal senden.

Woran kanns liegen?

Ich hoffe ich habs einigermaßen einleuchtend erklärt, danke euch schonma :)

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

_globalExit ist sicherlich dann noch true oder?
Hast dus schonmal mit dem Debugger probiert?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

_ny
Beiträge: 40
Registriert: Do 18. Okt 2007, 13:40

Beitrag von _ny »

ne, _globalExit ist jedesmal "False"... hab ich auch mit dem Debugger überprüft. Selbst mit dem Debugger bekomm ich nur mit, dass der MessageDialog gleich wieder zugeht, half mir auch nicht weiter

Antworten