Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.02;
Скачать: CL | DM;

Вниз

Как лучше реализовать ввод горячих клавиш?   Найти похожие ветки 

 
@!!ex ©   (2008-01-31 21:12) [0]

THotKey не подходит.
Он(например), не понимает такие комбинации как Ctrl+Alt+Space, Ctrl+Alt+Tab, клавишу Win не жует... и так далее.
Пока ничего умнее своего контрола придумать не могу...


 
Ник   (2008-01-31 21:24) [1]

Если только в приложение, то MainMenu должно тебя устроить:)


 
Owa   (2008-02-01 00:17) [2]

тип того...


public
    procedure WMHotkey( var msg: TWMHotkey ); message WM_HOTKEY;

procedure Form.WMHotkey( var msg: TWMHotkey );
begin
 if msg.hotkey = 1 then
 begin
 
 end;

 if msg.hotkey = 2 then
 begin
 
 end;
end;

procedure Form.FormCreate(Sender: TObject);
begin
if not RegisterHotkey(Handle, 1, MOD_ALT or MOD_SHIFT, VK_F9) then
 ShowMessage("Alt + Shift + F9 reg - failure");

if not RegisterHotkey(Handle, 2, MOD_ALT or MOD_SHIFT, VK_F9) then
 ShowMessage("WIN + CONTROL + TAB reg - failure");
end;

procedure Form.FormClose(Sender: TObject; var Action: TCloseAction);
begin
UnRegisterHotkey( Handle, 1 );
UnRegisterHotkey( Handle, 2 );
end;



 
Owa   (2008-02-01 00:19) [3]

ошибочка  =))
**
if not RegisterHotkey(Handle, 2, MOD_ALT or MOD_SHIFT, VK_F9) then
ShowMessage("WIN + CONTROL + TAB reg - failure");



if not RegisterHotkey(Handle, 2, MOD_WIN or VK_CONTROL, VK_TAB) then
ShowMessage("WIN + CONTROL + TAB reg - failure");


 
@!!ex ©   (2008-02-01 00:32) [4]

и что это?


 
@!!ex ©   (2008-02-01 00:33) [5]

Atom кстати лучше всеже регистрировать, циферки 1, 2 и т.д. могут привести к неприятным проблемам...
Проблема была не в том, чтобы зарегестрировать и отловить нажатие Хоткея. А в том, чтобы пользователь мог в настройках выбирать для команды нужную комбинацию клавиш.


 
ASoft   (2008-02-01 17:27) [6]


> @!!ex ©   (31.01.08 21:12)

ТApplicationEvents?


 
Elec3C ©   (2008-02-01 18:03) [7]


> @!!ex ©

Я регистровал именно с помощью RegisterHotKey (см. [2]). Всё отлично работает.


 
Elec3C ©   (2008-02-01 18:06) [8]


> пользователь мог в настройках выбирать для команды нужную
> комбинацию клавиш

Выберет, сделаешь UnRegisterHotKey, а затем снова RegisterHotKey.


 
Kolan ©   (2008-02-01 18:10) [9]

> А в том, чтобы пользователь мог в настройках выбирать для
> команды нужную комбинацию клавиш.

Писать наследника и там переделать работу с хот кеями.


> Он(например), не понимает такие комбинации как Ctrl+Alt+Space,
> Ctrl+Alt+Tab

Проверил, все он понимает. Ты прям ркуками туда и вводи «Ctrl+Alt+Tab».


 
Skyle ©   (2008-02-04 07:39) [10]


> Kolan ©   (01.02.08 18:10) [9]

Есть мнение, что он хочет чтобы компонент сам писал в себя то, что пользователь над ним нажал.


 
@!!ex ©   (2008-02-04 07:46) [11]

> [7] Elec3C ©   (01.02.08 18:03)
>
> > @!!ex ©
>
> Я регистровал именно с помощью RegisterHotKey (см. [2]).
> Всё отлично работает.

Да при чем тут регистрация горячих клавиш????


> [5] @!!ex ©   (01.02.08 00:33)
> Atom кстати лучше всеже регистрировать, циферки 1, 2 и т.д.
> могут привести к неприятным проблемам...
> Проблема была не в том, чтобы зарегестрировать и отловить
> нажатие Хоткея. А в том, чтобы пользователь мог в настройках
> выбирать для команды нужную комбинацию клавиш.




> Проверил, все он понимает. Ты прям ркуками туда и вводи
> «Ctrl+Alt+Tab».

Это не удобно.


> [10] Skyle ©   (04.02.08 07:39)

Да. Сделал через два ComboBox"а. В одном список комбинаций (Ctrl+Alt+Shift, Ctrl+Shift, и т.д.) во втором - набор обычных клавиш.
Вроде удобно.



Страницы: 1 вся ветка

Текущий архив: 2008.03.02;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.025 c
2-1202239909
Махс
2008-02-05 22:31
2008.03.02
Класс


2-1202406703
Nemeziz
2008-02-07 20:51
2008.03.02
try..except


15-1200218991
Kolan
2008-01-13 13:09
2008.03.02
Рефакторин Extract resource string работает не так как ожидается.


15-1201332607
Sergey Masloff
2008-01-26 10:30
2008.03.02
Еще про WinXP но не оффтопик


15-1201527834
Kerk
2008-01-28 16:43
2008.03.02
50 работодателей мечты для молодого специалиста