Delphi-Quellcode:
procedure TfrmMain.Set_Global_Hotkeys(var Message: TMessage);
var notify:string;
begin
notify:='';
if Message.Msg=WM_Hotkey Then begin
SetTimer(Self.Handle,Message.WParam,Hotkeys[Message.WParam-$BFF0].Interval*1000,nil);
SendMessage(GetActiveWindow,WM_KEYDOWN,Hotkeys[Message.WParam-$BFF0].Modify,Hotkeys[Message.WParam-$BFF0].Key);
SendMessage(GetActiveWindow,WM_KEYUP,Hotkeys[Message.WParam-$BFF0].Modify,Hotkeys[Message.WParam-$BFF0].Key);
notify:='';
end
else if Message.Msg=WM_TIMER Then Begin
if HotKeys[Message.WParam-$BFF0].Notify<>'' Then
begin
notify:='';
notify:=HotKeys[Message.WParam-$BFF0].Notify;
end;
KillTimer(Self.Handle,Message.WParam);
end
else WndProc(Message);
if sametext(notify,'left') then
viewer1.Previous.Execute;
if sametext(notify,'right') then
viewer1.Next.execute;
notify:='';
end;
Ich habe die HotKeys wie gesagt systemweit erzeugt, damit der Viewer nicht auch die Position es Bildes verändert.
und daher habe ich keinen sender. und die methode nächste Seite ist in dem Frame deklariert und wird über eine
ActionList angesteuert, die auch in dem Frame deklariert ist.
aus diesen gründen bekomme ich auch keinen sender, da ich ja nicht das keydown ereignis benutze.
deine lösung wäre super, genau das, was ich wollte. es soll einfach das edit feld focusiert bleiben.