Desabilitar Campos a partir de uma Condição no TDBRadioGroup

30/01/2013

1

Bom dia,

Peço ajuda para este problema.

Estou trabalhando no Formulario de Funcionario porem queria criar a seguinte condição.

Tenho no form um componente notebook com varias abas, na primeira tem os dados pessoais do funcionario com um TDBRadioGroup para o Sexo com as opções MASC e FEMIN, com os Valores 0 e 1 respectivamente. na segunda ABA coloquei todos os dados de documentos como CPF, RG, ..... Existe o campo para cadastrar o numero da RESERVISTA, que todos nós sabemos ser apenas para homens.

Minha necessidade é a seguinte:
Quando estiver cadastrando um novo funcionario ou editando um antigo, se for clicado no campo Feminino dentro do TDBRadoiGroup, ele desabilite na segunda aba o DBEdit (Campo) onde seria digitado o numero da reservista, nao sendo mais possivel digitar nada, a não ser que se altere novamente o campo do RadioGroup para Masculino novamente.

Desde Já Obrigado
Responder

Posts

30/01/2013

William

Flavio basicamente vc tem q verificar qual opção do TDBRadioGroup está marcado:
if DBRadioGroup.ItemIndex = 0 then
   DBEditReservista.Visible := false
else
   DBEditReservista.Visible := true;


Neste caso estou deixando invisível, mas vc pode desabilitar usando a propriedade Enabled = false.

Qualquer dúvida posta aí novamente.
Responder

30/01/2013

Ricardo Araujo


Pode fazer desta forma também.
Eu tenho este exemplo no meu sistema e funciona.

if ckbDocPedido.enabled = true then
edit1.enabled := true
else
edit1.enabled := false;

cara espero ter ajudado.

Responder

30/01/2013

Rodolpho Silva

DBEditReservista.Enabled := (DBRadioGroup.ItemIndex = 0);
Responder

30/01/2013

Flavio Silva

Testei as 3 sugestões dadas acima e funcionaram.

Porem, a unica observação que faço é que quando clico na opção feminino, o campo edtReservista, só fica invisivel ou desabilitado quando clico dentro dele e digito qualquer coisa por exemplo a letra "a", ai sim, ele fica desabilitado com a letra a dentro, ou some conforme foi programado.

O interessante seria tão logo clicasse na opção o mesmo ja ficar desabilitado/invisivel, ou senão, ficar desta forma, porem, ficar em branco e não com a letra "a" por exemplo.

Mesmo assim agradeço a ajuda de todos
Responder

30/01/2013

William

No evento de qual componente vc colocou o código?
Responder

30/01/2013

Rodolpho Silva

Utilize essa verficação no evento OnClick do RadioGroup:
procedure TForm.RadioGroup1Click(Sender: TObject);
begin
  DBEditReservista.Enabled := (DBRadioGroup.ItemIndex = 0);
end;
Responder

30/01/2013

Flavio Silva

Desta Vez ficou ok.

Tinha colocado o codigo direto no edtReservista, por isso ele estava verificando no momento em que digitava algo. Fiz como indicado e agora esta correto.

Muito obrigado a todos
Responder

31/01/2013

Ricardo Araujo

Ou também pode usar a propriedade, Visible - > serve para desabilitar da tela, se ficar mais fácil.

Espero ter ajudo.

Responder

31/01/2013

Flavio Silva

Rb Barretos

Sua dica tambem foi util obrigado.
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira