C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
TabControl
full_lamer
Отправлено: 07.05.2004, 13:25


Машинист паровоза

Группа: Участник
Сообщений: 225



Доброго времени!
У меня вопрос: как мне перейти к следующему объекту на форме?
Пробую так:
CODE

SelectNext (FindNextControl(this, true, true, false), true, true);

не получается. переходит с любого места только ко 2ом объекту (taborder=1)... wink.gif
Спасибо.
full_lamer
Отправлено: 07.05.2004, 13:27


Машинист паровоза

Группа: Участник
Сообщений: 225



Забыл добавить: перейти программно...
biggrin.gif
olegenty
Отправлено: 07.05.2004, 13:34


Ветеран

Группа: Модератор
Сообщений: 2412



это уже было, я недавно задавал этот вопрос. вот рабочий шмот из программы:
CODE

void __fastcall TfmRouteFields::FormKeyDown(TObject *Sender, WORD &Key,
     TShiftState Shift)
{
   if (ActiveControl == buOk) return; // если это не кнопка OK
   switch (Key)
   {
       case VK_RETURN: // при нажатии на Enter
           Key = 0;
           if (TWinControl *c = FindNextControl(ActiveControl, true, true, false)) // если обнаружен следующий контрол
           {
               c->SetFocus(); // передать ему фокус ввода
           }
           break;
   }
}
full_lamer
Отправлено: 07.05.2004, 13:46


Машинист паровоза

Группа: Участник
Сообщений: 225



Большой спасиб!
Кстати а почему именно KeyDown, а не KeyPress?
olegenty
Отправлено: 07.05.2004, 14:01


Ветеран

Группа: Модератор
Сообщений: 2412



потому что KeyDown это обработчик события WM_KEYDOWN — позволяет отследить состояние всех клавишь клавиатуры, а KeyPress — обработчик WM_CHAR — лишь возвращает символ.

Вернуться в Вопросы программирования в C++Builder