Io ho fatto questa prova: ho disposto sul forum 3 controlli Edit e ho associato loro lo stesso evento OnKeyUp definendolo in questo modo:
Il codice identifica l'Edit che ha il focus e riceve l'evento di pressione del tasto. Quando la lunghezza del testo contenuto (che va limitata tramite la proprietà MaxLength) raggiunge la lunghezza massima consentita e il cursore si trova nella posizione terminante del testo, viene simulata la pressione del tasto TAB per passare al controllo successivo.codice:procedure TForm1.EditsKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); var Edit: TEdit; begin Edit := (Sender as TEdit); if (Length(Edit.Text) = Edit.MaxLength) and (Edit.SelStart = Edit.MaxLength) then Perform(CM_DIALOGKEY, VK_TAB, 0); end;
Se modifichi parte del testo che non si trovi alla fine dello stesso, non accade nulla, a meno che non premi il pulsante Fine e allora verrai automaticamente trasportato alla casella di testo successiva.
Il meccanismo può essere ovviamente migliorato e ampliato.
Ciao!![]()

Rispondi quotando