PDA

Ver la Versión Completa : Key o Integer?


MaMu
31-01-2008, 21:58:30
procedure TForm1.ListView2KeyPress(Sender: TObject; var Key: Char);
begin
case Key of
VK_RIGHT : Image3.Left:=Image1.Left+1;
VK_LEFT : Image3.Left:=Image1.Left-1;
VK_UP : Image3.Top:=Image1.Top-1;
VK_DOWN : Image3.Top:=Image1.Top+1;
end;
end;


ERROR: incompatible types: 'Char' and 'Integer'

Porque me salta este error?

Saludos

keyboy
31-01-2008, 22:02:37
Key es Char y VK_RIGHT, etc. son Integer. Además, KeyPress no creo que detecte esas teclas, mejor usa OnKeyDown u OnKeyUp

Bye

enecumene
31-01-2008, 22:36:56
Key es Char y VK_RIGHT, etc. son Integer. Además, KeyPress no creo que detecte esas teclas, mejor usa OnKeyDown u OnKeyUp

Bye

Estoy de acuerdo con KeyBoy yo los uso en el evento keydown y me funciona, el evento KeyPress se usa con los key Codes, ejemplo:

if Key = #13 then //#13 es ENTER del teclado.
begin
//vainas:D
end;

y en el KeyDown se usa VK_ENTER

Saludos.

ixMike
31-01-2008, 22:47:57
En el evento OnKeyPress key es de tipo Char: sólo sirve para cosas que se pueden "escribir".

Para demás VKs, utiliza el OnKeyDown o el OnKeyUp, como ya te han indicado.

Y si quieres utilizar el Key del OnKeyPress como número, utiliza la funcion Ord:


Num:=Ord(Key);


Eso devolverá el valor ASCII (o ANSI, no estoy seguro) de la tecla (letra o símbolo) pulsado. No sirve para teclas como F1, F2..., las flechas, Ctrl, Alt... sólo para cosas que se puedan escribir, Enter, Tabulación, Retroceso, y Escape (y creo que dos o tres más).


Salu2.