Einzelnen Beitrag anzeigen

Benutzerbild von -=cats=-
-=cats=-

Registriert seit: 22. Sep 2006
128 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Tastendruck innerhalb vorgegebener Zeit ?

  Alt 30. Nov 2006, 10:09
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 ...
  Mit Zitat antworten Zitat