Mit Tabulator EditPosition setzen



  • Hallo Community,

    Ich habe folgendes Problem. Ich habe ein Objekt angelegt, das von einem TPanel abgeleitet ist. auf dem Panel liegen verschieden Viele TLabels.
    Wenn jemand auf ein Label klickt erhält er ein TEdit in der geleichen Größe
    um dort eine Eingabe zu tätigen.

    Nun würde ich gerne, wenn es mehrere Labels gibt, machen das der Nutzer mit dem Tabulator in das nächste TLabel Objekt hüpfen kann und die TEdit box mitwandert

    Also er gibt was ein in das erste Label mit dem Edit
    und drückt anschließend TABULATOR und das Edit wechselt auf das zweite um dort eingaben vorzunehmen.

    wollte den TABULATOR im KeyPress oder KeyDown abfangen..aba da läuft er nicht rein
    stattdessen wechselt er innerhalb der Form auf den Button.

    Kann man das iwie mit Taborder regeln?!
    oder muss ichs direkt auf dem Formular handeln?!



  • Du kannst bei KeyUp wie folgt die Tablulator Taste abfragen

    void __fastcall TForm4::Edit1KeyUp(TObject *Sender, WORD &Key, TShiftState Shift)
    {
    	if (Key == '\t') {
    		//Tabulator wurde gedrückt
    	}
    }
    


  • Ja in diese routine läuft er tatsächlich.

    Problem hierbei für mich.

    Ich habe ein Formular, auf diesem Formular gibt es 2 Edit Felder,
    2 Buttons, und dann kommt mein Objekt mit den Labels und dem einen Edit...

    Ich habe das KeyUpEvent, dem Edit in meinem Objekt zu geordnet da er ja nur dann wenn das offen ist und die TAB-Taste betätigt wird in das nächste Label weiterspringen soll.

    Jedoch springt er dann erst In die anderen beiden Edits und Buttons und dann kommt er erst wieder zu meinem Edit und führt dort dann den Code aus..

    Hab dem Edit schon TabOder = 0 verpasst und TabStop true?!
    mhh Ist das dann nicht möglich oder fehlt noch ein kleines Detail?!



  • Hier sind noch ein paar varianten wie man die Tabulator Taste abfängt

    http://www.swissdelphicenter.ch/de/showcode.php?id=591


Anmelden zum Antworten