TMaskEdit im Batchprogramm



  • Hallo ihr lieben 👍

    Ich hab mal ne Frage zu der Komponente TMaskEdit und zwar möchte ich in meinem Batchprogramm einen String auf ein bestimmtes Format prüfen und dachte das ginge ganz einfach mit der Komponente TMaskEdit. Aber leider musste ich feststellen, dass es nicht geht.
    Er geht über die Funktion ValidateEdit ohne einen Fehler auszuspucken hinweg. Jetzt meine Frage, weiß jemand was ich falsch mache? 😕
    Hier mein Code:

    // TwwEdit Komponente bereitstellen, um die Formatmaske zu testen
     TMaskEdit *tmpEdit = new TMaskEdit(this);
    
     // Formatmaske für das Fragefeld ermitteln
     mask = glbDB->DB_GetFragefeldFormat(md,kontakt,idx-31);
    
     tmpEdit->Modified = true;
     tmpEdit->EditMask = mask;
     tmpEdit->Text = (String)addr[idx];
     //masktest = tmpEdit->IsMasked;
     try
      {
       tmpEdit->ValidateEdit();
       testpassed = true;
      }
     catch(...)
      {
       testpassed = false;
       Abort();
      }
    .....
    

    mask hat den Wert "##.##.####" (also an tmpEdit->EditMask übergeben)
    (String)addr[idx] hat den Wert "test" (was ja nicht zulässig ist)

    😃 Ich hoffe ihr könnt mir helfen oder habt anregungen für einen anderen Lösungsweg.


  • Administrator

    Ceene schrieb:

    Ich hoffe ihr könnt mir helfen oder habt anregungen für einen anderen Lösungsweg.

    Anderer Lösungsweg:
    Such zuerst mal das richtige Forum auf. Das gehört ins VCL Forum:
    http://www.c-plusplus.net/forum/viewforum-var-f-is-2.html

    Hier geht es um Standard C++ und da gibt es kein TMaskEdit, geschweige denn etwas was mit einem GUI zu tun hat 😉

    Grüssli



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum VCL (C++ Builder) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • versuch mal die Reihenfolge deiner Befehle umzustellen:

    tmpEdit->EditMask = mask;
     tmpEdit->EditText = "Test";  //oder tmpEdit->Text 
     tmpEdit->Modified = true;
    

    außerdem ist deine Maske falsch, wenn du ein Datum abfragen willst sollte die Maske folgendes Format haben: "!99/99/0000;1;_"
    das Doppelkreuz steht wahrscheinlich eher für alle Zeichen und nicht nur für Zahlen und wird deshalb nie zu einem Fehler führen

    warum bzw. was willst du auf ein bestimmtes Format prüfen? Datum? Zeit?



  • Ich will einen String auf ein bestimmtes Format prüfen.
    Wobei sich wärend der Laufzeit die Mask auch ändern kann.
    Aber im Grunde habe ich immer eine String-Variable die ich auf ein bestimmtes Format (Mask) prüfen will.



  • Hab es hinbekommen. Danke an alle.


Anmelden zum Antworten