Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Быстрый вызов меню


Автор: MacTep 28.7.2004, 10:59
Пишу в свойстве Caption пункта TMainMenu такое: &Файл. Программа срабатывает и открывает эту вкладку только если нажать Alt+Shift+Ф. А как сделать, чтобы и на Alt+Ф или Alt+ф реагировала, т.е. неависимо от регистра буквы?

Автор: <Spawn> 28.7.2004, 11:04
Можешь настроить свойство ShortCut итема менюхи так как тебе нужно, но, помоему, там нет комбинаций с Alt+<какое то значение>. Если обязательно нужно отлавливать с Alt-ом, то можешь попробовать поставить на форме KeyPreviw в True и написать обработчик OnKeyDown формы.

Автор: VIRTuoZe 28.7.2004, 11:19
или отлавливать нажатия кнопок через keypress.

if key=#65 then //то что надо сделать...

где #65 это сочетание Alt+ф и Alt+Ф и Alt+A(англ.) и Alt+a

Автор: MacTep 28.7.2004, 11:41
Все ясно, попробую. А почему вообще менюшка работает, как надо (т.е. с Alt+Ф и Alt+ф), когда в ней нет маленькой картинки. А как только эту картинку ставлю, то она реагирует на регистр?
Добавлено @ 11:43
А как программно "вывалить" определенную вкладку меню?

Автор: VIRTuoZe 28.7.2004, 11:43
сие для меня тайна большая qstn.gif
biggrin.gif
Добавлено @ 11:48
Цитата
А как программно "вывалить" определенную вкладку меню?

например:
N1.Click;
где N1 - это твой пункт меню.
или
N1Click(Mouse);

Автор: MacTep 28.7.2004, 11:58
Слушай, VIRTuoZe, тут ни фига не #65. На это програ не срабатывает. У меня прога есть, которая сканирует нажатые клавиши. Так она говорит, что Alt+Ф это вообще #0;30. То есть расширенный код. Как проге моей сказать, что надо реагировать именно на этот код?

Автор: VIRTuoZe 28.7.2004, 12:05
а с сочетанием Alt похоже ничего не будет работать....
нужна еще одна функциональная клавиша...

Автор: MacTep 28.7.2004, 12:57
Так не бывает, я в это не верю. Ведь есть же в мире совершенство!!! smile.gif Что-то все равно можно сделать!

Автор: decoder 28.7.2004, 14:47
Отлавливай сообщение WM_SYSKEYDOWN - оно генерируется при нажатии любой клавиши, когда зажата клавиша Альт, ну а wParam содержит код виртуальной клавиши...

Автор: MacTep 28.7.2004, 23:09
decoder, а можно чуть подробнее про это сообщение?

Автор: _hunter 29.7.2004, 17:06
что значит подробнее? напиши что тебе не ясно

Автор: decoder 4.8.2004, 15:47
Как я понял, кто-то что-то не понял...
Код

...
private
 procedure WMSYSKEYDOWN(Msg: TMsg); message WM_SYSKEYDOWN;
...
procedure WMSYSKEYDOWN(Msg: TMsg);
begin
 if Msg.message = VK_NUJNAYAKLAVISHA then
 ...
end;

Автор: MacTep 13.8.2004, 23:07
Ok

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)