Validação de variavel do tipo TDateTime...
Na verdade o q eu preciso mesmo eh fazer essa comparacao com base na variavel dDatePgto imagine q ela estivesse dentro de uma funcao e fosse passado como parametro o seu conteudo...
funtion CalculaAtrazo(dDatePgto:tDatetime):integer;
begin
if dDatePgto = StrtoDateTime(' / / ') then begin
showmessage('Data do pagamento esta em branco!')
result:= 0;
else begin
result:= date - dDatePgto;
end;
end;
Obrigado, Paulo Moraes
funtion CalculaAtrazo(dDatePgto:tDatetime):integer;
begin
if dDatePgto = StrtoDateTime(' / / ') then begin
showmessage('Data do pagamento esta em branco!')
result:= 0;
else begin
result:= date - dDatePgto;
end;
end;
Obrigado, Paulo Moraes
Paulo
Curtidas 0
Respostas
Wilson Junior
29/10/2010
Bom, acho que você deve separar as coisas. Se o nome da sua rotina é CalculaAtrazo, a mesma deve somente calcular o atraso e a verificação deve ser feita antes de chamar esta rotina.
Espero ter colaborado.
Espero ter colaborado.
GOSTEI 0
Paulo
29/10/2010
Bom, acho que você deve separar as coisas. Se o nome da sua rotina é CalculaAtrazo, a mesma deve somente calcular o atraso e a verificação deve ser feita antes de chamar esta rotina.
Espero ter colaborado.
O meu problema nao esta em fazer o calculo e sim em fazer a validação...
if dDatePgto = StrtoDateTime(' / / ') then showmessage('Data do pagamento esta em branco!') ;
se o parametro data estiver em branco, e vc der um showmessage(datetimetostr(dDatePgto)) vai mostrar 30/12/1899 ou seja nao esta em branco...Espero ter colaborado.
GOSTEI 0
Marcelo Diniz
29/10/2010
Na verdade o q eu preciso mesmo eh fazer essa comparacao com base na variavel dDatePgto imagine q ela estivesse dentro de uma funcao e fosse passado como parametro o seu conteudo...
funtion CalculaAtrazo(dDatePgto:tDatetime):integer;
begin
if dDatePgto = StrtoDateTime(' / / ') then begin
showmessage('Data do pagamento esta em branco!')
result:= 0;
else begin
result:= date - dDatePgto;
end;
end;
Obrigado,
Paulo Moraes
funtion CalculaAtrazo(dDatePgto:tDatetime):integer;
begin
if dDatePgto = StrtoDateTime(' / / ') then begin
showmessage('Data do pagamento esta em branco!')
result:= 0;
else begin
result:= date - dDatePgto;
end;
end;
Obrigado,
Paulo Moraes
function ValidaData(data: string) : Boolean;
procedure TForm1.btn1Click(Sender: TObject);begin if ValidaData(edt1.Text) then MessageDlg('Data OK!', mtError, [mbOK], 0) else MessageDlg('Data Inválida!', mtError, [mbOK], 0);
end;
function TForm1.ValidaData(data: string): Boolean;var MyData : TDateTime;begintry MyData := StrToDate(data); Result := True;except on E: Exception do Result := False;end;end;
GOSTEI 0
Paulo
29/10/2010
Na verdade o q eu preciso mesmo eh fazer essa comparacao com base na variavel dDatePgto imagine q ela estivesse dentro de uma funcao e fosse passado como parametro o seu conteudo...
funtion CalculaAtrazo(dDatePgto:tDatetime):integer;
begin
if dDatePgto = StrtoDateTime(' / / ') then begin
showmessage('Data do pagamento esta em branco!')
result:= 0;
else begin
result:= date - dDatePgto;
end;
end;
Obrigado,
Paulo Moraes
funtion CalculaAtrazo(dDatePgto:tDatetime):integer;
begin
if dDatePgto = StrtoDateTime(' / / ') then begin
showmessage('Data do pagamento esta em branco!')
result:= 0;
else begin
result:= date - dDatePgto;
end;
end;
Obrigado,
Paulo Moraes
function ValidaData(data: string) : Boolean;
procedure TForm1.btn1Click(Sender: TObject); begin if ValidaData(edt1.Text) then MessageDlg('Data OK!', mtError, [mbOK], 0) else MessageDlg('Data Inválida!', mtError, [mbOK], 0);
end;
function TForm1.ValidaData(data: string): Boolean; var MyData : TDateTime; begin try MyData := StrToDate(data); Result := True; except on E: Exception do Result := False; end; end;
GOSTEI 0
Compusoftware Ltda
29/10/2010
Boa tarde so da uma olhaidnha certa denovo no codigo da função ValidaData, pois o quie vc quer esta nela sim
GOSTEI 0
Marcelo Diniz
29/10/2010
Se você informar um valor em branco irá receber a mensagem que a data é inválida.
GOSTEI 0
Wilson Junior
29/10/2010
Se você acha que não é o ideal utilizar as sugestões que o colega colocou, que é o que eu faria, você pode utilizar da seguinte maneira:
Espero ter colaborado.
funtion CalculaAtrazo(dDatePgto:tDatetime):integer;
begin
if dDatePgto = StrtoDateTime('30/12/1899') then begin
showmessage('Data do pagamento esta em branco!')
result:= 0;
else begin
result:= date - dDatePgto;
end;
end; Espero ter colaborado.
GOSTEI 0
Paulo Ricardo
29/10/2010
Acho que essa função
function ValidaData(data: string): Boolean;
var MyData : TDateTime;
begin
try
MyData := StrToDate(data);
Result := True;
except on E: Exception do
Result := False;
end;
end;
resolve sim, creio que já foi concluido esse assunto, abs
function ValidaData(data: string): Boolean;
var MyData : TDateTime;
begin
try
MyData := StrToDate(data);
Result := True;
except on E: Exception do
Result := False;
end;
end;
resolve sim, creio que já foi concluido esse assunto, abs
GOSTEI 0
Marco Salles
29/10/2010
Bom, acho que você deve separar as coisas. Se o nome da sua rotina é CalculaAtrazo, a mesma deve somente calcular o atraso e a verificação deve ser feita antes de chamar esta rotina.
Espero ter colaborado.
O meu problema nao esta em fazer o calculo e sim em fazer a validação...
if dDatePgto = StrtoDateTime(' / / ') then showmessage('Data do pagamento esta em branco!') ;
se o parametro data estiver em branco, e vc der um showmessage(datetimetostr(dDatePgto)) vai mostrar 30/12/1899 ou seja nao esta em branco...Espero ter colaborado.
begin
Showmessage(
cds.FieldByName('data').AsString+sLineBreak+
datetostr(cds.FieldByName('data').AsDateTime)+sLineBreak+
floattostr(cds.FieldByName('data').AsDateTime));
end; Veja que Como nao tem nenhum Valor Vc tera depedendo do Tipo e da Conversão Um Valor Vazio ( para String) uma Data Esquisita ( Padrao nesta situaçoes ) 30/12/1899 que sera convertida para o Inteiro ZERO espero ter acrescentado algo
GOSTEI 0