Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Trabalhando com RadioGroup


Rajare

Pergunta

Bom Dia.

Eu tenho dois RadioGroup nomeados de: dbrg_Turma e dbrg_Ano;

E dois dbedit nomeado de db_Evento e db_Local.

dbrg_turma tenho: dbrg_Ano db_Evento db_Local

( ) Turma A ( ) 1º Ano [_________] [________]

( ) Turma B ( ) 2º Ano

( ) Evento ( ) Outros

Quero uma função que:

quando clico em (x) Turma A : Ele automaticamente selecionaria (x) 1º Ano.

Ou,

quando clico em (x) Evento : Ele automaticamente seleciona-se (x) Outros e usa-se um SetFocus para o db_Evento, e quando desse um enter iria para db_Local.

alguém pode me ajudar?

Editado por Rajare
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0
Eu tenho dois RadioGroup nomeados de: dbrg_Turma e dbrg_Ano;

:

:

Quero uma função que:

quando clico em (x) Turma A : Ele automaticamente selecionaria (x) 1º Ano.

Ou,

quando clico em (x) Evento : Ele automaticamente seleciona-se (x) Outros

Rajare, o TRadioGroup só permite a seleção de um item de cada vez - é a finalidade deste tipo de componente. Então, não tem como você fazer isto que você quer, uma vez que ambos itens estão no mesmo radio group. Mas...

Sabendo disto, você pode implementar algum meio de contornar esta situação. Basta você entender que pode usar os componentes TRadioButton e que quando você coloca mais que um em um mesmo componente (TGroupBox, TPanel, TForm, ...), eles comportam-se como se fosse um TRadioGroup e operam juntos.

Dependendo de como vai funcionar a lógica total destes seus botões, você poderia colocar no form um TGroupBox; dentro dele dois TPanel (um ao lado do outro), sendo o primeiro a coluna onde estará as Turmas e evento e na segunda coluna estarão os outros itens. Voce terá que verificar qual o radio button está selecionado através da propriedade Checked de cada um deles. Para monitorar quando um deles é pressionado, você usa o evento OnClick (você pode usar um evento para cada grupo - não precisa ser para cada radio button).

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Eu tava pesquisando e encontrei esse comando

procedure TForm1.dbrg_TurmaChange(Sender: TObject);

begin

Case dbrg_Turma.ItemIndex of

0: dbrg_Ano.ItemIndex := 0;

1: dbrg_Ano.ItemIndex := 1;

2: dbrg_Ano.ItemIndex := 2;

end;

end;

E funcionou, porém não consigo add os set focus junto com esse comando.

Da uma olhadinha e vê se seria possivel.

Link para o comentário
Compartilhar em outros sites

  • 0
procedure TForm1.dbrg_TurmaChange(Sender: TObject);
begin
  Case dbrg_Turma.ItemIndex of
    0: dbrg_Ano.ItemIndex := 0;
    1: dbrg_Ano.ItemIndex := 1;
    2: dbrg_Ano.ItemIndex := 2;
  end;
end;

E funcionou, porém não consigo add os set focus junto com esse comando.

Da uma olhadinha e vê se seria possivel.

Rajare, se você entendeu o que este "comando" faz, deve ter observado que ele ocorre quando há uma mudança no groupbox da primeira coluna. O que você quer fazer, dar foco aos edits, irá ocorrer quando houver uma mudança no groupbox da segunda coluna e quando o item selecionado for o correspondente a Outros - a idéia é bem similar a esta que você implementou, apenas que irá mexer com o foco de outro componente.

Veja se consegue implementar.

Abraços

p.s.: não sofra com uso de formatações ao postar o código com "sintax highlight - apenas use a tag CODE ali da barrinha de botões. ;)

Link para o comentário
Compartilhar em outros sites

  • 0

Fiz o Seguinte.

begin
Case dbrg_Turma.ItemIndex of
  2: dbrg_Ano.ItemIndex := 2;

end;
If dbrg_Turma.ItemIndex = 2 then
    db_Evento.SetFocus;

end;

Fiz isso e funcionou.

Eu gostaria de aprender mais sobre Case ...of, if ... then, sabes onde tem um bom tutorial?

Gostaria de saber como eles são reconhecidos pelo Delphi exemplo: "if" se não me engano é "se", e se existe outros desse códigos?

Valeu pela Força, se você permitir posso colocar esse post como resolvido.

Abraços,

Rajare

Link para o comentário
Compartilhar em outros sites

  • 0
Fiz o Seguinte.

begin
Case dbrg_Turma.ItemIndex of
  2: dbrg_Ano.ItemIndex := 2;

end;
If dbrg_Turma.ItemIndex = 2 then
    db_Evento.SetFocus;

end;
Fiz isso e funcionou.
Case dbrg_Turma.ItemIndex of
  2: begin
        dbrg_Ano.ItemIndex := 2;
        db_Evento.SetFocus;
      end;
end;
Faça assim que ficará mais apropriado - não tem porque você testar uma variável/propriedade com um mesmo valor duas vezes. ;) Como qualquer outra estrutura lógica, você pode usar o demarcador de blocos (begin..end) e executar várias tarefas em cada condição.
Eu gostaria de aprender mais sobre Case ...of, if ... then, sabes onde tem um bom tutorial?
não saberia indicar não. Procure por apostilas sobre delphi básico que deverá aparecer algo a respeito. Mas, se não tiver problemas com inglês, use o help - é muito bom. Por hora fica este link com exemplos.
Gostaria de saber como eles são reconhecidos pelo Delphi exemplo: "if" se não me engano é "se", e se existe outros desse códigos?
resumidamente...
if <condição verdadeira> then  ... else ...
se <condição verdadeira> então ... senão ...

case <expressão seletora> of
  <valor1>
  <valor2>
  ...
  else
end;
caso <expressão seletora> "seja"
  <valor1>
  <valor2>
  ...
  senão
end

se você permitir posso colocar esse post como resolvido.
fique a vontade. Siga o que deveria ser o padrão e acrescente (Resolvido) na frente do título atual. ;)

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Vou Seguir o seu conselho Micheus

Case dbrg_Turma.ItemIndex of

2: begin

dbrg_Ano.ItemIndex := 2;

db_Evento.SetFocus;

end;

Funcinou direitinho.

Valeu Jhonas pelo tutorial

Que Deus abençoe vocês.

Editado por Rajare
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152.1k
    • Posts
      651.8k
×
×
  • Criar Novo...