Ok, evo kako to da uradiš u C++ Builer-u (ali je moguće da ti može pomoći i u slučaju Visual Studio-a):
Neka se TEdit-i zovu Edit1,2,3.
Deklariši celobrojnu promenljivu foc, koja će na početku biti 1 (koj Edit je trenutno fokusiran).
Klik na dugme treba da odradi:
Code:
foc++;
if (foc>3) foc=1;
((TEdit*)FindComponent("Edit"+IntToStr( foc )))->SetFocus();
Mislim da su prve dve linije jasne (računaju koj Edit treba da bude u fokusu).
Treća linija:
FindComponent(Ime), vraća komponentu sa datim imenom, a ovo ispred (TEdit*) mu stavlja do znanja da se radi o TEdit-u (bez zagrade bi se bunio da ne postoji funkcija SetFocus u objektu TComponent).
Dobro, isto ovo se može uraditi i prostije - bez FindComponent-a, samo sa 3 if-a. Ali to bi bilo malo teže uraditi ako ti treba 100 Edit-a..
Ovo se ne može uraditi bez (kakve takve) pomoćne promenljive. Na primer, ako bi probao ovo, ne bi uspelo:
Code:
if (Edit1->Focused()) Edit2->SetFocus();
Ne uspeva jer se klikom na dugme menja fokus na dugme, pa Edit1->Focused() vraća false.
Relja