Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Tatiane.InterArt

Máscara para data DD/MM/YY no MaskEdit

Recommended Posts

Ja fiz isso, ja mudei o estilo da data no Painel de controle, e ainda assim ele está como MM/DD/YY

Sabe no EditMask onde muda a Máscara, bem lá ja mostra bem claro q o MaskEdit tem por máscara MM/DD/YY, no exemplo da data está assim 06/27/94, mostra claramente q é ao contrário.

No Banco o Item Data está salvo como TimesTamp, ou seja deveria assumir a data do sistema!

 

Não sei mais o q fazer!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade estou fazendo as duas coisas, informando uma data através do MaskEdit e pegando essa informação e jogando nele novamente no momento da alteração!

 

Por menorias to mesmo achando q o problema é no banco afinal de contas, digito 10/11/07, quando salvo aparece no meu DBGrid 11/10/07 rsrsrsrs, parece coisa de doido!

E como ja disse ja mudei no Painel de Controle o estilo da data, e me disseram que pro Dialect 3 é melhor declarar data como Timestamp.

Nossa estou desde ontem com esse pequenino problemão!

Compartilhar este post


Link para o post
Compartilhar em outros sites

{Valida data no formato ddmmaa ou no formato ddmmaaaa}

 

function VDATA(Dado: string): boolean;

var SalvaFormato,

DataExterna: string;

DataInterna: TDateTime;

Separador: string;

begin

Result := true;

Separador := DateSeparator;

while Pos(Separador, Dado) > 0 do

Delete(Dado, Pos(Separador, Dado), 1);

if Length(Dado) = 6 then

Dado := Copy(Dado, 1, 2) + Separador +

Copy(Dado, 3, 2) + Separador + '19' +

Copy(Dado, 5, 2)

else

if Length(Dado) = 8 then

Dado := Copy(Dado, 1, 2) + Separador +

Copy(Dado, 3, 2) + Separador +

Copy(Dado, 5, 4)

else

Result := false;

if Result then

begin

SalvaFormato := ShortDateFormat;

try

ShortDateFormat := 'd' + Separador + 'm' + Separador + 'y';

DataInterna := StrToDate(Dado);

except

on EConvertError do

begin

Result := false;

ShortDateFormat := SalvaFormato;

end;

end;

if Result then

begin

try

ShortDateFormat := 'dd' + Separador + 'mm' + Separador + 'yyyy';

DataExterna := DateToStr(DataInterna);

except

on EConvertError do

begin

Result := false;

ShortDateFormat := SalvaFormato;

end;

end;

if Result and (DataExterna <> Dado) then

Result := false;

end;

ShortDateFormat := SalvaFormato;

end;

end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade isso até poderia resolver sim, e foi de alguma ajuda, mas não muda o formato da data no Banco q é o que realmente to precisando, depois de muito tentar várias coisas, percebi, que nem Máscara do MaskEdit, nem nada, o problema mesmo está no banco, Declarei como TimesTamp, e isso está fazendo a data ficar no formato MM/DD/YY mesmo ja tendo mudado isso no Painel de Controle.

Vou fazer alguns testes com o tipo Date, se isso também não resolver não sei!

Aí vou ter q declarar como Varchar mesmo e penas pra fazer as pesquisas por período!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é necessário passar para Varchar... Visto que podem ser feitas mudanças no formato da data entre a exibição e a gravação...

 

Basta para Exibir você Alterar o Formato para DD/MM/YYYY e para gravar você pega o valor digitado e converte para MM/DD/YYYY.... http://forum.imasters.com.br/public/style_emoticons/default/natal_smile.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.