Entwickler-Ecke
Sonstiges (Delphi) - Onkeydown problem
Toastbrotbaby - Do 15.12.05 12:36
Titel: Onkeydown problem
Moin,
folgendes Problem.
Ich habe 8 Button die mit einem OnClick Ereignis versehen sind.
Aber ich weiss auf teufel komm raus nicht wie ich es machen soll das die das auch per OnKeyDown tun. Es soll ein einfacher Hotkey werden. Wenn ich das OnClick erstelle muss ich ja nur nen Doppelklick auf den Button machen und ihm sagen was er zu tun hat. Aber wie sage ich ihm das er das auch auf Tastendruck zu tun hat?
Ich hoffe ihr könnt mir helfen.
Gruss
Toast
Fienix - Do 15.12.05 12:43
erstmal
Form1.KeyPreview := TRUE;
dann nur noch im Form1 doppelt auf das OnKeyPress Ereignis klicken und
Delphi-Quelltext
1:
| if Key = HotKey then Btn1.Click; |
Toastbrotbaby - Do 15.12.05 12:50
also wenn ich dich richtig verstanden habe ...
KeyPreview ist schon auf True. Das ist das einzige was ich schon wusste :)
Delphi-Quelltext
1:
| if Key = HotKey then Btn1.Click; |
Das dann in abgewandelter Form 8 mal in die Procedure schreiben direkt hintereinander weg?
Danke für deine schnelle antwort.
Gruss
Toast
Fienix - Do 15.12.05 12:54
Genau,
schöner und schneller ist natürlich
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| case Key of HotKey1 : Bt1.Click; HotKey2 : Bt2.Click; HotKey3 : Bt3.Click; ...... end; |
Toastbrotbaby - Do 15.12.05 12:54
Hmmm ....
Ich kriege die Fehlermeldung "Inkompatible Typen" bei dem Then.
KeyPreview ist True. Warum auch immer das jetzt wieder so ist.
Hmm ...
Also ich hab jetzt die Case of Variante ausprobiert. Es kommt schon mal keine Fehlermeldung. Ist schon besser als die if then sache.
Aber das Hauptproblem ist noch da. Es funktioniert leider noch nicht. Muss ich an den Buttons noch irgendwelche einstellungen vornehmen?
oder sonst noch was tun?
VK_Numpad1 ist doch die Taste 1 auf dem Numblock oder? bzw VK_Shift ist doch Shift ... oder irre ich?
Gruss
Toast
Fienix - Do 15.12.05 13:02
Bei KeyPress musst du die wirklichen Tastencodes angeben,
bei KeyDown oder KeyUp die virtuelle Windows-Tastencode (VK_ * )
mach am besten nen BreakPoint beim if, dann kannst du den Tastencode aus der "Key" Variable lesen
und eintragen!
Toastbrotbaby - Do 15.12.05 13:40
okay hab es jetzt in ein OnKeyDown umgeschrieben und mit den VK codes gemacht. Funktioniert bestens.
Jetzt kommt noch ein winziges Problem auf mich zu. Die Hotkeys funktionieren nicht wenn das programm minimiert ist. Kann man das so umschreiben das es auch funktioniert wenn das teil minimiert wurde?
Gruss
Toast
Fienix - Do 15.12.05 13:50
Tja, :? das ist der Nachteil, das Fenster muss immer den Focus haben.
Ansonsten musst du mal nach
HOOKS suchen!
Toastbrotbaby - Do 15.12.05 14:15
Danke euch beiden.
habe mir beides angesehen und habe gelesen das die Hooks etwas komplizierter sind als die RegisterHotkeys
:)
Gruss
Toast
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!