Autor Beitrag
Toastbrotbaby
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98



BeitragVerfasst: Do 15.12.05 12:36 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109

Win 2K, Win XP Pro, Win 7
D 5 Pro., D 7 Ent., D 2010 Pro.
BeitragVerfasst: Do 15.12.05 12:43 
erstmal
Form1.KeyPreview := TRUE;

dann nur noch im Form1 doppelt auf das OnKeyPress Ereignis klicken und
ausblenden Delphi-Quelltext
1:
if Key = HotKey then Btn1.Click;					
Toastbrotbaby Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98



BeitragVerfasst: 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 :)


ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109

Win 2K, Win XP Pro, Win 7
D 5 Pro., D 7 Ent., D 2010 Pro.
BeitragVerfasst: Do 15.12.05 12:54 
Genau,

schöner und schneller ist natürlich

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
case Key of
  HotKey1 : Bt1.Click;
  HotKey2 : Bt2.Click;
  HotKey3 : Bt3.Click;
  ......
end;
Toastbrotbaby Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109

Win 2K, Win XP Pro, Win 7
D 5 Pro., D 7 Ent., D 2010 Pro.
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109

Win 2K, Win XP Pro, Win 7
D 5 Pro., D 7 Ent., D 2010 Pro.
BeitragVerfasst: Do 15.12.05 13:50 
Tja, :? das ist der Nachteil, das Fenster muss immer den Focus haben.

Ansonsten musst du mal nach Suche in der Entwickler-Ecke HOOKS suchen!
azubi_20
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 593

WinXP SP2, Ubuntu 8.4
D7 Enterp., D2005 Prof., Java (Eclipse 3.4.0)
BeitragVerfasst: Do 15.12.05 13:51 
Es ist möglich, aber etwas komplizierter. Schau dir mal RegisterHotKey an.
Beispiel
Toastbrotbaby Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98



BeitragVerfasst: 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