Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.04.13;
Скачать: CL | DM;

Вниз

Компоненты и клавиатура   Найти похожие ветки 

 
Hypnotize_X   (2008-03-19 20:07) [0]

Здравствуйте мастера, доборого времени суток, вопрос следуйщий: как сделать, чтобы VCL компоненты были невоспримчивы к клавиатуре? Т.е. чтобы нельзя было вызвать OnClick у кнопки с помощью нажатия Space или Enter.


 
Семеныч   (2008-03-19 20:18) [1]

KeyPreview?


 
Hypnotize_X   (2008-03-19 20:29) [2]

А где этого монтра искать?)


 
{RASkov} ©   (2008-03-19 20:30) [3]

> [2] Hypnotize_X   (19.03.08 20:29)

Это свойство у формы.
Выставляешь его в True и в обработчике OnKeyXxxx формы реализуешь задуманное...


 
Сергей М. ©   (2008-03-19 20:32) [4]


> где этого монтра искать?


В библиотеке или в книжном магазине.

В кр.случае - в стандартной справке. Но это для особо одаренных)


 
{RASkov} ©   (2008-03-19 20:36) [5]

> сделать, чтобы VCL компоненты были невоспримчивы к клавиатуре?
> Т.е. чтобы нельзя было вызвать OnClick у кнопки с помощью
> нажатия Space или Enter.

Кстати смотря какие компоненты. В случае с кнопкой, то может есть смысл использования не ВинКонтрол вариант кнопки? TSpeedButton.


 
Hypnotize_X   (2008-03-19 20:43) [6]

А что нужно в onKeyPress написать, чтобы ничего не происходило?))))


 
Hypnotize_X   (2008-03-19 20:45) [7]

Компонента два: Button и ComboBox, в первом случае нужно чтобы кнопка не нажималась ентером и спейсом, а во втором чтобы айтем не выбирался при нажатии вниз и вверх.


 
Сергей М. ©   (2008-03-19 20:46) [8]


> что нужно в onKeyPress написать


Прошение преподу о помиловании


 
{RASkov} ©   (2008-03-19 21:31) [9]

> [7] Hypnotize_X   (19.03.08 20:45)

Так точно.


 
{RASkov} ©   (2008-03-19 21:34) [10]

> Hypnotize_X

> нужно чтобы кнопка не нажималась ентером и спейсом

См [5] например TSpeedButton;

> во втором чтобы айтем не выбирался при нажатии вниз и вверх.

if Key in [VK_UP, VK_DOWN] and ActiveControl=ComboBox then Key:=Key-Key;


 
Семеныч   (2008-03-19 21:36) [11]

> {RASkov} ©   (19.03.08 21:34) [10]

Этот код не сработает...
:o)


 
{RASkov} ©   (2008-03-19 21:57) [12]

> [11] Семеныч   (19.03.08 21:36)

Тсс...


 
Hypnotize_X   (2008-03-19 22:14) [13]

Почините код)) Key не хочет сравниваться с VK_UP и т.д)


 
Hypnotize_X   (2008-03-19 22:20) [14]

Этот код кстати даже без проверки на клавишу не работает. Может есть другие варианты?


 
{RASkov} ©   (2008-03-19 22:58) [15]

> [14] Hypnotize_X   (19.03.08 22:20)

Этот "псевдо код" рабочий и не слушай Семеныча, головой подумай чуть-чуть :)


 
Hypnotize_X   (2008-03-19 23:11) [16]

С помощью этого кода смог сделать, чтобы не работали кнопки up и down. (OnKeyDown). Но выяснилось, что еще нужно сделать, чтобы на Combobox не работали и остальные кнопки клавиатуры (так как они активируют быстрое выделение строчки на начинающийся на данную кнопку). Как это реализовать?


 
Семеныч   (2008-03-20 10:07) [17]

> {RASkov} ©   (19.03.08 22:58) [15]

Я же говорил, что код не сработает...
:о)

И даже не потому, что это псевдокод, и не потому, что там скобок нет.

А потому что [6].
:о)

> Hypnotize_X   (19.03.08 23:11) [16]
> Как это реализовать?

Аналогично.


 
{RASkov} ©   (2008-03-20 13:14) [18]

> [17] Семеныч   (20.03.08 10:07)
> Я же говорил, что код не сработает...

:)
Да просто автор вопроса под гипнозом что ли.... или радиация у него там повышена.... короче думать не хочет совсем :(
:о)

> [16] Hypnotize_X   (19.03.08 23:11)
> Как это реализовать?

в кейпрессе:
если наш контрол то Key:=CHR(ORD(Key)-ORD(Key));
Гы..
Только смотри, т.е. читай в справке, какие клавиши поподают в OnKeyDown(UP) и какие в OnKeyPress.... т.е. в одном все не получится....



Страницы: 1 вся ветка

Текущий архив: 2008.04.13;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.018 c
2-1205862569
Tovarisch
2008-03-18 20:49
2008.04.13
Не пишет первое слово


6-1184838126
Alarm_x
2007-07-19 13:42
2008.04.13
Как отследить количество подключений на указанный порт


2-1205838616
asdf2
2008-03-18 14:10
2008.04.13
CalculatedFields


2-1206078470
SKIPtr
2008-03-21 08:47
2008.04.13
нужно выполнить перерисовку компонента


2-1205845556
Adios
2008-03-18 16:05
2008.04.13
сообщения в программу по сети