Otra solución:
El error que se muestra (en inglés) se produce en el método virtual
ValidateError de TCustomMaskEdit:
Código:
procedure TMaskEdit.ValidateError;
begin
MessageBeep(0);
raise EDBEditError.CreateResFmt(@SMaskEditErr, [EditMask]);
end;
Como el mensaje de error lo toma de un recurso del programa supongo entonces que puede sustituirse dicho recurso. Aquí mismo en el club están los recursos en español.
Pero otra manera de hacer esto consiste en derivar una clase de TMaskEdit redefiniendo dicho método virtual. Lo qe me parece interesante es que no es necesario instalar un nuevo componente y sustituir todas las ocurrencias que de él tengamos en nuesro formulario. Bastará declararlo así
antes de la declaración de la clase del formulario:
Código:
type
TMaskEdit = class(Mask.TMaskEdit)
protected
procedure ValidateError; override;
end;
TForm1 = class(TForm)
{ métodos y propiedades }
end;
implementation
procedure TMaskEdit.ValidateError;
begin
MessageBeep(0);
raise EDBEditError.Create('Formato incorrecto');
end;
end.
"Mágicamente" todos los controles MaskEdit que hubiéramos tenido en el formulario serán instancias del nuevo TMaskEdit.
No sé si cumple los requisitos de "más elegante" que pide el amigo
marcoszorrilla pero me parece interesante.
// Saludos