Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TMaskEdit Fehlermeldung abfangen (https://www.delphipraxis.net/86720-tmaskedit-fehlermeldung-abfangen.html)

RaSoWa1 18. Feb 2007 16:48


TMaskEdit Fehlermeldung abfangen
 
Hallo,

wie kann ich die Fehlermeldung "Invalid input value. Use escape key to abandon changes" abfangen, wenn der Nutzer ein unvollständige Eingabe macht?

Ich möchte dafür eine eigene Meldung ausgeben.

Ich Danke schon mal Vorraus.

Gruß Klaus.

marabu 18. Feb 2007 18:37

Re: TMaskEdit Fehlermeldung abfangen
 
Hallo Klaus,

da gibt es sicher sehr verschiedene Ansätze, je nachdem welche Ansprüche du hast. Wie wäre es hiermit:

Delphi-Quellcode:
procedure TDemoForm.ApplicationEventsException(Sender: TObject;
  E: Exception);
begin
  if E.Message = SMaskEditErr
    then ShowMessage('Kick it!')
    else ShowException(E, ExceptAddr);
end;
Ich verwende dabei die Komponente TApplicationEvents.

Freundliche Grüße

RaSoWa1 18. Feb 2007 19:23

Re: TMaskEdit Fehlermeldung abfangen
 
Hallo Achim.

Danke, du hast mir wieder geholfen.

Ich habe aber noch ein Problem. Die Fehlermeldung kommt immer 2 x. Das liegt nicht an deinem Code. Die doppelte Meldung kommt schon vom TMaskedit. Wieso?

Viele grüße Klaus

marabu 18. Feb 2007 19:28

Re: TMaskEdit Fehlermeldung abfangen
 
Kann es sein, dass die Meldung nur innerhalb der IDE zweimal ausgegeben wird? Und kann es auch sein, dass du bei den Debugger-Optionen unter Sprach-Exceptions einen Haken bei "Bei Delphi-Exceptions anhalten" gemacht hast? Außerhalb der IDE sollte der Code sich so verhalten wie du es erwartest.

Freundliche Grüße

RaSoWa1 18. Feb 2007 21:20

Re: TMaskEdit Fehlermeldung abfangen
 
Hallo Achim.

Ich habe inzwischen was gefunden. Mit
Delphi-Quellcode:
procedure TFmAuftrag.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if Key = 13
  then PostMessage(Handle, WM_NEXTDLGCTL, 0, 0);
end;
erlaube ich die Eingabe mit der Enter-Taste abzuschließen. Wenn ich den Code herausnehme funktioniert es ganz normal.
Ich werden diesen Punkt morgen mal genauer unter die Lupe nehmen.

Gruß Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz