Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2011, 20:53   #1
phphel
Форумчанин
 
Аватар для phphel
 
Регистрация: 12.07.2010
Сообщений: 249
По умолчанию регистрация горячих клавиш.

Всем Добрый Вечер!

Для того, что бы зарегестрировать какой-либо хоткей я использую:

Код:
RegisterHotKey(handle,id,mod_alt,83);//Alt+Q
Проблема в том, что я хочу хранить значения хоткеев в .ini файлах, и думаю, что лучше всего это делать в ASCII кодах.

Вот собственно вопрос, как мне имея ASCII код клавиши, использовать его в этой функции?

Тобишь, нужно из 18 (ASCII код клавиши Alt) сделать mod_alt - для функции RegisterHotKey.
Аналогично, из 17 (ASCII код клавиши Ctrl) сделать mod_control.

Или может, все гораздо проще Прошу помощи, у знатоков...
Moonquake

Последний раз редактировалось phphel; 25.03.2011 в 20:56.
phphel вне форума Ответить с цитированием
Старый 25.03.2011, 21:03   #2
askarchic
Пользователь
 
Регистрация: 26.11.2010
Сообщений: 28
По умолчанию

1 shl (n and 1)

Если n = $12, то выражение равно mod_alt, иначе mod_control.

Последний раз редактировалось askarchic; 25.03.2011 в 21:17.
askarchic вне форума Ответить с цитированием
Старый 25.03.2011, 21:16   #3
phphel
Форумчанин
 
Аватар для phphel
 
Регистрация: 12.07.2010
Сообщений: 249
По умолчанию

Хм, сейчас чуть поэксперементировал, но не получается
Код:
var
   temp:integer;
begin
   temp:=1 shl (18 and 1);
   showmessage(inttostr(temp));
Moonquake

Последний раз редактировалось phphel; 25.03.2011 в 21:19.
phphel вне форума Ответить с цитированием
Старый 25.03.2011, 21:19   #4
askarchic
Пользователь
 
Регистрация: 26.11.2010
Сообщений: 28
По умолчанию

mod_alt это константа, через ShowMessage ты покажешь ее значение, а не название.
askarchic вне форума Ответить с цитированием
Старый 25.03.2011, 21:20   #5
phphel
Форумчанин
 
Аватар для phphel
 
Регистрация: 12.07.2010
Сообщений: 249
По умолчанию

Да, я уж это понял, подставил сейчас код клавиши, выражение возвращает единицу..

Напиши подробнее плиз, что-то не вьеду..
Moonquake
phphel вне форума Ответить с цитированием
Старый 25.03.2011, 21:21   #6
askarchic
Пользователь
 
Регистрация: 26.11.2010
Сообщений: 28
По умолчанию

Во что ты не въезжаешь конкретно?
askarchic вне форума Ответить с цитированием
Старый 25.03.2011, 21:28   #7
phphel
Форумчанин
 
Аватар для phphel
 
Регистрация: 12.07.2010
Сообщений: 249
По умолчанию

Хм, название?))

Дык фишка еще в том, что бывает не только mod_alt и mod_control, есть еще mod_shift и т.д ))

На примере покажи, вот к примеру.

У меня есть значения из Ini Файла:

Код:
key1:='Alt';
key2:='Ctrl';

word1:='Q';
word2:='S';
Мне нужно их зарегестрировать:
Код:
id:=GlobalAddAtom('hotkey'); 
RegisterHotKey(handle,id,Что тут писать,Что тут писать);
id2:=GlobalAddAtom('hotkey2');
RegisterHotKey(handle,id2,Что тут писать,Что тут писать);
Moonquake
phphel вне форума Ответить с цитированием
Старый 25.03.2011, 21:33   #8
askarchic
Пользователь
 
Регистрация: 26.11.2010
Сообщений: 28
По умолчанию

Тебе на все 4 константы mod_ нужно выражение?
askarchic вне форума Ответить с цитированием
Старый 25.03.2011, 21:37   #9
phphel
Форумчанин
 
Аватар для phphel
 
Регистрация: 12.07.2010
Сообщений: 249
По умолчанию

Мне нужно превратить:

key1 + word1 (Alt + Q) в mod_alt + 81.

Хоткеев может быть больше чем 2...
Moonquake
phphel вне форума Ответить с цитированием
Старый 25.03.2011, 21:56   #10
askarchic
Пользователь
 
Регистрация: 26.11.2010
Сообщений: 28
По умолчанию

Код:
Var
  Key: String; //Имя системной клавиши

...

RegisterHotKey(handle,id,
Byte(Key = 'Alt') Or (Byte(Key = 'Ctrl') Shl 1) Or (Byte(Key = 'Shift') Shl 2) Or (Byte(Key = 'Win') Shl 3), //Формуля для всех констант mod_
{Код символа уж сам справишься вбить});

Последний раз редактировалось askarchic; 25.03.2011 в 21:58.
askarchic вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
установка собственных горячих клавиш в windows sum42 Помощь студентам 4 22.09.2009 21:58
Вопрос по использованию горячих клавиш и Enter в Delphi Evgenii Общие вопросы Delphi 3 16.06.2009 22:31
Отлов горячих клавиш, Builder C++ 6.0 MsF C++ Builder 2 24.02.2009 11:02
Срочно требуется помощь с привязкой горячих клавиш..... Jinxers Операционные системы общие вопросы 4 08.02.2009 20:09
Как сделать привязку глобальных горячих клавиш к свой проге? Jinxers Помощь студентам 1 08.02.2009 00:29