Лю-ю-ю-ю-ю-ди!!! Помоги-и-и-и-и-те!!!
Замаялся код дрючить
Мож кто подкинет бедному прогеру советик
Ниже привожу код регистрации горячей клавиши, которую юзер назначет сам через компоненту HotKey вкладки Win32 в Delphi 6.
Подскажите, что надо сделать для регистрации нескольких горячих клавиш, которые будут вводится, соответственно с нескольких HotKey'ев.
QUOTE
unit Hot_Unit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,StdCtrls, ComCtrls, Buttons,ExtCtrls, ShellAPI, INIfiles;
type
Tfhot = class(TForm)
hk1: THotKey;
BitBtn1: TBitBtn;
hk2: THotKey;
procedure FormCreate(Sender: TObject);
procedure ReadParams;
procedure WriteParams;
procedure BitBtn1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
HotKeyContacts:TShortCut;
procedure WMHotKey(var Msg: TWMHotKey); message WM_HOTKEY;
{ Private declarations }
public
function RegHotKey(HotKey:TShortCut):boolean;
{ Public declarations }
end;
var
fhot: Tfhot;
implementation
uses MSG_Unit;
{$R *.dfm}
{ Tfhot }
function Tfhot.RegHotKey(HotKey:TShortCut):boolean;
var
TheKey:Word;
TheShiftState:TShiftState;
Modifiers:Cardinal;
begin
UnRegisterHotKey(Handle,0);
HotKeyContacts:=HotKey;
ShortCutToKey(HotKeyContacts, TheKey, TheShiftState);
Modifiers:=0;
if ssAlt in TheShiftState then Modifiers:=Modifiers or MOD_ALT;
if ssShift in TheShiftState then Modifiers:=Modifiers or MOD_SHIFT;
if ssCtrl in TheShiftState then Modifiers:=Modifiers or MOD_CONTROL;
Result:=RegisterHotkey(Handle,0,Modifiers,TheKey);
end;procedure Tfhot.WMHotKey(var Msg: TWMHotKey);
begin
if Msg.HotKey=0 then
fmsg.Show;..Открываем форму №2
end;
procedure Tfhot.ReadParams;
Var IniFile:TIniFile;
begin
IniFile := TIniFile.Create(ChangeFileExt(ParamStr(0),'.ini'));// создаём .ini в корне каталога с программой
fhot.hk1.HotKey:=IniFile.ReadInteger('Приложение','Горячая клавиша №1',fhot.hk1.HotKey);
fhot.hk2.HotKey:=IniFile.ReadInteger('Приложение','Горячая клавиша №2',fhot.hk2.HotKey);;
IniFile.Free;
end;
procedure Tfhot.WriteParams;
Var IniFile:TIniFile;
begin
IniFile := TIniFile.Create(ChangeFileExt(ParamStr(0),'.ini'));
IniFile.WriteInteger('Приложение','Горячая клавиша №1',fhot.hk1.HotKey);
IniFile.WriteInteger('Приложение','Горячая клавиша №2',fhot.hk2.HotKey);
IniFile.Free;
end;
procedure Tfhot.FormCreate(Sender: TObject);
begin
ReadParams;
HotKeyContacts:=0;
RegHotKey(hk1.HotKey);
end;
procedure Tfhot.BitBtn1Click(Sender: TObject);
begin
WriteParams;
end;
procedure Tfhot.FormDestroy(Sender: TObject);
begin
UnRegisterHotKey(Handle,0);
end;
end.
Буду рад любому дельному совету
С уважением, Serik.