Zu viele returns



  • Hi

    Ich habe folgendes Problem:
    In einer Form sind mehrere Felder in denen Eingaben vorgenommen werden können.
    Durch einen Button (OK) sollen diese dann übernommen werden.
    Vorher werden Sie aber noch überprüft und bei einer falschen Eingabe eine Fehlermeldung angezeigt Application->MessageBox

    Die Übernahme soll aber nicht nur durch einen Button, sonder auch über "RETURN" erfolgen. Wenn dann ein Fehler in den Eingaben war geht die MessageBox auf, also drücke ich "RETURN" und schon geht sie wieder auf usw.usw.

    Wie kann man dass am geschicktesten abfangen?

    Danke
    k.



  • hilft dir ev. TEdit->Focused weiter?



  • hmm...
    geht extrem einfach.

    Schau dir mal bei TButton díe Option Default an.



  • @quizzmaster genau das averursacht ja diesen fehler!
    ich könnte default auf false stellen, aber dann funktioniert das nicht mehr über "RETURN"

    @migu so aussem blauen hilft mir das garnicht, was meinst du?

    k.



  • nimm statt OnKeyUp OnKeyPress oder OnKeyDown und alles ist ok 😛



  • ich habe weder onkeyup noch onkeydown noch onkeypress benutzt, aber ich sehe mal was dann passiert...

    k.



  • achso sorry ^^ bin ich nur von ausgegangen weil ich das mal hatte.. jedenfalls funktioniert das etwa auf diese Weise bei mir:

    void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
    {
       if(KeyIstReturn(Key))
       {
        if(!pruefe_wert())
        {
          Application->MessageBox("falsch","falsch",0);
          reset_wert((TEdit*)Sender);
        }
        else
        {
          uebernehme_wert((TEdit*)Sender);
        }
      }
    }
    

    [ Dieser Beitrag wurde am 08.05.2003 um 15:50 Uhr von dreaddy editiert. ]

    [ Dieser Beitrag wurde am 08.05.2003 um 15:51 Uhr von dreaddy editiert. ]



  • 1. reagierst du da auch jeden Tastendruck
    und zweitens funktioniert das so eben auch nicht bei mir....
    soll heissen, ich habe das so ausproboert, lande aber trotzdem immerwieder in der blöden MessageBox

    k.



  • Naja wie du abfängst das es nur bei Return kommt solltest du hinbekommen 😛 habs ja auch 1 minute vor deinem Post noch reinedititiert.

    Und bei mir geht es, deinen Effekt habe ich nur wenn ich den Kram in das KeyUp Ereignis packe.

    Erschaff mal ein neues Projekt und mach da eine Editbox rein mit dem untengenannten Ereignis... sprich ins KeyPress eine MessageBox.

    Ich vermute mal das du bei deiner Form oder so irgend ein flag falsch gesetzt hast.



  • Original erstellt von <konvenienz>:
    **Hi

    Ich habe folgendes Problem:
    In einer Form sind mehrere Felder in denen Eingaben vorgenommen werden können.
    Durch einen Button (OK) sollen diese dann übernommen werden.
    Vorher werden Sie aber noch überprüft und bei einer falschen Eingabe eine Fehlermeldung angezeigt Application->MessageBox

    Die Übernahme soll aber nicht nur durch einen Button, sonder auch über "RETURN" erfolgen. Wenn dann ein Fehler in den Eingaben war geht die MessageBox auf, also drücke ich "RETURN" und schon geht sie wieder auf usw.usw.

    Wie kann man dass am geschicktesten abfangen?

    Danke
    k.**

    Nochmal:

    mit Default = true;

    Wenn dir das nicht hilft, weil die MessageBox immer aufgeht, ist ein Fehler in deiner ButtonClick Funtion.



  • stimmt, ich habs in einem neuen projekt ausprobiert, einfach default = true und alles ist in ordnung, wieso aber nicht bei nicht bei meinem grossen projekt,
    naja werde mal ein wenig suchen.

    vielleich hat ja noch jemand ideen

    danke

    k.


Anmelden zum Antworten