Usar 3 DBRadioGroup e somente uma seleção

Delphi

04/12/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+


Gigatel

Gigatel

Curtidas 0

Respostas

Marcio.theis

Marcio.theis

04/12/2005

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


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

04/12/2005

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

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.


GOSTEI 0
Gigatel

Gigatel

04/12/2005

[quote:3fdeb0b2f5=´/]/]@t´]Todos os 3 DBRadioGroup estão ligados ao mesmo campo da base de dados ???[/quote:3fdeb0b2f5]

Sim...

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


GOSTEI 0
Gigatel

Gigatel

04/12/2005

automaticamente, creio que não. mas você poderia criar uma procedure como essa:
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...

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

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


tem declarar esta váriável ?


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

04/12/2005

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


GOSTEI 0
Gigatel

Gigatel

04/12/2005

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...


GOSTEI 0
POSTAR