00 Stimmen

Delphi/Lazarus: ModalResult Button abbrechen und Form nicht schließen

Frage von Gast | 12.12.2015 um 00:13

Ich benutze ModalResult-Buttons auf meiner Form, so dass beim schließen der Form entweder mrOk oder mrAbort zurückgegeben wird. Die Form rufe ich entsprechend mit ShowModal auf.

Das funktioniert auch alles, jedoch möchte ich vor dem Klick auf OK prüfen, ob alle Daten richtig eingegeben wurden. Nur in diesem Fall soll die Form geschlossen werden, andernfalls soll nur eine Fehlermeldung angezeigt werden und die Form soll nicht geschlossen werden, so dass der Nutzer seine Daten ändern kann.

Gibt es da irgendeine Möglichkeit, im Click-Event eine Prüfung durchzuführen? Ich habe es schon mit abort probiert, so wie es auch beim PopUp gemacht wird, aber funktioniert hat das nicht.

AntwortenPositivNegativ
Avatar
1Beste Antwort1 Stimme

Du kannst einfach im OnClick-Event ModalResult auf mrNone setzen, dann erreichte genau, was du wolltest.

Also zum Beispiel so:

procedure TForm2.Button1Click(Sender: TObject);
begin
  
  if Edit1.Text = '' then begin
    ShowMessage('Bitte geben Sie etwas ein!');
    ModalResult := mrNone;
  end;

end;

Hier möchten wir die Form nur dann schließen, wenn etwas in das Edit-Feld eingetragen wurde. Daher überprüfen will, ob der Inhalt von Edit1 leer ist und falls ja geben wir eine Meldung mit ShowMessage aus und setzen das ModalResult auf mrNone, womit das Fenster nicht geschlossen wird.
12.12.2015 um 20:43

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

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.