Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Keypress : Strg+Shift ? (https://www.delphipraxis.net/128129-keypress-strg-shift.html)

thomas2009 24. Jan 2009 21:57


Keypress : Strg+Shift ?
 
Hallo

in Onkeydown funktioniert dieser Code wunderbar:
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin

if (not(ssCtrl in Shift) and not (ssShift in Shift) ) then Begin
    ShowMessage('Strg+Shift');end;
if ((ssCtrl in Shift) and not (ssShift in Shift) ) then Begin
    ShowMessage('Strg');end;
Wie soll der Code in FormKeypress und in FormShortCut ?

SirThornberry 24. Jan 2009 22:01

Re: Keypress : Strg+Shift ?
 
warum willst du diesen Code wo anders auslagern? OnKeyDown und OnKeyPress unterscheiden sich entscheident. Im OnKeyDown bekommst du die Taste welche gedrückt wurde im OnKeyPress hingegen bekommst du das Zeichen was dabei entsteht.

himitsu 24. Jan 2009 22:04

Re: Keypress : Strg+Shift ?
 
sicher, daß der so wunderbar funktioniert?
(die Abfrage für Strg+Shift sieht jedenfalls falsch aus)

und in FormKeyPress geht das garnicht, da dort die Control-Tasten nicht einzeln übergeben werden

Fussball-Robby 24. Jan 2009 22:04

Re: Keypress : Strg+Shift ?
 
Zitat:

Zitat von thomas2009
in Onkeydown funktioniert dieser Code wunderbar:
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin

if ((ssCtrl in Shift) and not (ssShift in Shift) ) then Begin
    ShowMessage('Strg+Shift');end;
if ((ssCtrl in Shift) and not (ssShift in Shift) ) then Begin
    ShowMessage('Strg');end;

Ich glaube kaum, dass der Code wunderbar funktioniert. Denn du fragst zwei mal den gleichen Status ab (Strg gedrückt, Shift nicht). Auch mir stellt sich die Frage: Warum willst du den Code woanders hin verlagern?

thomas2009 24. Jan 2009 22:09

Re: Keypress : Strg+Shift ?
 
Sorry, Ich habe "not" ein mal vergessen
also so :
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin

if (not(ssCtrl in Shift) and not (ssShift in Shift) ) then Begin
    ShowMessage('Strg+Shift');end;
if ((ssCtrl in Shift) and not (ssShift in Shift) ) then Begin
    ShowMessage('Strg');end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:27 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