Imas vise nacina na raspolaganju, na primer za C++ Builder
moze da koristis nesto kao:
Code:
// !!! NETESTIRANO !!!
TEdit *Edits[3];
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
Edits[0] = Edit1;
Edits[1] = Edit2;
Edits[2] = Edit3;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
static int i=0;
Edits[ (++i) % 3 ]->SetFocus();
}
Takodje, prouci WM_NEXTDLGCTL, i u skladu sa time:
Code:
// "Call Perform to bypass the Windows message queue
// and send a message directly to the control’s window
// procedure."
Perform (WM_NEXTDLGCTL, 0, 0);
E sad, posto klik na Button1, automatski fokusira Button1,
morao bi da pratis sta je zadnje bilo fokusurano od Edit
polja, pa da vratis njemu fokus, pa onda Perform, itd...
Takodje za fokusiranje umesto metode ->SetFocus(), mozes
da koristis funkciju FocusControl().