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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.11.2007, 11:38   #1
GAGARIN-NEW
Познаю мир
Форумчанин Подтвердите свой е-майл
 
Аватар для GAGARIN-NEW
 
Регистрация: 05.10.2007
Сообщений: 387
Вопрос Горячие клавешницы =)

Здравствуйте все !
У меня есть пару вапросов :
1 : как во время выполнения программы зарегить/un'регить hotkey с последующем его использованием ?
2 : как сохранить выбранный хоткей после завершения программы ? чтоб при загрузке программы он автоматически назначался/загружался в елемент HotKey1/2/3... ?
///Желательно использовать реест для хранения хоткеев///
Если подобное подробно обсуждалось даёте ссылку плиз
(ЗЫ Поиск не рулит!)

Всем спасиба
---
GAGARIN-NEW вне форума Ответить с цитированием
Старый 01.11.2007, 11:51   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
зарегить/un'регить hotkey
Глобальный Хоткей или чисто для твоей проги?
Цитата:
Желательно использовать реест для хранения хоткеев
Ну дык с помошью класса Tregistry.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.11.2007, 12:05   #3
GAGARIN-NEW
Познаю мир
Форумчанин Подтвердите свой е-майл
 
Аватар для GAGARIN-NEW
 
Регистрация: 05.10.2007
Сообщений: 387
Восклицание

я вот токашо порылся по форуму и посмарел что тип Hkey или как там ... (ну кароче тот каторый у хоткей 1 , 2 , 3) можно переделать в интегер так ? 'чтототам'toint(HotKey1.HotKey) а потом его обратно из интегера в хоткей и регистрить...=) можно так ?
Хоткеи мне нужны глобальные.!.
я могу сделать хоткей при запуске программы нашо гдето примерчик
но что меня смущает : там есть много 'на мой взгляд' лишнего ,и оно напихано в private declarations и ещё кудато... а мне нужно чтобы во время выполнения проги нужно было назначать их динамически а не только при создании формы....
ВОТ.
---
GAGARIN-NEW вне форума Ответить с цитированием
Старый 01.11.2007, 12:07   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
можно так ?
Нужно.
Цитата:
Хоткеи мне нужны глобальные.!.
Тогда нуна RegisterHotKey рулить. Поищи на форуме помоему уже было это.
Цитата:
но что меня смущает
Ниче не поняв....
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.11.2007, 12:14   #5
GAGARIN-NEW
Познаю мир
Форумчанин Подтвердите свой е-майл
 
Аватар для GAGARIN-NEW
 
Регистрация: 05.10.2007
Сообщений: 387
Восклицание

вот моя прога примерчик каторую я когдато делал (скопировал укавото

Код:
interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
    procedure WMHotKey(var Mess:TWMHotKey);message WM_HOTKEY;  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.WMHotKey(var Mess: TWMHotKey);
begin

Application.MessageBox('xxx', 'yyy',mb_ok or mb_IconError); //это для проверки я сделал =) 
form1.Visible:=true;
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
RegisterHotKey(Handle, 1 ,MOD_CONTROL, vk_F12);
end;
Вот что меня сумщает тк непонимаю всего !
Мне нужно определённой функции ставить хоткей а не под хоткей функцию....
---
GAGARIN-NEW вне форума Ответить с цитированием
Старый 01.11.2007, 12:16   #6
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Код:
procedure WMHotkey( var msg: TWMHotkey ); message WM_HOTKEY;
.....
.....
procedure Tform1.FormCreate(Sender: TObject);
begin
RegisterHotkey(Handle, 1, MOD_win, VK_space); //соответственно горячая клавиша будет win+пробел
end;

procedure tform1.WMHotkey( var msg: TWMHotkey );
var str,userName:string;
UserNameLen: dword;
begin
  if msg.hotkey = 1 then
  begin
   ............
  end;
end;

procedure Tform1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
UnRegisterHotkey( Handle, 1 );
end;
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 01.11.2007, 12:24   #7
GAGARIN-NEW
Познаю мир
Форумчанин Подтвердите свой е-майл
 
Аватар для GAGARIN-NEW
 
Регистрация: 05.10.2007
Сообщений: 387
По умолчанию

Цитата:
procedure Tform1.FormCreate(Sender: TObject);
- мне во время выполнения проги надо назначать снимать хоткеи !
Вот конретно что мне надо : оставить хотке1 например CTRL + SPASE и чтобы по этому сочетанию открывался сидюк ! процедура открытия закрытия сидюка есть ! мне теперь надо сделать так чтобы я этой поцедуре назначил горячую клавишу... надеюсь вы поняли...
---
GAGARIN-NEW вне форума Ответить с цитированием
Старый 01.11.2007, 12:29   #8
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Ну так назначай в другом событии/процедуре
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 01.11.2007, 12:30   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
надеюсь вы поняли
Поиском по форуму на слово HotKey ты найдеш кучу примеров. Давай не ленись.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.11.2007, 12:30   #10
GAGARIN-NEW
Познаю мир
Форумчанин Подтвердите свой е-майл
 
Аватар для GAGARIN-NEW
 
Регистрация: 05.10.2007
Сообщений: 387
По умолчанию

это да а как сделать чтоб теперь именно по этому хоткею чтото выполнялось , а по другому хоткею выполнялось чтото другое...???

Цитата:
Поиском по форуму на слово HotKey ты найдеш кучу примеров. Давай не ленись.
Только что искал ! там тожесамое ! везде Oncreate и везде только 1 хоткей ((
---
GAGARIN-NEW вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Горячие клавиши VS 2008 .:KOLYAN:. Свободное общение 2 02.09.2008 14:32
Горячие клавиши назначенные для макросов Word Glad Microsoft Office Word 0 05.10.2007 20:29
По нажатию, каких сочетаний клавиш можно программно развернуть приложение, если оно свернуто в трее? Johnny_B Win Api 1 04.06.2007 08:20