Ver Mensaje Individual
  #2  
Antiguo 03-11-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Reputación: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por kanvictor
...Bueno hoy estaba muy divertido en mi casa, Mar del Plata, hacia calor asi que me decidi a entretenerme ...
Lindo día en tu ciudad, calor, vallas, policías, militares y a la espera del kaiser...
Tu problema es que tu código toma el KeyDown y el KeyUp, por eso lo ves repetido.
Una de las cosas que podrías hacer, es definir la constante LLKHF_UP:
Código Delphi [-]
const
 LLKHF_UP = $00000080;
Y discriminar uno de los momentos:
Código Delphi [-]
  if (PKbdHookInfo(LParam).Flags and LLKHF_UP = 0) then

Resumiendo:
Código Delphi [-]
const
 LLKHF_UP = $00000080;
...
function KbdHook(Code: Integer; WParam, LParam: DWORD): HHook; stdcall;
begin
  if Code = HC_ACTION then
    with PKbdHookInfo(LParam)^ do
      if (Flags and LLKHF_UP = 0) and ( vkCode in [ord('A')..ORD('Z'), ord('0')..ORD('9'), 8]) then
      begin
        form1.Edit1.Perform(WM_CHAR,VKCODE,0);
        Result:=1;
      end
      else
        Result := CallNextHookEx(Hook, Code, WParam, LParam);
end;


Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.

Última edición por delphi.com.ar fecha: 03-11-2005 a las 13:24:29. Razón: Corrección Ortográfica
Responder Con Cita