Duvida onexit dbedit

Delphi

Firebird

25/02/2015

Quando eu tento fazer a validação no OnExit do DBEdit o procedimento abaixo não é executado,

procedure TfrmCRecinto.Edit1Exit(Sender:TObject);
begin
 DMCadastro.ZQuery2.close;
 DMCadastro.ZQuery2.ParamByName('NURECINTO').Value := DBEdit1.Text;
 DMCadastro.ZQuery2.OPen;
 if not DMCadastro.ZQuery2.IsEmpty  then
 begin
      ShowMessage('Registro duplicado');
      DBEdit1.SetFocus;
      DBEdit1.Clear;
      exit;
   end;
end;



Mas quando realizo a alteração e utilizo no OnExit do Edit é executado com sucesso.

procedure TfrmCRecinto.Edit1Exit(Sender:TObject);
begin
 DMCadastro.ZQuery2.close;
 DMCadastro.ZQuery2.ParamByName('NURECINTO').Value := Edit1.Text;
 DMCadastro.ZQuery2.OPen;
 if not DMCadastro.ZQuery2.IsEmpty  then
 begin
      ShowMessage('Registro duplicado');
      Edit1.SetFocus;
      Edit1.Clear;
      exit;
   end;
end; 
Rafael

Rafael

Curtidas 0

Respostas

Thiago Santana

Thiago Santana

25/02/2015

Existe um diferença entre utilizar o DBEdit e o Edit.
Tratando-se do DBEdit o seu evento terá que ser no OnExit do Field que está ligado ao seu DBEdit.
GOSTEI 0
Itamar Souza

Itamar Souza

25/02/2015

Amigo
Este comando valida os campos antes de gravar, mesmo que o usuário tenha saído do campo usando o mouse.
ActiveControl := nil;
GOSTEI 0
Rodrigo Martins

Rodrigo Martins

25/02/2015

Amigo , eu uso um codigo bem simples, um LOCATE no em exit seja na edit ou no Dbedit quando sair da Edit logo manda mensagem se ja existe o cadastro !

with DataModule2.ibconsultarelgeral do
begin
//*faz a busca no DataSet (qry ou Table -.-')

if Locate('CODTOMBO', DBEdit1.text, [loCaseInsensitive,loPartialKey]) then
begin
ShowMessage('Tombo ja registrado!');
DBEdit1.Clear;
DBEdit1.SetFocus;
end;
end;
GOSTEI 0
POSTAR