Oh das habe ich noch vergessen zu
erwähnen: Die Maus gibt es nicht.
Daher soll man auch den Mauszeiger mit den
Tasten bedienen können.
Ich habe hier einen Lösungsansatz, leider funktioniert
das Diagonale nur so lange, wie der Timer läuft ...
Delphi-Quellcode:
procedure TForm18.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if
key = vk_left
then
begin
SetCursorPos(Mouse.CursorPos.X - 10, Mouse.CursorPos.Y);
JvTimer1.Enabled := true;
end
else
if
key = vk_right
then
SetCursorPos(Mouse.CursorPos.X + 10, Mouse.CursorPos.Y)
else
if
(key = vk_up) and (JvTimer1.Enabled = false)
then
SetCursorPos(Mouse.CursorPos.X, Mouse.CursorPos.Y - 10)
else
if
key = vk_down
then
SetCursorPos(Mouse.CursorPos.X, Mouse.CursorPos.Y + 10)
else
if
((GetKeyState(vk_left) AND 128)=128) AND ((GetKeyState(vk_up) AND 128)=128)
then
begin
// ShowMessage('Links und hoch gleichzeitig gedrückt !');
SetCursorPos(Mouse.CursorPos.X - 1, Mouse.CursorPos.Y - 1);
end;
end;
Jetzt muss ich noch irgendwas mit "onKeyUp" machen.
Denn so geht diagonal ja nur, wenn der Timer läuft. Ist der
Timer abgelaufen, geht der Zeiger wieder ganz normal in die
Richtung nach oben. Und das soll nicht sein ...