AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Key's funktionieren nicht

Ein Thema von EWeiss · begonnen am 5. Apr 2018 · letzter Beitrag vom 7. Apr 2018
Antwort Antwort
EWeiss
(Gast)

n/a Beiträge
 
#1

Key's funktionieren nicht

  Alt 5. Apr 2018, 21:10
Einfache Sache eigentlich.

Delphi-Quellcode:
WM_KEYDOWN:
  begin

    case wp of
      VK_DOWN, VK_NUMPAD2:
      begin
      
      end;
    end;
  end;
VK_NUMPAD2 funktioniert
VK_DOWN nicht.

gruss

Geändert von EWeiss ( 5. Apr 2018 um 21:16 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.367 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Key's funktionieren nicht

  Alt 6. Apr 2018, 07:57
Diese Steuerungstasten werden vorher von Windows abgefangen, soweit ich mich erinnern kann. Das heißt, dass die bereits abgearbeitet sind, bevor die entsprechende Message bei dir ankommt.

Spontan fällt mir als Lösung nur ein systemweiter Tastaturhook ein. Aber vielleicht hatte ja schon jemand anderes mit dem Problem zu kämpfen und kennt eine bessere Lösung.
Peter
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
977 Beiträge
 
Delphi 6 Professional
 
#3

AW: Key's funktionieren nicht

  Alt 6. Apr 2018, 08:20
Hmm..

VK_Down wird seitens der Windows-Controls abgefangen, wenn diese einen Focus erhalten (z.B. Memo).

Bei VCL könnte mann das so umgehen (Quick and Dirty):
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnMessage := OnAppMess;
end;

procedure TForm1.OnAppMess(var Msg: TMsg; var Handled: Boolean);
begin
  case Msg.message of
    WM_KEYDOWN : begin
      Memo1.Lines.Add('WM_KEYDOWN ' + (IntToStr(Msg.WParam)));
    end;
  end;
end;
Wie Du das bei Non-VCL hin bekommst, weiß ich nicht, aber ich vermute wohl über KeyboardHook.

Stichworte: SetWindowsHookEx UnhookWindowsHookEx WH_KEYBOARD_LL
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#4

AW: Key's funktionieren nicht

  Alt 6. Apr 2018, 11:14
Bei WM_LBUTTONDOWN setze ich den Focus auf den Container wo sich meine Sprites befinden.
Dieses wird dann identifiziert und ich setzte die FocusID.

SprCon.gSetObjectFocusID(SprCon.CurOverObject, 1); Wenn die Callback registriert ist feuere ich das Event.
Delphi-Quellcode:
        If Assigned(SprCon.g_Prop[gP].CallBack) then
        begin
          if SprCon.g_Prop[gP].CallBack(WinHandle, Msg, wP, lP) <> 0 then
          begin
            Result := 0;
            exit;
          end;
        end;
WM_KEYDOWN, UP tut nichts anderes als die Message über die Callback weiterzuleiten.
Warum soll die zu spät kommen?
VK_UP, VK_DOWN, VK_LEFT, VK_RIGHT haben keine Auswirkung, alle VK_NUMPADxxx funktionieren hingegen.

Delphi-Quellcode:
    WM_KEYDOWN, WM_KEYUP:
      begin
        If Assigned(SprCon.g_Prop[gP].CallBack) then
        begin
          if SprCon.g_Prop[gP].CallBack(WinHandle, Msg, wP, lP) <> 0 then
          begin
            Result := 0;
            exit;
          end;
        end;
      end;
Zitat:
Wie Du das bei Non-VCL hin bekommst, weiß ich nicht, aber ich vermute wohl über KeyboardHook.
Habe in noch keiner Anwendung wegen dieser Keys einen Hook setzen müssen weder unter OpenGL noch mit WIn32API mitteln

gruss

Geändert von EWeiss ( 6. Apr 2018 um 12:37 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Key's funktionieren nicht

  Alt 6. Apr 2018, 12:19
Könnte Dir das hier eventuell weiterhelfen? Link 1Link 2
Aber da geht es um globale (!) Hotkeys.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: Key's funktionieren nicht

  Alt 6. Apr 2018, 12:35
Könnte Dir das hier eventuell weiterhelfen? Link 1Link 2
Aber da geht es um globale (!) Hotkeys.
Leider nein, bringt mich nicht weiter.
OK dann gehen halt nur die NumKeys inklusive VK_CONTROL.

Hook baue ich nicht ein.

gruss
  Mit Zitat antworten Zitat
Antwort Antwort


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 19:29 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 by Thomas Breitkreuz