Campo DateTime

26/10/2009

Alguém já teve problemas com campos DateTime onde se tem de alterar as propriedades do painel de controle/Opções Regionais e de Idioma.../Personalizar.../Números... e no campo "Separador de Lista" alterar o caracter que estava lá de ";" (ponto-e-vírgula) para "/" (barra) ?

Meu sistema é com Delphi 2006 + Firebird 2.0 + DbExpress. Formatei a máscara para 99/99/9999;1;_

Distribui a aplicação e dava erro no campo Edit que recebia a data no formato acima, aparecia uma mensagem de erro como: 'xx//xx//xxx' is not valid date time.  Esse mesmo erro não ocorria no PC que usei para desenvolver a aplicação, então suspeitei de configurações do Painel de Controle do PC em que instalei a aplicação.

Ao alterar o campo descrito no primeiro parágrafo, o erro cessou, contudo ficou a dúvida.

Eu poderia ter feito alguma alteração no programa para evitar ou prevenir tal erro? Alguém já enfrentou problema semelhante, como corrigiu? Terei de alertar o usuário a respeito do possível erro?

Grato pelas respostas !

Alessandre.

Alessandre Niza

Respostas

26/10/2009

Rogerio

defina os formatos logo quando for iniciar o sistema, ou seja, no evento OnCreate ou OnShow do form principal:
var
   aFormatSettings : TFormatSettings;
begin
   GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT, aFormatSettings);
   with aFormatSettings do
    begin  
       DateSeparator := '/';                       // define a barra separador de data.
       ShortDateFormat := 'dd/mm/yyyy';  // define o formato usado nos campos do tipo data.
    end;
end;

Responder Citar