AGB  ·  Datenschutz  ·  Impressum  







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

Abfrage von Tastaturereignissen

Ein Thema von Tyrael Y. · begonnen am 6. Aug 2003 · letzter Beitrag vom 7. Aug 2003
Antwort Antwort
Seite 1 von 2  1 2      
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#1

Abfrage von Tastaturereignissen

  Alt 6. Aug 2003, 12:07
Hi,
innerhalb meines Formulars soll der Benutzer STRG + G oder
STRG+Shift+G drücken....

ich habe eine Abfrage in der ich prüfen möchte ob die erste oder die zweite Tastenkombinaton gedrckt wurde ....

in OnKeyDown Frage ich....

if Shift = [ssShift] then
begin
if ((Shift = [ssCtrl]) and (Key = Ord('G')))then
ActEditUserExecute(Sender);
end;

für STRG+SHIFT+G....
nur klappt das nicht.....

wie kann ich rausfinden, ob CTRL+Shift gedrückt wurde ????

Danke euch schon mal..

Grüße Tyrael
Levent Yildirim
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Abfrage von Tastaturereignissen

  Alt 6. Aug 2003, 12:19
Das kann so auch nicht gehen. Du fragst ab, ob Shift gleich ssShift ist, und dann ob es gleich ssCtrl ist. Beides kann aber nicht sein. Um herrauszufinden, ob beides gedrückt wurde, musst du den in-Operator verwenden:

if ssShift in Shift then
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Abfrage von Tastaturereignissen

  Alt 6. Aug 2003, 12:31
und für Ctrl+Shift+U ???

.... if Shift in [ssCtrl, ssShift] and Key = 71 then ??

...wenn ja, dann trifft diese bedingung doch auch für Ctrl+U und Shift+U zu..., oder?
Levent Yildirim
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Abfrage von Tastaturereignissen

  Alt 6. Aug 2003, 12:39
Ctrl-Shift-U:
if (ssCtrl in Shift) and (ssShift in Shift) and (Key=71) then vielleicht geht das auch (nicht getestet):
if ([ssCtrl,ssShift] in Shift) and (Key=71) then Shift-U:
if (ssShift in Shift) and (Key=71) then
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Dannyboy

Registriert seit: 4. Aug 2003
Ort: Delphi-Heaven
418 Beiträge
 
Delphi 7 Personal
 
#5

Re: Abfrage von Tastaturereignissen

  Alt 6. Aug 2003, 12:49
Vielleicht geht das ja einfacher mit dem Windows-Ereignis GetAsyncKeyState.
Dieses wendet man auf alle 3 Tasten an und dann funst das.
Kleines Beispiel gefällig ?
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Abfrage von Tastaturereignissen

  Alt 6. Aug 2003, 13:03
@chewie ... danke für das Beispiel..., so funktioniert es jetzt

@danny ...wäre nett ein kleines Besispiel, weil so sagt es mir jetzt erst mal nix...


danke euch allen

Tyrael
Levent Yildirim
  Mit Zitat antworten Zitat
Dannyboy

Registriert seit: 4. Aug 2003
Ort: Delphi-Heaven
418 Beiträge
 
Delphi 7 Personal
 
#7

Re: Abfrage von Tastaturereignissen

  Alt 6. Aug 2003, 14:46
Delphi-Quellcode:
// Funktion gibt True zurück, wenn Taste 'VK_KEY' gedrückt wurde.

Function MyKeyRead(VK_KEY : Integer) : Boolean;
begin
  result:= failed(GetAsyncKeyState(VK_KEY));
end;


// Funktion gibt True zurück, wenn alle 3 Tasten gedrückt wurden

Function Read_3_Keys(Key1, Key2, Key3 : Integer) : Boolean;
begin
  Result:= MyKeyRead(Key1) AND MyKeyRead(Key2) AND MyKeyRead(Key3);
end;
Hinweis:

Für die virtual keys gibt es in der Unit Windows Konstanten,
wie z.b. VK_SHIFT für die Shift-Taste, etc.
Für Buchstaben nimmst Du am besten ord('U') für 'U'.
Achtung, immer GROSSE Buchstaben verwenden.

Habe hier auf der Arbeit keinen Compiler, aber so müsste das stimmen.
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Abfrage von Tastaturereignissen

  Alt 6. Aug 2003, 15:20
danke dir danny, es läuft mittlerweile auf die andere Art, wei es oben beschrieben ist, aber ich werde auch diese Variante mal testen....


vielen dank ... da mach ich doch mal einen Luftspru..

Levent Yildirim
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Abfrage von Tastaturereignissen

  Alt 6. Aug 2003, 15:21
Mein Delphi kennt das Schlüsselwort failed nicht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Abfrage von Tastaturereignissen

  Alt 6. Aug 2003, 16:12
... ich wollte es gerade auch testen und mein Delphi kennt failed auch nicht .....

.. ich benutze Delphi 5 Pro...
..welche Version benutzt du ?
Levent Yildirim
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 18:40 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