[Lazarus-es] virtual keys: ctrl fx

Paola Bruccoleri pbruccoleri en adinet.com.uy
Sab Ago 17 18:21:17 CEST 2013


El 13/08/2013 20:37, José Mejuto escribió:
> El 14/08/2013 0:51, Paola Bruccoleri escribió:
>> El 13/08/2013 18:51, José Mejuto escribió:
>>> El 13/08/2013 16:53, Paola Bruccoleri escribió:
>>>> Hola todos..
>>>>
>>>> existe la constante para la combinación de teclas CTRL F10??
>>>> no la encuentro; quizás aquí no se puedan capturar esas 
>>>> combinaciones de
>>>> tecla para ejecutar algo...
>>>>
>>>
>>> Las virtual keys son sólo de una key ;) Creo que te refieres a esto:
>>>
>>> procedure LoQueSea.KeyDown(var Key: Word; Shift: TShiftState);
>>> begin
>>>   if key=VK_F10 and Shift=[ssCtrl] then begin
>>>     blah;
>>>     blah;
>>>   end;
>>> end;
>>>
>> Hola José..
>> lo probé recién y me sale este error al compilar:
>> Error: Incompatible types: got "TShiftState" expected "LongInt"
>
> Hola,
>
> Se me han quedado atrás un par de paréntesis:
>
> procedure LoQueSea.KeyDown(var Key: Word; Shift: TShiftState);
> begin
>   if (key=VK_F10) and (Shift=[ssCtrl]) then begin
>     blah;
>     blah;
>   end;
> end;
>
>
Hola José...

se me ha presentado un petit problemita con esto de las combinaciones de 
teclas.
En el formKeyDown capturo varias Fx, y entre ellas tengo definidas F2 y 
CTRL F2 que obviamente hacen diferentes cosas.

if (key=VK_F2) then begin
----
end;
if(key=VK_F2) and (Shift=[ssCtrl]) then begin
----
end;

PERO... si presiono CTRL F2, primero pasa por la rutina de F2 y luego 
por la de CTRL F2

si cambio la estructura y pongo el 2do if dentro del else del primer if, 
por más que presione ctrl f2, siempre ejecuta F2

existirá alguna otra forma de solucionarlo??
muchas gracias!







More information about the Lazarus-es mailing list