Coloca essa função que verifica o cargo no evento OnValidade do seu campo no DataSet.
Em 12 de agosto de 2010 15:27, Ricardo Rocha <ricardo_r...@yahoo.com.br>escreveu: > > > Olá a todos, > > Estou enfrentando um problema que eu mesmo criei... e não acho a solução. > > É o seguinte tenho um formulário de cadastro, nele tenho uma função que > muda a cor do componente ao receber e sair do foco, para que minha query > que verifica se o nome (generico) já existe no banco funcionar tive que > coloca-la dentro da função que muda o foca... funciona redondinho... Se > a query não ficar dentro da função (muda foco) ela não funciona. > > Agora vem o problema... Quando eu localizo um cadastro e quero alterar > um campo que não seja o campo onde é feito a verificação de duplicidade > ele faz a verificão tenho que altera-lo, issao está errado.. > > Como escapar desta verificação quando eu quero alterar um dadastro... > > {Código do muda foco evento Exit} > > procedure TfrmCadastroCargo.ExitEx(Sender: TObject); > var > nome:String; > begin > {: altera a cor do componente quando sair o foco } > if (Sender is TEdit) then > (Sender as TEdit).Color := clWindow; > if (Sender is TMemo) then > (Sender as TMemo).Color := clWindow; > {: altera a cor do componente quando sair o foco } > if (Sender is TDBEdit) then > (Sender as TDBEdit).Color := clWindow; > if (Sender is TDBMemo) then > (Sender as TDBMemo).Color := clWindow; > > {: verifica se já existe um cargo com o mesmo nome } > > nome:= DBEdit1.Text; > with qBusca do > begin > Close; > Sql.Clear; > Sql.Add('select CARGO_NOME from CARGO where CARGO_NOME > =:CARGO_NOME'); > ParamByName('CARGO_NOME').AsString := nome; > Open; > if not IsEmpty then > begin > ShowMessage('O Cargo ' + '"' + DBEdit1.Text + '"' + ' já está > cadastrado! Entre com um novo nome ou Alt+C para cancelar.'); > Close; > DBEdit1.SetFocus; > end; > end; > > {:fim verifica se já existe um cargo com o mesmo nome} > > > [As partes desta mensagem que não continham texto foram removidas] ------------------------------------ -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> <*> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages <*> Para falar com o moderador, envie um e-mail para: delphi-br-ow...@yahoogrupos.com.br Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: delphi-br-unsubscr...@yahoogrupos.com.br <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html