Jak po wpisaniu tekstu do pola TEdit1 automatycznie przechodziło do wpisywania tekstu do pola TEdit2.
Mam ustawione że w obydwóch max 1 znak. I chodzi mi oto żeby po wpisaniu tego jednego znaku przechodziło do pola nr 2.
Czy ktoś wie jak to ustawić ?
Wygeneruj sobie zdarzenie OnChange
i sprawdź w nim, czy długość tekstu w kontrolce wynosi 1
. Jeśli tak, to wywołaj metodę SelectNext
z kontrolki rodzica – zobacz do dokumentacji jak się jej używa.
Tylko bierz pod uwagę to, że jeśli obie kontrolki będą już posiadać odpowiednio długi tekst to focus będzie przenoszony w kółko, co może zapętlić program i go zamrozić na amen. Dlatego przenoszenia focusa nie robi się w ten sposób – z reguły przenosi się go po wciśnięciu konkretnego klawisza, np. Enter
. Zresztą klawisz Tab
do tego służy, więc nie potrzeba programowania innych.
Dokładnie jak @furious programming pisze. Ja u siebie robiłem coś takiego, jednak dla większej liczby jednoznakowych editów. Po dojściu do ostatniego po prostu focus nie zmieniał się na pierwszy.
Co do zmiany klawisza na Enter to w starszych systemach (i to tych mocno starych) przejście do następnej kontrolki odbywało się właśnie za pomocą klawisza Enter. Dlatego niektóre programy dalej (ze względu na przyzwyczajenie użytkowników) utrzymują takie zachowanie.