![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Компоненты и клавиатура [D7, WinXP]
Hypnotize_X © (2008-03-19 20:07:00)Здравствуйте мастера, доборого времени суток, вопрос следуйщий: как сделать, чтобы VCL компоненты были невоспримчивы к клавиатуре? Т.е. чтобы нельзя было вызвать OnClick у кнопки с помощью нажатия Space или Enter.
{RASkov} (2008-03-20 13:14:00) [1]> [17] Семеныч (20.03.08 10:07)
> Я же говорил, что код не сработает...
:)
Да просто автор вопроса под гипнозом что ли.... или радиация у него там повышена.... короче думать не хочет совсем :(
:о)
> [16] Hypnotize_X (19.03.08 23:11)
> Как это реализовать?
в кейпрессе:
если наш контрол то Key:=CHR(ORD(Key)-ORD(Key));
Гы..
Только смотри, т.е. читай в справке, какие клавиши поподают в OnKeyDown(UP) и какие в OnKeyPress.... т.е. в одном все не получится....
Семеныч (2008-03-20 10:07:00) [2]> {RASkov} © (19.03.08 22:58) [15]
Я же говорил, что код не сработает...
:о)
И даже не потому, что это псевдокод, и не потому, что там скобок нет.
А потому что [6].
:о)
> Hypnotize_X (19.03.08 23:11) [16]
> Как это реализовать?
Аналогично.
Hypnotize_X (2008-03-19 23:11:00) [3]С помощью этого кода смог сделать, чтобы не работали кнопки up и down. (OnKeyDown). Но выяснилось, что еще нужно сделать, чтобы на Combobox не работали и остальные кнопки клавиатуры (так как они активируют быстрое выделение строчки на начинающийся на данную кнопку). Как это реализовать?
{RASkov} (2008-03-19 22:58:00) [4]> [14] Hypnotize_X (19.03.08 22:20)
Этот "псевдо код" рабочий и не слушай Семеныча, головой подумай чуть-чуть :)
Hypnotize_X (2008-03-19 22:20:00) [5]Этот код кстати даже без проверки на клавишу не работает. Может есть другие варианты?
Hypnotize_X (2008-03-19 22:14:00) [6]Почините код)) Key не хочет сравниваться с VK_UP и т.д)
{RASkov} (2008-03-19 21:57:00) [7]> [11] Семеныч (19.03.08 21:36)
Тсс...
Семеныч (2008-03-19 21:36:00) [8]> {RASkov} © (19.03.08 21:34) [10]
Этот код не сработает...
:o)
{RASkov} (2008-03-19 21:34:00) [9]> Hypnotize_X
> нужно чтобы кнопка не нажималась ентером и спейсом
См [5] например TSpeedButton;
> во втором чтобы айтем не выбирался при нажатии вниз и вверх.
if Key in [VK_UP, VK_DOWN] and ActiveControl=ComboBox then Key:=Key-Key;
{RASkov} (2008-03-19 21:31:00) [10]> [7] Hypnotize_X (19.03.08 20:45)
Так точно.
Сергей М. (2008-03-19 20:46:00) [11]
> что нужно в onKeyPress написать
Прошение преподу о помиловании
Hypnotize_X (2008-03-19 20:45:00) [12]Компонента два: Button и ComboBox, в первом случае нужно чтобы кнопка не нажималась ентером и спейсом, а во втором чтобы айтем не выбирался при нажатии вниз и вверх.
Hypnotize_X (2008-03-19 20:43:00) [13]А что нужно в onKeyPress написать, чтобы ничего не происходило?))))
{RASkov} (2008-03-19 20:36:00) [14]> сделать, чтобы VCL компоненты были невоспримчивы к клавиатуре?
> Т.е. чтобы нельзя было вызвать OnClick у кнопки с помощью
> нажатия Space или Enter.
Кстати смотря какие компоненты. В случае с кнопкой, то может есть смысл использования не ВинКонтрол вариант кнопки? TSpeedButton.
Сергей М. (2008-03-19 20:32:00) [15]
> где этого монтра искать?
В библиотеке или в книжном магазине.
В кр.случае - в стандартной справке. Но это для особо одаренных)
{RASkov} (2008-03-19 20:30:00) [16]> [2] Hypnotize_X (19.03.08 20:29)
Это свойство у формы.
Выставляешь его в True и в обработчике OnKeyXxxx формы реализуешь задуманное...
Hypnotize_X (2008-03-19 20:29:00) [17]А где этого монтра искать?)
Семеныч (2008-03-19 20:18:00) [18]KeyPreview?