![]() |
Hotkey
Ich wollte mir 4 Hotkeys registieren.
Nur dummerweise scheint es nicht zu gehen...
Delphi-Quellcode:
Die Hotkey sind:
procedure TfrmMain.Settings1Click(Sender: TObject);
var sc : TShortcutArray; i : Integer; Modifiers : Uint; Key : Word; begin sc := frmSettings.ShowModal; for i := 1 to High(sc) do begin ShortCutToHotKey(sc[i], Key, Modifiers); hotkeyIDs[i] := GlobalAddAtom(PChar('hk' + IntToStr(i))); if not RegisterHotKey(Handle, hotkeyIDs[i], Modifiers, Key) then Showmessage('Can''t register hotkey ' + ShortCutToText(sc[i]) + '.'); end; end; procedure ShortCutToHotKey(HotKey: TShortCut; var Key : Word; var Modifiers: Uint); var Shift: TShiftState; begin ShortCutToKey(HotKey, Key, Shift); Modifiers := 0; if (ssShift in Shift) then Modifiers := Modifiers or MOD_SHIFT; if (ssAlt in Shift) then Modifiers := Modifiers or MOD_ALT; if (ssCtrl in Shift) then Modifiers := Modifiers or MOD_CONTROL; end; <strg> + <o> <strg> + <s> <strg> + <alt> + <r> <strg> + <alt> + <c> |
Re: Hotkey
Hallo!
Zitat:
Was sagt der GetLastError? Ich hab das kompiliert, es funktioniert ohne Fehler... Was mir aber auffiel ist, die Hot-Keys werden erst gesetzt, wenn man das Formular frmSettings schließt (Oh Wunder :mrgreen: ). Grüßle! |
Re: Hotkey
Zitat:
Zitat:
Und was mir auffiel, die frmSettings ist eine "Zusatzform", und frmMain bleibt erhalten (Oh Wunder :mrgreen: ). PS: Siehe Prozedurheader ;) [edit]Wow ;) Neue Erkenntnisse nach langen Testen (vielleicht wichtig): Ich habe schon wo anders (beim Start des Programms) ShortCuts angelegt. Und dort funktioniert es auf jeden fall dahingehend Problemlos, dass die Funktion "true" zurückgibt...[/edit] |
Re: Hotkey
Problem behoben!
Ich hatte im Header das
Delphi-Quellcode:
vergessen :P
message WM_HOTKEY;
Jetzt funktioniert es auch alles wunderbar ;) |
Re: Hotkey
Zitat:
Edit: Nächste mal zeig auch den Quelltext, wo der Fehler drin steckt :mrgreen: |
Re: Hotkey
Man muss wohl alles wissen um Fragen zu stellen :(
|
Re: Hotkey
Moin Fabian,
vielleicht wird es so deutlicher: ![]() BTW: Den Klartext eines Fehlercodes kann man sich meist so
Delphi-Quellcode:
anzeigen lassen.
ShowMessage(SysErrorMessage(GetLastError));
|
Re: Hotkey
@xZise: Hmm, weißt Du das jetzt echt net, oder wollst mich zum Narren halten?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz