Solange eine Taste gedrückt wird

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
Chris237
Beiträge: 11
Registriert: Mi 18. Sep 2013, 20:09

Solange eine Taste gedrückt wird

Beitrag von Chris237 »

Hallo Leute,

Ich würde gerne in einem Programm implementierend das wenn ich eine Taste z.B. 'l' drücke ein Panel grün wird und sobald ich wieder loslasse das Panel schwarz wird.

leider habe ich bis her noch keine Lösung gefunden.

Vielleicht hat einer von euch eine Idee.

Danke für die Hilfe

Gruß

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Solange eine Taste gedrückt wird

Beitrag von wp_xyz »

Das Formular reagiert auf die Ereignisse OnKeyDown und OnKeyUp. Dort kannst du das gewünschte Verhalten einbauen. Falls sich auf dem Formular neben dem Panel auch weitere Controls befinden, insbesondere solche, die selbst Tastaturereignisse empfangen können, musst du noch die Eigenschaft KeyPreview des Formulars auf true stellen, sonst werden die Tastaturereignisse vom fokussierten Control bearbeitet und nicht bis zum Formular weitergeleitet.

Also:
  • auf OnKeyDown des Formulars doppelt klicken, im erscheinenden Methoden-Rumpf den Code eintragen, um das Panel grün einzufärben (Panel1.Color := clGreen)
  • auf OnKeyUp des Formulars doppelt klicken, im Methoden-Rumpf das Panel schwarz färben
  • ggfs. die Eigenschaft KeyPreview des Formulars auf true setzen

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1430
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Solange eine Taste gedrückt wird

Beitrag von fliegermichl »

...und in Onkeydown prüfen, ob Key = ORD('L') ist.

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Solange eine Taste gedrückt wird

Beitrag von Mathias »

fliegermichl hat geschrieben:...und in Onkeydown prüfen, ob Key = ORD('L') ist.

Für diesen Zweck, gibt es schon vordefinierte Konstanten in der Unit LCLType.

Code: Alles auswählen

if Key = VK_L then ....
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1430
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Solange eine Taste gedrückt wird

Beitrag von fliegermichl »

So ist natürlich noch besser. In der Zeit als ich programmieren gelernt habe, gab es das noch nicht.

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Solange eine Taste gedrückt wird

Beitrag von Mathias »

Das ging mir auch so, man lernt immer wieder dazu.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten