Entwickler-Ecke
Sonstiges (Delphi) - Ärger mit Tastaturabfrage
mk2 - Di 01.10.02 11:28
Titel: Ärger mit Tastaturabfrage
Hallo allerseits,
Ich wuerde gerne die Curcortasten in meinem Programm abfragen.
1.Problem:
die Betätigung der Cursortasten löst weder ein KeyDown noch ein Keypress Ereignis aus. Das konnte ich noch lösen indem ich mittels timer alle 100 ms oder so die funktion GetAsyncKeyState aufrufe, allerdings gibts da vielleicht ne elegantere loesung.
2. und viel ärgerlicheres Problem:
Wie kann ich verhindern, dass die Cursortasten von delphi zur Steuerung der Komponenten, die auf meinem formular sind (buttons etc.) verwendet werden? Z.B. wird durch drücken der CursorDown Taste der itemindex der Radiogroupbox verändert.
Wäre nett, wenn mir jemand helfen kann
mfg micha
Delete - Di 01.10.02 11:34
Im OnKeyDown-Ereigniss solltest du eigentlich an die Cursortasten mittels der virtuellen Tastaturcodes drankommen (VK_LEFT, VK_RIGHT, VK_UP, VK_DOWN).
mk2 - Di 01.10.02 11:46
das dachte ich eigentlich auch, aber das problem ist, dass das ereignis durch drücken der cursortasten überhaupt nicht ausgelöst wird.
kann man ausprobieren indem man einfach mal ne form erstellt und beim keydown immer ne message ausgibt. die message erscheint beim drücken fast jeder taste aber nicht bei den cursortasten.
mfg micha
Delete - Di 01.10.02 11:50
Quelltext
1: 2: 3: 4: 5: 6:
| procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if key = VK_LEFT then Messagebox(0, '', '', 0); end; |
Geht!
DeCodeGuru - Di 01.10.02 11:50
Hi mk2,
Luckie hat vollkommen recht und selbst bei mir funtzt des.
Versuchs mal mit folgendem Code:
Quelltext
1: 2: 3: 4: 5: 6:
| procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_Down then ShowMessage('Nach unten ;-)'); end; |
Delete - Di 01.10.02 11:54
DeCodeGuru hat folgendes geschrieben: |
Luckie hat vollkommen recht
|
Hast du was anderes erwartet? :mrgreen:
Zitat: |
und selbst bei mir funtzt des.
|
Wunder der Technik. :roll:
DeCodeGuru - Di 01.10.02 11:58
Zitat: |
Hast du was anderes erwartet? |
Natürlich nicht :beer:
Zitat: |
Wunder der Technik. |
:mrgreen:
LCS - Di 01.10.02 12:02
Luckie hat folgendes geschrieben: |
Wunder der Technik. :roll: |
Ja, aber nur wenn er KeyPreview auf seinem Formular aktiviert hat. Er hat ja Komponenten drauf. :mgreen:
Gruss Lothar
mk2 - Di 01.10.02 13:04
besten dank für die hilfe
ihr habt recht es funktioniert - allerdings nur solange meine form keine komponenten wie buttons etc. hat. sobald da ein paar buttons sind kommen die cursor tasten nicht mehr an. Daran ändert leider auch keypreview nichts.
soweit ich das feststellen konnte gilt das nur für die cursor-tasten und tab -wahrscheinlich weil das die Tasten sind die von windows für die navigation innerhalb von einem fenster gebraucht werden. das wuerd ich gerne ausstellen
na ja, vielleicht hat ja jemand noch ne idee
mfg micha
LCS - Di 01.10.02 13:13
Hi
ich habs gerade nochmal ausprobiert. Es funktioniert definitiv in OnKeyUp. Jede Menge Komponenten auf dem Formular, KeyPreview := True. Liefert sowohl Cursor als auch Tab-Taste
Gruss Lothar
mk2 - Mi 02.10.02 08:54
hey danke, mit onkeyup gehts wirklich, aber komisch dass onkeydown nicht funktioniert. kann mir noch jemand bei der 2. frage weiterhelfen ?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!