AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Steuerungstasten "präzise" abfangen

Ein Thema von Coder1990 · begonnen am 15. Nov 2008 · letzter Beitrag vom 17. Nov 2008
 
Benutzerbild von Coder1990
Coder1990

Registriert seit: 2. Nov 2007
116 Beiträge
 
Delphi 2005 Personal
 
#1

Steuerungstasten "präzise" abfangen

  Alt 15. Nov 2008, 15:13
Seas,

zur Erklärung des Titels:
Ich möchte auf das Drücken von Steuerungstasten (Ctrl,Alt,Shift) reagieren. Mit "präzise" meine ich dass mein Programm unterscheiden muss (!) zwischen LCtrl und RCtrl,LAlt und AltGR, LShift und RShift.
Der Zweck?
In einem Memo soll ein "Script" erstellt werden, dafür reagiere ich auf OnKeyDown und OnKeyUp.

Mit allen anderen Tasten klappt alles auch schon wunderbar, aber irgendwie verstehe ich nicht inwiefern ich diese Tasten anderweitig analysieren muss.

Ich hab mir mal einen Quelltext aus dem Internet gezogen und diesen modifiziert. Diese Funktion sollte eigentlich je nach Result werd zeigen welche Taste gedrückt wurde bzw. jetzt nicht mehr (!) gedrückt ist.

Delphi-Quellcode:
function SetKeysGetChange:shortint;
var
b1,b2,b3:boolean;
begin
result:=0;
  b1:= GetKeyState(16) and (-32768+128) <> 0;
  b2:= GetKeyState(17) and (-32768+128) <> 0;
  b3:= GetKeyState(18) and (-32768+128) <> 0;

  if LShift <> (b1 and (GetKeyState(160) <> 0)) then
    result:= C_LShift;
  LShift := result = C_LShift;

  if RShift <> (b1 and (GetKeyState(161)<> 0)) then
    result:=C_RShift;
  RShift := result = C_RShift;

  if LCtrl <> (b2 and (GetKeyState(162)<> 0)) then
    result:=C_LCtrl;
  LCtrl := b2 and (GetKeyState(162)<> 0);

  if RCtrl <> (b2 and (GetKeyState(163)<> 0)) then
    result := C_RCtrl;
  RCtrl := result = C_RCtrl;

  if LAlt <> (b3 and (GetKeyState(164)<> 0)) then
    result := C_LAlt;
  LAlt:= result = C_LAlt;

  if b3 and b2 and (GetKeyState(165)<> 0) then
  begin
    RAlt:=true;
    if RAlt <> LAlt then
      result:=C_RAlt;
  end else
  RAlt:=false;
end;
Hoffe ihr könnt damit etwas anfangen, weil ich dieses Thema null durchblicke (mit LCtrl und RCtrl).

MfG
  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 22:15 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