Problem mit SendMessage



  • Hi,

    Habe das Problem, ich möchte das ich mit der ENTER taste dann ein TAB ausgelöst wird.

    Habe schon was probiert geht aber nicht ...

    void __fastcall TMainWin::Edit1KeyUp(TObject *Sender, WORD &Key, TShiftState Shift)
    
    {
    if (Key == 13) {
    	SendMessage(Handle,WM_KEYUP,VK_TAB,0);
    }
    }
    //---------------------------------------------------------------------------
    

    Ich hoffe das mir einer helfen kann



  • Klappt denn

    if (Key == VK_RETURN)
    {
        Key = VK_TAB;
    }
    

    nicht?

    Edit: Obiges sollte für ein Multiline-Edit ein Tab-Zeichen erzeugen.
    Du möchtest aber wahrscheinlich zum nächsten Control springen, dann s. FAQ: Mit Return statt Tab zum nächsten Feld wechseln



  • Nee geht nicht aber das ...

    if (Key == 13)
    {
    	Edit3->SetFocus();
    }
    

    Hätte ich auch selbst drauf kommen können 🙂

    trozdem Danke



  • eine weitere Möglichkeit wäre:

    if(Key == VK_RETURN)
    Perform(WM_NEXTDLGCTL,1,0);

    Der zweite Parameter steuert die Richtung:
    Perform(WM_NEXTDLGCTL,1,0); => nächstes Dialogelement => wie Tab
    Perform(WM_NEXTDLGCTL,0,0); => vorheriges Dialogelement => wie Shift + Tab



  • Danke geht auch 🙂

    Nur bei mir ist das anders herrum

    Perform(WM_NEXTDLGCTL,0,0); => nächstes Dialogelement => wie Tab
    Perform(WM_NEXTDLGCTL,1,0); => vorheriges Dialogelement => wie Shift + Tab

    Aber Trozdem Danke 😉


Anmelden zum Antworten