Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Tastaturabfrage funzt net (https://www.delphipraxis.net/15066-tastaturabfrage-funzt-net.html)

Spurius 21. Jan 2004 13:55


Tastaturabfrage funzt net
 
Hallo,
bei mir funzt dieser Code nicht:
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 case key of
   vk_up: showmessage('test');
 end;
end;
Weiss jemand woran das liegt? Der Code müsste eigentlich stimmen.
Gruß
Spurius

Die Muhkuh 21. Jan 2004 13:56

Re: Tastaturabfrage funzt net
 
Hi,


probier das mal in OnKeyPress

Spurius 21. Jan 2004 14:02

Re: Tastaturabfrage funzt net
 
Also da kommt inkompatible Typen:
Delphi-Quellcode:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
 if key=vk_up then showmessage ('test');
end;

Die Muhkuh 21. Jan 2004 14:16

Re: Tastaturabfrage funzt net
 
Sorry Spurius,


ich hab total Mist gesagt :oops:, aber wenn ich deinen Quellcode nehme und bei mir in OnKeyDown mache geht alles wunderbar!

Hatte die Form den Focus? Oder setz mal von der Form das KeyPreview auf True.

scp 21. Jan 2004 14:16

Re: Tastaturabfrage funzt net
 
Also auf einem leeren Formular funktioniert dein Code, wenn der Code aber auch funktionieren soll, wenn gerade ein Control (Edit usw.) aktiviert ist, dann musst du im OI bei den Eigenschaften des Forms den Wert KeyPreview auf True setzen.

Die Muhkuh 21. Jan 2004 14:23

Re: Tastaturabfrage funzt net
 
Was noch dazu gesagt werden sollte:


Navigatortasten funkionieren NICHT mit KeyPreview! Das sidn z.B. Pfeiltasten, tab,....

Und du musst bei Active Control noch was einstellen und das muss den OnKeyDown ham!

Steht auch alles in der Hilfe:

Zitat:

Zitat von Die göttliche Hilfe
Die Eigenschaft KeyPreview bestimmt, ob das Formular Tastaturereignisse vor dem aktiven Steuerelement erhält.

Delphi-Syntax:

property KeyPreview: Boolean;


Beschreibung

Hat KeyPreview den Wert true, erhält das Formular Tastaturereignisse vor dem aktiven Steuerelement (das in der Eigenschaft ActiveControl angegeben ist).

Ist KeyPreview auf false gesetzt, gehen Tastaturereignisse an das aktive Steuerelement.

Die Einstellung bezieht sich nicht auf Navigationstasten (TAB, Pfeiltasten usw.), da diese keine Tastaturereignisse auslösen. Ähnliches gilt, wenn eine Schaltfläche den Fokus hat oder wenn dessen Eigenschaft Default den Wert true hat. Die Eingabetaste wird von KeyPreview nicht berücksichtigt, da diese kein Tastaturereignis auslöst.

Die Standardeinstellung für KeyPreview ist false.


Spurius 21. Jan 2004 14:32

Re: Tastaturabfrage funzt net
 
Oh, geht
Thx
Spurius


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