Ich habe versucht, 3 Hotkeys zu registrieren. Ich folgte this Beispiel (oder this).Mehrere globale Hotkeys können nicht registriert werden
Der Code funktioniert, wenn ich einen einzigen Hotkey registriere. Allerdings, wenn ich versuche, 3 Hotkeys zu registrieren, nur die letzte registrierte man arbeitet:
procedure TFrmSettings.FormCreate;
begin
atomN:= GlobalAddAtom(pchar('atomN'));
atomT:= GlobalAddAtom(pchar('atomT'));
atomH:= GlobalAddAtom(pchar('atomH'));
end;
procedure TFrmSettings.test1;
begin
RegisterHotShortCut(Handle, atomN, hotN.HotKey); // first registered
RegisterHotShortCut(Handle, atomH, hotH.HotKey); // second registered
RegisterHotShortCut(Handle, atomT, hotT.HotKey); // third - only this works
end;
RegisterHotShortCut wird auf der Webseite erklärt oben erwähnt.
Wenn ich im obigen Code die letzte Zeile kommentiere, dann funktioniert der vorherige Hotkey (hotH). Das heißt, ich habe alles richtig erklärt, aber der letzte Hotkey übernimmt die Kontrolle über die anderen.
Oder anders gesagt, durch Drücken der Tastenkombination für die ersten registrierten Tastenkombinationen wird das Programm nicht in die TFrmSettings.HotyKeyMsg(VAR msg: TMessage)
Prozedur eingetragen.
Irgendwelche Hinweise? Danke.
Edit1:
Es gibt einfache Schnipsel, die für andere scheint zu funktionieren, aber ich brauche wirklich der Benutzer zu lassen, um die Verknüpfung zu ändern, damit ich die ShortCutToKey Verfahren benötigen.
Ich sollte ein Atom für jede globale Verknüpfung deklarieren. Recht?
Edit2: GELÖST Der obige Code nicht nur, wenn ich die "GlobalAddAtom" Funktion verwenden. Wenn ich anstelle von Atomen nur die Zahlen 1, 2 und 3 verwende, funktioniert der Code. Wenn ich 4,5,6 verwende, schlägt der Code erneut fehl. Problem (halb) gelöst.
Hallo. RegisterHotShortCut ist auf der oben genannten Webseite deklariert. – Ampere
Hoppla, ja du hast Recht, ich sehe, dass du es jetzt in die Frage aufgenommen hast. Ich fürchte, ich kann nicht weiter helfen. – hlovdal
Danke für die Hilfe trotzdem. – Ampere