mi evento keydown, tiene el procedure asociado:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
edit1.Text := inttostr(key);
If Key = 40 Then //abajo
if shape3.top <= 149 then shape3.top := shape3.Top + 6;
If Key = 38 Then //arriba
if shape3.Top >= 3 then shape3.Top := shape3.Top - 6;
If Key = 65 Then //A
if shape2.Top >= 3 then shape2.Top := shape2.Top - 6;
If Key = 90 Then //Z
if shape2.Top <= 149 then shape2.Top := shape2.Top + 6;
if key = 113 then//F2
begin
timer1.Enabled := not timer1.enabled
end;
end;
el programa hace 5 comprobaciones, el programa es el antiguo PONG (el de los palitos y la pelota).
si se presiona A o Z, el programa moverá la shape2 arriba o abajo respectivamente. (jugador 1)
si se presiona la flecha arriba o la flecha abajo, en esas direcciones irá el jugador 2.
ahora el problema: cuando presiono una tecla y la mantengo presionada, el eventi se mantiene, y el cosito se mueve hasta que se deje de presionar la tecla, pero si mantengo la primera tecla, y a la vez mantengo presionada una segunda tecla, entonces lo que pasará es que se dejará de mover el primer coso en la primer direccion en que se estaba moviendo, para empezar a moverse el segundo (o el primer coso en una nueva direccion, depende de las teclas que se presionan).
Lo que quiero hacer es que se reconozcan ambas teclas a la ves, asi los jugadores se mueven con libertad ( en el rango reglamentario del ping pong: arriba o abajo)