ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Problema com DBedit

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
jessica07
Novato
Novato


Registrado: Sexta-Feira, 2 de Janeiro de 2015
Mensagens: 48

MensagemEnviada: Sáb Jan 03, 2015 4:01 pm    Assunto: Problema com DBedit Responder com Citação

Boa tarde pessoal,

Estou com um problema com um DBedit.
Tenho um cadastro de clientes que contem um RadioGroup com a opcao tipo de pessoa, sendo Fisica e Juridica.
No meu form de cadastro, tenho dois DBedit, sendo um para cpf e outro para cnpj.
Quando clico na opcao Fisica (indice 0 no RadioGroup), o DBedit do Cnpj fica invisivel e vice versa com a opcao Juridica.
Porem quando eu abro o form de cadastro e clico no botao Proximo Registro, as opcoes do meu RadioGroup mudam de acordo como eu cadastrei o meu cliente, mas se tem algum cliente cadastrado com a opcao Juridica, o meu DBedit Cnpj continua invisivel e apenas o DBedit do cpf aparece...
No evento onClick do RadioGroup, estou usando o seguinte codigo:

case RGPessoa.ItemIndex of
0:
begin
lbCpf.Visible:= true;
dbeCpf.Visible:= true;
lbCnpj.Visible:= false;
dbeCnpj.Visible:= false;
end;
1:
begin
lbCpf.Visible:= false;
dbeCpf.Visible:= false;
lbCnpj.Visible:= true;
dbeCnpj.Visible:= true;


Tem alguma maneira de resolver isso?
Pq o correto seria os DBedit ficarem visíveis ou invisíveis de acordo com a pessoa selecionada no meu RadioGroup.
Desde já agradeço.
Abraço.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
anderbelluno
Colaborador
Colaborador


Registrado: Quarta-Feira, 23 de Novembro de 2011
Mensagens: 1030
Localização: Cianorte-PR

MensagemEnviada: Sáb Jan 03, 2015 4:53 pm    Assunto: Responder com Citação

Eu faria uma procedure para tratar as mascaras e chamaria a mesma sempre que for preciso. Tanto no botao Proximo quanto em qualquer outro momento que precisar.
att.
Anderson.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
jessica07
Novato
Novato


Registrado: Sexta-Feira, 2 de Janeiro de 2015
Mensagens: 48

MensagemEnviada: Sáb Jan 03, 2015 6:41 pm    Assunto: Responder com Citação

Entendi... até pensei em fazer dessa forma, exemplo: se o campo tivesse 11 digitos, a mascara se ajeitaria de uma maneira e se fosse 14 digitos, seria outra mascara.
Teria como fazer dessa maneira? E se tivesse, como seria?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
anderbelluno
Colaborador
Colaborador


Registrado: Quarta-Feira, 23 de Novembro de 2011
Mensagens: 1030
Localização: Cianorte-PR

MensagemEnviada: Seg Jan 05, 2015 6:25 am    Assunto: Responder com Citação

Eu uso um ComboBox onde informo se é pessoa física ou jurídica, ai faço um IF... tipo assim:
Código:

If ComboBox1.text = 'F' Then
  ibdataset.FieldByName('CPFCGC').EditMask:='999.999.999-99;1;_'
else
ibdataset.FieldByName('CPFCGC').EditMask:='99.999.999/9999-99;1;_';

Note que usei diretamente meu DataSet e não o DBEdit e usei tbm o mesmo campo na tabela que é um varchar(18).

Espero que seje de ajuda.
att.
Anderson.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
thomazs
Moderador
Moderador


Registrado: Segunda-Feira, 1 de Março de 2004
Mensagens: 2835

MensagemEnviada: Seg Jan 05, 2015 5:31 pm    Assunto: Responder com Citação

A "sacada" aí é criar uma procedure e chamá-la dentro do onchange e também no afterscroll do seu dataset.
_________________
Suporte e Consultoria em Desenvolvimento de Sistemas
Bacharel em Sistemas de Informação
Especialista em Bancos de Dados
Desenvolvimento: Clipper, Delphi, PHP, Python/Django
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
anderbelluno
Colaborador
Colaborador


Registrado: Quarta-Feira, 23 de Novembro de 2011
Mensagens: 1030
Localização: Cianorte-PR

MensagemEnviada: Ter Jan 06, 2015 6:54 am    Assunto: Responder com Citação

Isso mesmo, Não citei em quais eventos chamar a procedure, mas foi exatamente isso que eu disse.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB