[Lazarus-es] ruidito
José Mejuto
joshyfun en gmail.com
Mar Jul 13 17:00:51 CEST 2010
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;
--
Best regards,
José
More information about the Lazarus-es
mailing list