Problem mit TMaskEdit



  • Hallo Leute!

    Ich habe ein kleines Problem mit der Komponente TMaskEdit:
    Die Komponente ist bei mir in einem Formular hinterlegt und soll ein Datum beinhalten. Die Maske ist auch so programmiert.
    Gebe ich nun ein Datum in dieses Feld ein, merke aber, daß es falsch eingegeben wurde und lösche es jetzt wieder, möchte danach die Eingabe nicht wiederholen und springe in ein weiteres Feld in dem Formular, so taucht eine Fehlermeldung auf "EDBEditError". Laut Hilfefunktion hat die Eingabe in dem TMaskEdit-Feld nicht die richtige Formatierung.
    Wie kann ich diese Fehlermeldung umgehen (es soll wirklich nichts in dem Feld stehen)?
    Und wo setzte ich den Code dann ein (Habe schon eine Fehlerbehandlungsroutine in das Ereignis OnExit geschrieben. Hat aber nichts gebracht - anscheinend wird OnExit erst nach der internen Überprüfung ausgelöst)?

    Danke für die Hilfe
    Gruß
    TRSzauber 🙂



  • Lookie here! 🙂

    Die Frage ist nur, ob man statt der Message nicht eine andere Eigenschaft der Exception auswerten sollte/könnte, da es bei verschiedensprachigen Windowsinstallationen sicher Unterschiede beim Fehlertext gibt.



  • Ich hab mir den Beitrag auch einmal angeschaut
    und ne etwas bessere Überprüfung erstellt:

    //-----------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
      Application->OnException = MyExcepts;
    }
    //-----------------------------------------
    
    //-----------------------------------------
    void __fastcall TForm1::MyExcepts(TObject *Sender, Exception *e)
    {
      if( e->ClassNameIs("EDBEditError") ) 
      {
        /*MaskError trapped ;o))*/
        ((TCustomEdit *)Sender)->Clear();
        ((TWinControl *)Sender)->Focused();
      }
      else
      {
        /*All other Errors*/
        Application->ShowException(e);
      }
    }
    //-----------------------------------------
    

    Edit:
    Bitte die Code-Tags benutzen. Danke!

    [ Dieser Beitrag wurde am 20.02.2003 um 16:53 Uhr von Jansen editiert. ]



  • ein EDBEditError hat doch nix mit einem TMaskEdit zu tun! das verweist auf einen Fehler in einem datenbanksensitiven Feld und das ist ein TMaskEdit nicht!



  • Original erstellt von Sunday:
    EDBEditError hat doch nix mit einem TMaskEdit zu tun

    Sollte man denken, aber probier's doch einfach mal aus. 😉



  • hm tatsächlich ein EDBEditError... putzig, putzig...

    naja beim mir muss aber auch immer was im maskedit drin stehen. 😉

    OnExit wird tatsächlich erst nach der internen Prüfung ausgeführt und hat da keine Chance das Ding aus zu tricksen.



  • hm tatsächlich ein EDBEditError... putzig, putzig...

    Ja, laut BCPPB tritt ein EDBEditError
    auf, wenn Daten nicht zu
    einer Maske kompatibel sind. Wie in unsrem Fall.

    naja beim mir muss aber auch immer was im maskedit drin stehen. 😉

    Nicht ganz richtig, leer darf das Feld schon sein.
    Nur finde ich es für den Benutzer eines Programms hilfreicher,
    automatisch wieder in das ME-Feld zu springen den Fehler zu korrigieren
    (Z.B. durch löschen oder hinzufügen eines Wertes),
    als ständig diese Standard Fehlermeldung zu bekommen.


Anmelden zum Antworten