Ir para conteúdo

POWERED BY:

Arquivado

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

cassitos

EConvertError

Recommended Posts

E ae!!

Criei uma função para montar data de acordo com parâmetros Dias, Mes e Ano:

 

function PreparaData(Dia,Mes,Ano: Integer):TDateTime;

var

  textoData: String;

begin

  if ((Mes = 2) Or (Mes = 4) Or (Mes = 6) Or (Mes = 9) Or (Mes = 11)) Then

  begin

    If (Dia = 31) Then Dia := 30;

  end;

  if (Mes = 2) Then

  begin

    if (Dia >= 30) then Dia := 29;

  end;

  textoData:=IntToStr(Dia) + '/' + IntToStr(Mes) + '/' + IntToStr(Ano);

  //verificar se é data válida

  try

    begin

      StrToDate(textoData);

    end;

  except on EConvertError do

    begin

      Dia:=Dia-1;

      textoData:=IntToStr(Dia) + '/' + IntToStr(Mes) + '/' + IntToStr(Ano);

    end;

  end; 

  PreparaData:=StrToDate(textoData);

end;

Mas se tentar montar uma data inválida, dá uma mensagem de erro e só depois passa pelo except. :mellow:

Sou novato em delphi... como faço p/ que não apareça tal mensagem?

Project Project1.exe raised exception class EConvertError with

message "29/2/2005" is not a valid date1.

Process stopped. Use Step or Run to continue.

A data foi informada errada de propósito, aí dá este erro, vou fazendo passo-a-passo e passa pelo exception.

Preciso fazer com que esta mensagem não apareça.

Tem como?? :(

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.