Tengo una aplicacion MDI, y no me funciona la tecla delete en toda la aplicacion, solo funciona en la ventana de Login, que no forma parte de la aplicacion MDI.
Tengo puesto para que pase de control con el Enter y tambien en algunos campos filtro los caracteres que se pueden escribir. De todas formas afecta a todos los formularios de la aplicacion, incluso alguno en los que no tengo programado ningun evento sobre las teclas.
Con este codigo hago lo del Enter
Código PHP:
if (Key = #13) then { if it's an enter key }
if (ActiveControl is TEdit) or
(ActiveControl is TDBEdit) or
(ActiveControl is TComboBox) or
(ActiveControl is TMaskEdit) then
begin
Key := #0; { eat enter key }
Perform(WM_NEXTDLGCTL, 0, 0); { move to next control }
end;
y con este el filtro
Código PHP:
if (StrScan('0123456789QWERTYUIOPÑLKJHGFDSAZXCVBNMqwertyuiopñlkjhgfdsazxcvbnm',Key) <> nil) or
(Key = Char(VK_BACK)) then //BackSpace Key
begin
{Aqui tu tratamiento normal del evento}
{Here the normal event treatment}
end
else
Key := #0;
Estos trozos de codigo estan en el evento OnKeyPress, el del enter en el fromulario y el otro en cada control que quiero filtrar. Tambien tengo la propiedad keypreview de los formularios donde programo el evento a true.
Un saludo y gracias