AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi OnKeyUp soll nur auf Entf Taste reagieren aber nicht auf Strg+Alt+Ent
Thema durchsuchen
Ansicht
Themen-Optionen

OnKeyUp soll nur auf Entf Taste reagieren aber nicht auf Strg+Alt+Ent

Ein Thema von Piro · begonnen am 9. Apr 2019 · letzter Beitrag vom 9. Apr 2019
Antwort Antwort
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#1

OnKeyUp soll nur auf Entf Taste reagieren aber nicht auf Strg+Alt+Ent

  Alt 9. Apr 2019, 13:29
Moin zusammen,

irgendwie stehe ich auf dem Schlauch und finde keine passende Lösung.

In meiner Anwendung habe ich im OnKeyUp Event meines Grid folgende Logik programmiert.

Delphi-Quellcode:
procedure Tfrm_main.vst_tasksKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 if Key = VK_DELETE then
   tbtn_tasks_menu_deleteClick(Self);

 if Key = VK_F5 then
 begin
   tbtn_tasks_menu_refreshClick(Self);
 end;
end;
Das funktioniert auch super. Nur wenn der Rechner mit Strg+Alt+Entf gesperrt wird und der Fokus auf der Anwendung liegt, wird das Event unfreiwilig ausgelöst.

Gibt es einen Zähler, der mir sagt, wie viele Tasten gedrückt wurden? Oder muss ich OnKeyPress nehmen damit es nicht passiert?

Wie kann ich dafür sorgen, dass kontrolliert wird, ob nur eine Taste gedrückt wurde. Also nur Entf oder F5 oder Insert zum Beispiel und nicht eine Kombination, wo eine Taste drin vorkommt.

Vielen Dank im Voraus.
Sven
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: OnKeyUp soll nur auf Entf Taste reagieren aber nicht auf Strg+Alt+Ent

  Alt 9. Apr 2019, 13:31
Hallo,
GetKeyboardState vielleicht?

Ein Bsp.:
https://stackoverflow.com/questions/...have-the-focus
Heiko
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#3

AW: OnKeyUp soll nur auf Entf Taste reagieren aber nicht auf Strg+Alt+Ent

  Alt 9. Apr 2019, 13:38
Kann es sein, dass das ein XE2 Problem ist? Oder Windows? Unter Rio 10.3 nicht nachstellbar. Ich frage in einer ListView OnKeyDown VK_DELETE ab. STRG+ENTF+DELETE führt meinen Code dennoch nicht aus.
Versuche es mal mit KeyDown statt KeyUp.

------

Uwe Raabe hatte die Lösung denke ich. Klappt zumindest bei mir ohne Probleme. Obwohl ich mit KeyDown auch keine hatte.

Geändert von DieDolly ( 9. Apr 2019 um 13:42 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.009 Beiträge
 
Delphi 12 Athens
 
#4

AW: OnKeyUp soll nur auf Entf Taste reagieren aber nicht auf Strg+Alt+Ent

  Alt 9. Apr 2019, 13:39
Vielleicht hilft ein Seitenblick auf den ShiftState, in etwa so:

 if (Key = VK_DELETE) and (Shift = []) then
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#5

AW: OnKeyUp soll nur auf Entf Taste reagieren aber nicht auf Strg+Alt+Ent

  Alt 9. Apr 2019, 13:42
http://docwiki.embarcadero.com/Libra...es.TShiftState

Manchmal fragt man sich, warum die Doku so schlecht gepflegt wird, und dann und wann wozu es die überhaupt gibt, wenn dort keiner nachschaut.
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#6

AW: OnKeyUp soll nur auf Entf Taste reagieren aber nicht auf Strg+Alt+Ent

  Alt 9. Apr 2019, 13:47
Danke für die vielen Antworten und sorry wenn einige denken, ich würde die Doku nicht lesen.

Wenn ich weiß wo ich das Problem angehen, kann ich es auch besser nachlesen.

Werde die Tipps versuchen und es euch wissen lassen.
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#7

AW: OnKeyUp soll nur auf Entf Taste reagieren aber nicht auf Strg+Alt+Ent

  Alt 9. Apr 2019, 14:07
Danke für die vielen Antworten und sorry wenn einige denken, ich würde die Doku nicht lesen.

Wenn ich weiß wo ich das Problem angehen, kann ich es auch besser nachlesen.
Du hättest das Problem mit Neugier („Was macht dieses seltsame TShiftState eigentlich?“) lösen können, und die (Neugier) kommt vor dem Wissen und auch praktischerweise ganz ohne (Wissen) aus.
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#8

AW: OnKeyUp soll nur auf Entf Taste reagieren aber nicht auf Strg+Alt+Ent

  Alt 9. Apr 2019, 14:16
Ich habe TShiftState naiv mit der Shift-Taste verbunden.

Werde mich mal schlau machen.

Also wenn ich die Logik ins OnKeyDown Event verschieben, ist das Problem gelöst.

Danke alle für die schnellen Antworten und Anregungen.
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#9

AW: OnKeyUp soll nur auf Entf Taste reagieren aber nicht auf Strg+Alt+Ent

  Alt 9. Apr 2019, 14:26
Ok,

Danke Uwe. Das ist die beste Lösung.

Zitat:
Vielleicht hilft ein Seitenblick auf den ShiftState, in etwa so:
 if (Key = VK_DELETE) and (Shift = []) then
Tja, hätte ich mal meine Neugier etwas spielen lassen.

Nochmals an alle vielen Dank. Das ist ein geniales Forum hier.
  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 17:29 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