|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Как получить строковый эквивалент TShortcut?
Всем привет )) У меня, как обычно, глупый вопрос на ровном месте.
Например, программа читает из файла некое число, которое является переменной типа TShortcut. Вопрос: как получить строку с комбинацией клавиш, соответствующей прочитанному числу? Скажем, значению 16454 соответствует строка 'Ctrl+F'. Возможно, существует специальная API-функция для этого дела? Если существует, подскажите, пожалуйста, как её вызывать... Ne timeas obscurum. Последний раз редактировалось Lothlorien, 09.09.2012 в 19:46. |
#2
|
||||
|
||||
Не знаю как API функция, но если посмотреть в menus.pas то там есть функции типа:
Код:
function ShortCut(Key: Word; Shift: TShiftState): TShortCut; begin Result := 0; if WordRec(Key).Hi <> 0 then Exit; Result := Key; if ssShift in Shift then Inc(Result, scShift); if ssCtrl in Shift then Inc(Result, scCtrl); if ssAlt in Shift then Inc(Result, scAlt); end; procedure ShortCutToKey(ShortCut: TShortCut; var Key: Word; var Shift: TShiftState); begin Key := ShortCut and not (scShift + scCtrl + scAlt); Shift := []; if ShortCut and scShift <> 0 then Include(Shift, ssShift); if ShortCut and scCtrl <> 0 then Include(Shift, ssCtrl); if ShortCut and scAlt <> 0 then Include(Shift, ssAlt); end; |
Этот пользователь сказал Спасибо YVitaliy за это полезное сообщение: | ||
Lothlorien (09.09.2012)
|
#3
|
||||
|
||||
Всё перерыл, а в menus.pas не смотрел )
Спасибо, буду пробовать )) Ne timeas obscurum. |
#4
|
||||
|
||||
Код:
function ShortCutToText(ShortCut: TShortCut): string; function TextToShortCut(Text: string): TShortCut; Пишу программы за еду. __________________ |
Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
Lothlorien (09.09.2012)
|
#5
|
||||
|
||||
Цитата:
|
#6
|
||||
|
||||
Огромное спасибо ))
Ne timeas obscurum. |