[Lazarus-es] ruidito

Paola Bruccoleri pbruccoleri en adinet.com.uy
Mar Jul 13 17:51:31 CEST 2010


José Mejuto escribió:
> Hello Paola,
>
> Saturday, July 10, 2010, 11:50:43 PM, you wrote:
>
>   
>>> Hmmmm... eso si que no tengo ni idea... probaré.
>>>       
> PB> has podido probar esto? si en el tdbedit presiono enter si se dispara el
> PB> evento, pero cuando presiono ESC no.
>
> Lo que sucede es que TDBEdit tiene un control "especial" de la tecla
> "ESC" para cancelar operaciones sobre el dataset. Este control
> especial lo hace en el KeyDown, de modo que si pulsas "ESC" hace sus
> cosas y cambia la tecla "ESC" por "VK_INVALIDKEY" para que no se siga
> procesando. Por lo tanto para que tu sistema funcione tendrás que usar
> el OnKeyDown en vez de OnKeyPress. He probado este código y funciona:
>
> procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
> begin
>      if (Key =  13) and (Shift = 0) and not(ActiveControl is TCustomButton) then
>         begin
>             SelectNext(ActiveControl, True, True);
>             Key := 0; // VK_INVALIDKEY
>         end;
>      if (Key =  27) then // VK_ESC ???
>         begin
>           Key := 0; // VK_INVALIDKEY
>           Close;
>         end;
> end;
>
>   
Hola José..
muchas gracias!!! espero te hayas recuperado de los festejos...!!!

Lo que había hecho es procesar el ENTER en el onkeypress y el ESC en el 
onkeydown, pero quizás así quede más prolijo!!
chauuuuuuuuuuuuuu





More information about the Lazarus-es mailing list