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


Автор: decoder 26.10.2004, 19:21
у объекта TMenuItem есть свойство ShortCut типа TShortCut.
TShortCut = Low(Word)..High(Word)
Когда я пытаюсь выставить это свойство через Object Inspector выпадает список всех возможных комбинаций клавиш. Как такое получается?
Главная же задача в том, как получить этот список и засунуть его, напимер, в ListBox...
ПАМАГИТЕ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Автор: Mal Hack 26.10.2004, 19:25
Цитата(decoder @ 26.10.2004, 20:21)

Как такое получается?

Они там заранее прописаны.

Цитата(decoder @ 26.10.2004, 20:21)

Главная же задача в том, как получить этот список и засунуть его, напимер, в ListBox...

Думаю есть вариант, заморочится как-ть, но проще руками набить... ИМХО

Автор: Pakshin A. S. 26.10.2004, 19:43
Как я понял, этот списо всегда один и тот же... поэтому ручками...

Автор: decoder 26.10.2004, 19:46
САДИСТЫ !!!!!!!!!!
:)

Автор: Pakshin A. S. 26.10.2004, 19:53
smile=29 smile=24 smile=91

Автор: Mal Hack 26.10.2004, 19:55
Pakshin A. S.
А из TShortCut список этих самых клавиш никак получить нельзя?
Что-ть типа ShortCutToText(); не поможет?

Автор: Pakshin A. S. 26.10.2004, 20:03
Вот, блин в Helpe не углядел...
Это кончено то, но какие именно констатны записаны в ShortCut, например Menu... :(
Добавлено @ 20:08
Ууу.. сколько их
Код

for i:=1 to MaxInt do
Memo1.Lines.Add(ShortCutToText(i));

Автор: Mal Hack 26.10.2004, 20:09
Pakshin A. S.
т.е. пройтись по TShortCut также как по аналогии с TControls (когда надо прйтись по всем компонентам на форме) for'ом никак?

ЗЫ: Когда писал, добавления к предыдущему посту еще не было.
ЗЗЫ: В твоем примере идет зацикливание и повторение кодов... Можно их кол-во как-ть узнать?
Или зависит от компонента на котором используется ShortCut?

Автор: Pakshin A. S. 26.10.2004, 20:27
Меня заинтересовало вот это
Код

function TMenu.IsShortCut(var Message: TWMKey): Boolean;


Но
Код

TWMKey = packed record
   Msg: Cardinal;
   CharCode: Word;
   Unused: Word;
   KeyData: Longint;
   Result: Longint;
 end;


Т. е. в идеале надо такое:

пока i <=MaxInt делаем-с
если у нас есть ShortCut для меню
то
Добавляем его в Memo
иначе
Оставим его в покое


:)

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