desmarcar radiobutton

Delphi

21/01/2004

Oi,

Eu estou c/ uma dúvida e acho até que deve ser boba, mas estou parada nela:(
Tenho uma form c/ dois radiobutton, da seleção de um deles vou p/ o preview de um relatório.
Queria saber se, qdo eu fecho o preview e volto p/ o form c/ os radiobutton, tem jeito daquele que estava marcado aparecer desmarcado. Já tentei usar o checked mas não consegui o resultado ou estou usando errado.
Qq ajuda será muito bem vinda.


Repa

Repa

Curtidas 0

Respostas

Fábio Valente

Fábio Valente

21/01/2004

Olá Renata!

A solução seria simples mesmo.... usando checked....

não houve erro no uso???

ficaria assim:

radiobuttom1.checked := false;
radiobuttom2.checked := false;

..... se colocasse o trecho que está com problema ficaria mais fácil de ajudar... :)

bom... ja usei, e não tive problemas....

Boa programação,


GOSTEI 0
Maicongabriel

Maicongabriel

21/01/2004

Eu estou c/ uma dúvida e acho até que deve ser boba, mas estou parada nela:( Tenho uma form c/ dois radiobutton, da seleção de um deles vou p/ o preview de um relatório. Queria saber se, qdo eu fecho o preview e volto p/ o form c/ os radiobutton, tem jeito daquele que estava marcado aparecer desmarcado. Já tentei usar o checked mas não consegui o resultado ou estou usando errado. Qq ajuda será muito bem vinda.

Pelo o que você explicou e eu entendi, você tem 2 opções e deseja marcar automaticamente a opção não marcada (oposta à marcada), assim que você retorna-se desta! É isso ?

Sendo assim, se você tivesse as suas duas RadioButton´s dentro de um RadioGroup, poderia fazer algo mais ou menos assim ::

  { abre o preview do relatório }
  MeuRelatorio.QuickRep1.Preview;
  { este código só é valido para 2 opções, para mais
    opções a lógica deve ser modificada... }
  if RadioGroup1.ItemIndex = 0 then
    { 0 + 1 = Indice 1  }
    RadioGroup1.ItemIndex := RadioGroup1.ItemIndex + 1
  else
    { 1 - 1 = Indice 0  }
    RadioGroup1.ItemIndex := RadioGroup1.ItemIndex - 1;



GOSTEI 0
Repa

Repa

21/01/2004

Desculpe não ter mandado antes o formulário, talvez seja mais fácil agora.
Na verdade não quero que nenhuma das duas opções esteja marcada qdo sair do preview. Qdo tentei usar o checked := false no evento onclick ele entrou em um loop.

procedure TFormrelatorios.RadioButtonpessoaClick(Sender: TObject);
begin
pessoas.IndexName:=´´;
pessoas.Open;
relpes.QuickReprelpes.Preview;
end;

procedure TFormrelatorios.RadioButtonfamiliaClick(Sender: TObject);
begin
familia.IndexName:=´´;
familia.Open;
relfam.QuickReprelfam.Preview;
end;

procedure TFormrelatorios.FormShow(Sender: TObject);
begin
RadioButtonpessoa.Checked:=false;
RadioButtonfamilia.Checked:=false;
end;

procedure TFormrelatorios.BotaofecharClick(Sender: TObject);
begin
pessoas.Close;
familia.Close;
formrelatorios.Close;
end;

Obrigada pela ajuda:)


GOSTEI 0
Maicongabriel

Maicongabriel

21/01/2004

Agora entendi o que deseja fazer!
Faça algo mais ou menos assim ::

procedure TFormrelatorios.RadioButtonpessoaClick(Sender: TObject);
begin
  if RadioButtonpessoa.Checked then
  begin
    pessoas.IndexName := ´´;
    pessoas.Open;
    relpes.QuickReprelpes.Preview;
    { desmarca o RadioButton }
    RadioButtonpessoa.Checked := False;
  end;
end;



GOSTEI 0
Repa

Repa

21/01/2004

Agora entendi o que deseja fazer! Faça algo mais ou menos assim ::
procedure TFormrelatorios.RadioButtonpessoaClick(Sender: TObject);
begin
  if RadioButtonpessoa.Checked then
  begin
    pessoas.IndexName := ´´;
    pessoas.Open;
    relpes.QuickReprelpes.Preview;
    { desmarca o RadioButton }
    RadioButtonpessoa.Checked := False;

//p/ não entrar em loop e desmarcar 
    Botaofechar.SetFocus;

  end;
end;



Agora eu descobri, mas demorei muito :))))
Esqueci de dar um setfocus depois do checked, por isso ele entrava naquele loop e não desmarcava...
Muito obrigada, Maicon, pelas dicas e paciência!:))


GOSTEI 0
POSTAR