full_lamer |
Отправлено: 07.05.2004, 13:25 |
|
Машинист паровоза
Группа: Участник
Сообщений: 225
|
Доброго времени!
У меня вопрос: как мне перейти к следующему объекту на форме?
Пробую так:
CODE |
SelectNext (FindNextControl(this, true, true, false), true, true);
|
не получается. переходит с любого места только ко 2ом объекту (taborder=1)...
Спасибо.
|
|
full_lamer |
Отправлено: 07.05.2004, 13:27 |
|
Машинист паровоза
Группа: Участник
Сообщений: 225
|
Забыл добавить: перейти программно...
|
|
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 — лишь возвращает символ.
|
|