Jetzt verstehe ich dein Problem! Bei dir klappt es nicht, dass sich Schläger 1 und 2 gleichzeitig bewegen lassen.
Das könntest du leicht über einen Timer (Intervall max. 50) lösen:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if getAsyncKeyState(65) < 0 then // a
Schlaeger1.Top := Schlaeger1.Top + 20
else if getAsyncKeyState(81) < 0 then // q
Schlaeger1.Top := Schlaeger1.Top - 20;
if GetAsyncKeyState(vk_up) < 0 then // arrow up
Schlaeger2.Top := Schlaeger2.Top - 20
else if GetAsyncKeyState(vk_down) < 0 then // arrow down
Schlaeger2.Top := Schlaeger2.Top + 20
end;
Nur kann es dabei vorkommen, dass bei einem Tastendruck der Schläger um 2 Einheiten bewegt wird bzw. bei zu kurzem Druck gar nicht. Nur wie man das am gescheitesten löst, kann ich dir nicht sagen. Natürlich könnte man das in einen Thread auslagern, doch das halte ich fast für etwas overkilled.