Array
(
)

Usar 3 DBRadioGroup e somente uma seleção

Gigatel
   - 04 dez 2005

tenho 3 DBRadioGroup em somente um campo, ficou assim..

no primeiro ficou assim:


----Aguardando-----
* Laudo
* Peças
-----------------------

depois

----Consertado------
* Aguardando peças
* Aguardando reirada
-----------------------

depois

---Não consertado---
* Aguardando retirada
-----------------------

O problema é o seguinte EX: Se selecionar a primeira caixa a opção ...Laudo... e depois selecionar a terceira caixa ....Aguradando retirada..., os dois ficam marcados...tem como quando clicar na terceira cx desmarcar a primeira ?

Vlw...t+


Marcio.theis
   - 05 dez 2005

Todos os 3 DBRadioGroup estão ligados ao mesmo campo da base de dados ???


Emerson
   - 05 dez 2005

automaticamente, creio que não.
mas você poderia criar uma procedure como essa:

#Código

procedure TForm1.RadioGroup_Click(Sender: TObject);
function iif(Condicao: boolean; Verdadeiro, Falso: variant): variant;
begin
if Condicao
then Result := Verdadeiro
else Result := Falso;
end;
begin
RadioGroup_Aguardando.ItemIndex := iif(Sender=RadioGroup_Aguardando,RadioGroup_Aguardando.ItemIndex,-1);
RadioGroup_Consertado.ItemIndex := iif(Sender=RadioGroup_Consertado,RadioGroup_Consertado.ItemIndex,-1);
RadioGroup_NaoConsert.ItemIndex := iif(Sender=RadioGroup_NaoConsert,RadioGroup_NaoConsert.ItemIndex,-1);
end;


e apontar o evento OnClick dos três RadioGroup para ela.


Gigatel
   - 05 dez 2005


Citação:
/]@t´]Todos os 3 DBRadioGroup estão ligados ao mesmo campo da base de dados ???


Sim...

tem ficar separado, o banco de dados só vai recer a informação do de qual qual está checado....


Gigatel
   - 05 dez 2005


Citação:
automaticamente, creio que não.
mas você poderia criar uma procedure como essa:

#Código

procedure TForm1.RadioGroup_Click(Sender: TObject);
function iif(Condicao: boolean; Verdadeiro, Falso: variant): variant;
begin
if Condicao
then Result := Verdadeiro
else Result := Falso;
end;
begin
RadioGroup_Aguardando.ItemIndex := iif(Sender=RadioGroup_Aguardando,RadioGroup_Aguardando.ItemIndex,-1);
RadioGroup_Consertado.ItemIndex := iif(Sender=RadioGroup_Consertado,RadioGroup_Consertado.ItemIndex,-1);
RadioGroup_NaoConsert.ItemIndex := iif(Sender=RadioGroup_NaoConsert,RadioGroup_NaoConsert.ItemIndex,-1);
end;


e apontar o evento OnClick dos três RadioGroup para ela.


Ficou assim...

#Código

procedure T_FORM_OS_AND.RadioGroup_Click;
function iif(Condicao: boolean; Verdadeiro, Falso: variant): variant;
begin
if Condicao
then Result := Verdadeiro
else Result := Falso;
end;
begin
DBRadioGroup1.ItemIndex := iif(Sender=DBRadioGroup1,DBRadioGroup1.ItemIndex,-1);
DBRadioGroup2.ItemIndex := iif(Sender=DBRadioGroup2,DBRadioGroup2.ItemIndex,-1);
DBRadioGroup3.ItemIndex := iif(Sender=DBRadioGroup3,DBRadioGroup3.ItemIndex,-1);
end;


más dá este erro

#Código

[Error] Unit10.pas(49): Undeclared identifier: ´Sender´


tem declarar esta váriável ?


Emerson
   - 05 dez 2005

repare bem no cabeçalho da procedure que eu te passei e da procedure que você criou.


Gigatel
   - 05 dez 2005


Citação:
repare bem no cabeçalho da procedure que eu te passei e da procedure que você criou.


Valew..corrigí...agora deu certo...e ficou muito bom...vlw obrigadão...t+ flw...