20/01/2006

pq nao exibe a minha mensagem de erro??

bom amigos, olhei nos topicos anteriores mas nenhum me ajudou ...

meu problema é o seguinte, preciso de uma uma funcao para validar uma data ...

criei uma funcao na unit do meu datamodule assim ...

procedure TDm.ValidaData(Sender: TField; const Text: string);
var Data: TDateTime;
begin
  try
    Sender.AsDateTime:= StrToDate(Text);
  except
    on EconvertError do
      Erro(´Não é uma data válida.´ + #13 + ´Digite novamente.´,´Data Invalida´);
      //Sender.FocusControl;
  end;
end;


e no meu form, coloco no DBEdit correspondente ao campo data ...
no evento onExit a seguinte codigo ...

procedure TFrmRE.DBEdt02fUserExit(Sender: TObject);
begin
  Dm.Dts1.FieldByName(´02fUser´).OnSetText := Dm.ValidaData;
end;


continua dando a mensagem do sistema ... e nao a mensagem que eu preciso ...

alguma sugestao?

[]s


Rafael Gomes

Respostas

20/01/2006

Massuda

Você tem que atribuir o OnSetText do field em outro ponto; onde você está fazendo isso (OnExit do DBEdit) já é muito tarde, o evento já ocorreu. Faça isso, por exemplo, no próprio datamodule, depois de abrir a tabela/query que contem o campo 02fUser.


Responder Citar