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

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

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

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

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

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

Скажите пожалуйсто как зарегестрировать горячую клавишу с помощью элемента HotKey1 ?
Регестрировать клавиши я умею но изменить их неполучается ((

регистрирую так :

RegisterHotKey(Handle, 1 ,MOD_CONTROL, vk_F1); //соответственно Ctrl + F1
RegisterHotKey(Handle, 2 ,MOD_CONTROL, vk_F2); //соответственно Ctrl + F2

Всё конечно работает но вот мне нужно назначать/изменять их во время работы программы и чтоб регистрировалось именно то что на данный момент находится в HotKey1...
Можно ли сделать чтото такое :

RegisterHotKey(Handle, 2 ,HotKey1.HotKey );
компилятор говорит что нехватает параметров (( но как я понимаю HotKey1.HotKey соответствует топу типу данных которые нужны функции RegisterHotKey. помогите решить проблему.

Всем СПАСИБА
---
GAGARIN-NEW вне форума Ответить с цитированием
Старый 05.11.2007, 23:37   #2
GAGARIN-NEW
Познаю мир
Форумчанин Подтвердите свой е-майл
 
Аватар для GAGARIN-NEW
 
Регистрация: 05.10.2007
Сообщений: 387
По умолчанию

Ну у каво какие идеи ?
---
GAGARIN-NEW вне форума Ответить с цитированием
Старый 09.11.2007, 00:37   #3
GAGARIN-NEW
Познаю мир
Форумчанин Подтвердите свой е-майл
 
Аватар для GAGARIN-NEW
 
Регистрация: 05.10.2007
Сообщений: 387
По умолчанию

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

Фух...
Смотри сюда:
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    HotKey1: THotKey;
    Edit1: TEdit;
    procedure wh(var m:TWMHotKey); message WM_HOTKEY;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure HotKey1Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.wh(var m: TWMHotKey);
begin
 MessageBox(GetForegroundWindow,'','',0);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
UnregisterHotKey(Handle,0);
end;

procedure TForm1.HotKey1Change(Sender: TObject);
var chars:integer;modif,md:integer;
begin
chars:=HotKey1.HotKey and dword(-1);
modif:=HotKey1.HotKey shr 8;
caption:='';   md:=0;
if (modif and 32)>1 then begin caption:='Shift';md:=md or MOD_SHIFT;end;
if (modif and 64)>1 then begin caption:=caption+' Ctrl';md:=md or MOD_CONTROL;end;
if (modif and 128)>1 then begin caption:=caption+' alt';md:=md or MOD_CONTROL;end;
 caption:=caption+' '+chr(chars);
 UnregisterHotKey(Handle,0);

 chars:=chars and $FF;

  Caption:=inttostr(chars)+' '+IntToStr(VkKeyScan(chr(chars)));
 if not RegisterHotKey(Handle,0,md,chars) then RaiseLastWin32Error;

end;

end.
Надеюсь это окончательно решит твои траблы...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как использовать компонент HotKey ? Alter Общие вопросы Delphi 14 07.04.2012 23:52
HotKey Simply-Art Win Api 16 15.08.2008 12:10
KOL HotKey Simply-Art Помощь студентам 6 13.08.2008 11:01
Нажатие на клавишу 3.14oner Паскаль, Turbo Pascal, PascalABC.NET 1 14.07.2008 17:14
Потомок от HotKey Alter Компоненты Delphi 4 03.01.2008 15:47