[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