AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Hotkey

Ein Thema von xZise · begonnen am 22. Dez 2006 · letzter Beitrag vom 23. Dez 2006
Antwort Antwort
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#1

Hotkey

  Alt 22. Dez 2006, 15:22
Ich wollte mir 4 Hotkeys registieren.
Nur dummerweise scheint es nicht zu gehen...
Delphi-Quellcode:
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;
Die Hotkey sind:
<strg> + <o>
<strg> + <s>
<strg> + <alt> + <r>
<strg> + <alt> + <c>
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#2

Re: Hotkey

  Alt 22. Dez 2006, 15:57
Hallo!

Zitat von xZise:
Nur dummerweise scheint es nicht zu gehen...
Hmm, das war ne sehr präzise Fehlermeldung

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 ).

Grüßle!
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Hotkey

  Alt 22. Dez 2006, 16:50
Zitat von Sunlight7:
Was sagt der GetLastError?
Wie komme ich daran?

Zitat von Sunlight7:
Was mir aber auffiel ist, die Hot-Keys werden erst gesetzt, wenn man das Formular frmSettings schließt (Oh Wunder ).
Ja, scheint wohl so zu sein.
Und was mir auffiel, die frmSettings ist eine "Zusatzform", und frmMain bleibt erhalten (Oh Wunder ).

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]
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Hotkey

  Alt 23. Dez 2006, 12:22
Problem behoben!

Ich hatte im Header das  message WM_HOTKEY; vergessen
Jetzt funktioniert es auch alles wunderbar
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#5

Re: Hotkey

  Alt 23. Dez 2006, 15:07
Zitat von xZise:
Zitat von Sunlight7:
Was sagt der GetLastError?
Wie komme ich daran?
Das meinste jetzt aber net ernst

Edit: Nächste mal zeig auch den Quelltext, wo der Fehler drin steckt
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#6

Re: Hotkey

  Alt 23. Dez 2006, 15:34
Man muss wohl alles wissen um Fragen zu stellen
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Hotkey

  Alt 23. Dez 2006, 16:22
Moin Fabian,

vielleicht wird es so deutlicher: MSDN-Library durchsuchenGetLastError

BTW:
Den Klartext eines Fehlercodes kann man sich meist so
ShowMessage(SysErrorMessage(GetLastError)); anzeigen lassen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#8

Re: Hotkey

  Alt 23. Dez 2006, 16:28
@xZise: Hmm, weißt Du das jetzt echt net, oder wollst mich zum Narren halten?
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz