Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Компоненты и клавиатура [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?


Наверх

Титульная страница Поиск, карта сайта Написать письмо