Entwickler-Ecke
Windows API - Procedure auf Taste legen!
Starfighter - Mi 21.05.03 18:27
Titel: Procedure auf Taste legen!
Hallo Leute,
Ich hab da mal ne Frage, wie kann man ne Procedure auf eine Taste legen? Auf die "ENTF" Taste?`
Danke für jede Antword
See You
D-Eagle
TheNeon - Mi 21.05.03 18:47
1. KeyPreview einschalten
2. in Form.OnKeyDown abfragen ob es sich um "Entf" handelt und dann Prozedur.Click;
G-McKree - Mi 21.05.03 19:13
ich hab da so n prob, das ich n objekt mit tasten steuere, aber immer nur eine taste als gedrückt gilt
Starfighter - Mi 21.05.03 21:13
Hallo, Danke für die schnelle Antwort.. Ich werde es mal eben schnell testen!! :)
Starfighter - Mi 21.05.03 21:17
Leider klappt das nicht.. Der mit jede Taste an!! :(
Terra23 - Do 22.05.03 00:15
Das funktioniert z.B. mit Hooks.
Such mal im Forum. URL liefere ich evtl. nach; finde das jetzt nicht.. :-)
Christian S. - Do 22.05.03 08:40
@Starfighter: irgendwie könnte man Dir besser helfen, Deinen Code ans Laufen zu bringen, wenn wir Deinen Code kennen würden. Also bitte mal posten!
@TheNeon: wieso eigentlich Prozedur.Click. Du musst doch nicht immer einen Button haben!
TheNeon - Do 22.05.03 11:26
| Peter Lustig hat folgendes geschrieben: |
@TheNeon: wieso eigentlich Prozedur.Click. Du musst doch nicht immer einen Button haben! |
Tjoa ...... hab ich mal so vorausgesetzt ;)
..... ansonsten ohne
.Click :roll: :D
:wink2:
Terra23 - Fr 23.05.03 12:49
So definierst du Hooks:
1) Lege eine eigene Prozedur an:
Delphi-Quelltext
1:
| procedure Taste (Var Druck: TWMHotKey); Message WM_HOTKEY; |
2) Lege eine Konstante an:
3) Registriere deinen Hotkey in der FormCreate
Delphi-Quelltext
1: 2: 3: 4:
| procedure TForm1.FormCreate(Sender: TObject); begin RegisterHotKey(TForm1.Handle, Hugo, 0, VK_SPACE); end; |
4) Belege deine Prozedur mit Befehlen
Delphi-Quelltext
1: 2: 3: 4:
| procedure TForm1.Taste(Var Druck: TWMHotKey); begin If Druck.HotKey=Hugo Then ... Else ...; end; |
5) Gebe den Speicher für den Hotkey in der FormDestroy wieder frei
Delphi-Quelltext
1: 2: 3: 4:
| procedure TForm1.FormDestroy(Sender: TObject); begin UnRegisterHotKey(TForm1.Handle, Hugo); end; |
Dann müßte das eigentlich funktionieren. Eine Liste der virtuellen Codes findest du in der Delphi-Hilfe unter dem Stichwort
Virtuelle Tastencodes. Hier benutzen wir die Taste "VK_SPACE" -> Leertaste
Hoffe, es hilft dir..
///edit -> Die Taste "ENTF" hat den Hotkey
VK_DELETE
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!