Autor Beitrag
mk2
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 72

WIN 2000
D4 Prof
BeitragVerfasst: Di 01.10.02 11:28 
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
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



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

WIN 2000
D4 Prof
BeitragVerfasst: 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
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 01.10.02 11:50 
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: Di 01.10.02 11:50 
Hi mk2,

Luckie hat vollkommen recht und selbst bei mir funtzt des.

Versuchs mal mit folgendem Code:

ausblenden 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;

_________________
Viele Grüße
Jakob
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: Di 01.10.02 11:58 
Zitat:
Hast du was anderes erwartet?


Natürlich nicht :beer:

Zitat:
Wunder der Technik.


:mrgreen:

_________________
Viele Grüße
Jakob
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: 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

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
mk2 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 72

WIN 2000
D4 Prof
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: 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

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
mk2 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 72

WIN 2000
D4 Prof
BeitragVerfasst: 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 ?