Delphi/Lazarus: ModalResult ohne Button setzen
Frage von Gast | 14.12.2015 um 18:24
Ich habe eine Form, mit zwei Buttons, die ModalResult auf mrOk oder mrCancel setzen. Das funktioniert perfekt. Ich rufe die Form mit ShowModal auf und wenn der Nutzer auf einen der Buttons klickt, schließt das Fenster und ich kann das Ergebnis auswerten.
Nun möchte ich aber auch erlauben, dass der Nutzer nicht nur auf den Button klicken kann, sondern auch mit einer Tastenkombination das Fenster schließen kann. Dazu habe ich KeyPreview auf true und folgende Prozedur definiert.
procedure TForm2.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if key = ord(#13) then begin ModalResult := mrOk; Close; end; end;
Der Aufruf erfolgt folgendermaßen:
if Form2.ShowModal = mrOk then begin // Code nach Okay end else begin // Code nach Abbruch end;
Leider funktioniert das überhaupt nicht. Das ModalResult ist immer mrNone, obwohl ich es ja eigentlich auf mrOK gesetzt habe. Was mache ich hier falsch?
Ähnliche Themen
Delphi/Lazarus: ShowModal Result
Tipp | 0 Kommentare
Delphi/Lazarus: Link zu einer Website in einer Anwendung setzen
Tutorial | 0 Kommentare
Mouseover Buttons mit CSS ohne Nachladen
Tutorial | 0 Kommentare
jQuery: Submit-Button deaktivieren, wenn keine Checkbox ausgewählt ist
Tutorial | 5 Kommentare
Delphi/Lazarus: Passwort Edit
Tipp | 0 Kommentare
Delphi/Lazarus: Label zur Laufzeit dynamisch erstellen
Tipp | 0 Kommentare
Delphi: Mehrzeilige Caption für TLabel (zur Laufzeit und Design Zeit)
Tutorial | 1 Kommentar
Wichtiger Hinweis
Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.
Jetzt mitmachen
Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.
Das Problem liegt an dem Aufruf von Close, den du verwendest. Du solltest stattdessen das Close einfach weglassen, also:
So hat es in meinem Test gerade funktioniert. Die Form schließt dann trotzdem automatisch, darum brauchst du dich nicht zu kümmern.
14.12.2015 um 19:44