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

 
Переход между компонентами?
SASH
Отправлено: 22.12.2004, 14:10


Дежурный стрелочник

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



В программе есть некоторое количество TEdit'ov и ComboBox'ov.
Как можно сделать переход между ними не Tab'om, а клавишами вверх, вниз, вправо, влево?
AVC
Отправлено: 22.12.2004, 14:47


Ветеран

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



Перехватывать нажатия и засылать tab на right/down и shift tab на left/up или рассчитывать след/пред компонент и самому переность фокус.
Но это все впустую. User'ы эти не пользуются и, неразумные, продолжают жать tab или тянуться за мышом.
olegenty
Отправлено: 23.12.2004, 08:59


Ветеран

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



замечу, что AVC погорячился. если протсо подсовывать TAB вместо стрелок, то никогда не переместишься внутри по вводимой строке. от этого пользователь станет грустный-грустный. но вариант всё же есть — надо отслеживать в какой позиции находится курсор в поле ввода и если достигнуты границы текста, вот тогда переходить на близлежащие контролы. и всё же я не стал бы TAB подсовывать, а воспользовался бы
CODE

if (TWinControl *c = FindNextControl(ActiveControl, true, true, false))
{
   c->SetFocus();
}
AVC
Отправлено: 23.12.2004, 09:10


Ветеран

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



Да, с табами наверно погорячился. Все ни как не доходили руки проверить, так и осталось на уровне идеи.
Рассчитываю по дереву компонентов куда перенести фокус. С FindNextControl были какие то заморочки, так что пришлось сделать самому.

Но второе утверждение остается в силие. Мои пользователи этим не пользуются. Вот такой грустный каламбур.

Отредактировано AVC — 23/12/2004, 09:28
olegenty
Отправлено: 23.12.2004, 09:22


Ветеран

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



у меня было наоборот: заказчик ОТКАЗЫВАЛСЯ принимать программу, где переход между контролами осуществлялся не по Enter. пришлось удовлетворить (отказавшись от Default на кнопках с MoralResult = mrOk).

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