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

Check Box E Option Button


Burn Killer

Pergunta

Fala gnt,

Voltando ao tópico de relação de option com check q eu tava fazendo, eu queria fazer uma rotina q executasse o save settings em 30 variaveis pra cada check box q eu tenho, como eu fiz os check box em index ele vai de 1 a 30 e o código ficou assim:

Private Sub_Save()
If Option1 = True Then
 SaveSetting App.EXEName, "opt1", "c", Me.Check1(c).Value
Else
End If
If Option2 = True Then
 SaveSetting App.EXEName, "opt2", "c", Me.Check1(c).Value
Else
End If
 If Option3 = True Then
 SaveSetting App.EXEName, "opt3", "c", Me.Check1(c).Value
 End If
  If Option4 = True Then
 SaveSetting App.EXEName, "opt4", "c", Me.Check1(c).Value
 End If
  If Option5 = True Then
 SaveSetting App.EXEName, "opt5", "c", Me.Check1(c).Value
 End If
  If Option6 = True Then
 SaveSetting App.EXEName, "opt6", "c", Me.Check1(c).Value
 End If
  If Option7 = True Then
 SaveSetting App.EXEName, "opt7", "c", Me.Check1(c).Value
 End If
  If Option8 = True Then
 SaveSetting App.EXEName, "opt8", "c", Me.Check1(c).Value
 End If
  If Option9 = True Then
 SaveSetting App.EXEName, "opt9", "c", Me.Check1(c).Value
 End If
  If Option10 = True Then
 SaveSetting App.EXEName, "opt10", "c", Me.Check1(c).Value
 End If
  If Option11 = True Then
 SaveSetting App.EXEName, "opt11", "c", Me.Check1(c).Value
 End If
  If Option12 = True Then
 SaveSetting App.EXEName, "opt12", "c", Me.Check1(c).Value
 End If
  If Option13 = True Then
 SaveSetting App.EXEName, "opt13", "c", Me.Check1(c).Value
 End If
  If Option14 = True Then
 SaveSetting App.EXEName, "opt14", "c", Me.Check1(c).Value
 End If
  If Option15 = True Then
 SaveSetting App.EXEName, "opt15", "c", Me.Check1(c).Value
 End If
  If Option16 = True Then
 SaveSetting App.EXEName, "opt16", "c", Me.Check1(c).Value
 End If
  If Option17 = True Then
 SaveSetting App.EXEName, "opt17", "c", Me.Check1(c).Value
 End If
  If Option18 = True Then
 SaveSetting App.EXEName, "opt18", "c", Me.Check1(c).Value
 End If
  If Option19 = True Then
 SaveSetting App.EXEName, "opt19", "c", Me.Check1(c).Value
 End If
  If Option20 = True Then
 SaveSetting App.EXEName, "opt20", "c", Me.Check1(c).Value
 End If
  If Option21 = True Then
 SaveSetting App.EXEName, "opt21", "c", Me.Check1(c).Value
 End If
 If Option22 = True Then
 SaveSetting App.EXEName, "opt22", "c", Me.Check1(c).Value
 End If
 If Option23 = True Then
 SaveSetting App.EXEName, "opt23", "c", Me.Check1(c).Value
 End If
 If Option24 = True Then
 SaveSetting App.EXEName, "opt24", "c", Me.Check1(c).Value
 End If
 If Option25 = True Then
 SaveSetting App.EXEName, "opt25", "c", Me.Check1(c).Value
 End If
 If Option26 = True Then
 SaveSetting App.EXEName, "opt26", "c", Me.Check1(c).Value
 End If
 If Option27 = True Then
 SaveSetting App.EXEName, "opt27", "c", Me.Check1(c).Value
 End If
 If Option28 = True Then
 SaveSetting App.EXEName, "opt28", "c", Me.Check1(c).Value
 End If
 If Option29 = True Then
 SaveSetting App.EXEName, "opt29", "c", Me.Check1(c).Value
 End If
 If Option30 = True Then
 SaveSetting App.EXEName, "opt30", "c", Me.Check1(c).Value
 End If
 End Sub

Private Sub Check1_Click(c As Integer)
Select Case c
Case Is = 1
If Check1(1).Value = 1 Then
   Form2.Text1.Visible = True
   Form2.Text2.Visible = True
   Form2.Text3.Visible = True
  Else
  Form2.Text1.Visible = False
   Form2.Text2.Visible = False
   Form2.Text3.Visible = False
End If
 Call Save
Case Is = 2
 Call Save
Case Is = 3
 Call Save
Case Is = 4
 Call Save
Case Is = 5
 Call Save
Case Is = 6
 Call Save
Case Is = 7
 Call Save
Case Is = 8
 Call Save
Case Is = 9
 Call Save
Case Is = 10
 Call Save
Case Is = 11
 Call Save
Case Is = 12
 Call Save
Case Is = 13
 Call Save
Case Is = 14
 Call Save
Case Is = 15
 Call Save
Case Is = 16
 Call Save
Case Is = 17
 Call Save
Case Is = 18
 Call Save
Case Is = 19
 Call Save
Case Is = 20
 Call Save
Case Is = 21
 Call Save
Case Is = 22
 Call Save
Case Is = 23
 Call Save
Case Is = 24
 Call Save
Case Is = 25
 Call Save
Case Is = 26
 Call Save
Case Is = 27
 Call Save
Case Is = 28
 Call Save
Case Is = 29
 Call Save
Case Is = 30
 Call Save
 End Select
End Sub

bom eu queria saber em q eu to errando, pois quando eu rodo e clico no check box ele fala q a funcao ou sub não esta definida...me ajudem!

[]'s

Link para o comentário
Compartilhar em outros sites

16 respostass a esta questão

Posts Recomendados

  • 0

Relendo seu primeiro post vi que você fala sobre relacionar os optionbuttons com o checkboxes. Você poderia simplesmente criar um vetor de optionbuttons também (assim como você já fez com os checkboxes). Daí, bastaria fazer:

    For i = Check1.LBound To Check1.UBound
        if Option1(i).Value = True then
            SaveSetting App.EXEName, "opt" & trim(str(i)), "c", Check1(i).Value
        endif
    Next i

Como a quantidade de optionbuttons será a mesma de checkboxes, você pode fazer o código acima (apenas mude os nomes respectivos de cada controle).

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Não, note que esta rotina se refere ao ato de gravar as configurações atuais. Para o carregamento você pode usar uma rotina semelhante, porém se você quer que uma determinada ação seja executada de acordo com o estado da checkbox (*no ato do carregamento*) você deverá explicitá-la. Em geral eu não faço isso, baseando-me apenas no estado de uma configuração na hora em uma determinada ação *vai* ser executada. Ou seja, eu chamo uma rotina e essa rotina verifica o estado de uma configuração e faz a ação de acordo (e não o contrário, como você quer fazer).

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Mais uma coisa...

quando você me mostrou akela subrotina me disse q o numero de check boxes era o mesmo do de option button, so q no meu caso eu tenho 20 opt e 30 check(q serão 96 mais pra frente), dai eu pergunto eu vo te q fazer algo assim ne?

Private Sub Option1_Click(Index As Integer)
For i = 1 To 20
  For c = 1 To 30
  Check1(c).Value = GetSetting(App.EXEName, "opt" & Trim(Str(c)), i, 0)
 Next c
Next i
End Sub

Private Sub Check1_Click(c As Integer)
For c = 1 To 30
 For j = 1 To 20
     If Option1(j).Value = True Then
         SaveSetting App.EXEName, "opt" & Trim(Str(j)), "c", Check1(c).Value
     End If
 Next i
Next c
End Sub

certo?

Link para o comentário
Compartilhar em outros sites

  • 0

opa corrigindo

Private Sub Option1_Click(i As Integer)
For i = 1 To 20
 For c = 1 To 30
  Check1(c).Value = GetSetting(App.EXEName, "opt" & Trim(Str(i)), c, 0)
 Next c
Next i
End Sub

Private Sub Check1_Click(c As Integer)
For c = 1 To 30
 For j = 1 To 20
     If Option1(j).Value = True Then
         SaveSetting App.EXEName, "opt" & Trim(Str(j)), "c", Check1(c).Value
     End If
 Next j
Next c
End Sub

Link para o comentário
Compartilhar em outros sites

  • 0

opa cometi um outro erro

quando eu uso o save settings no codigo q eu passei , o value é c e não "c" porque ai iria salvar uma variavel c

agora uma outra duvida

quando eu rodo esse codigo corrigido ele salva, porem quando eu retorno pro option ele apaga o ultimo registro zerando o value do check quando ele tava selecionado na ultima vez, assim por exemplo eu clico no opt4 e clico no check 7 ai eu clico no opt1 e depois retorno ao opt 4, mas quando eu retorno, a value do check 7 vai de 1 pra 0 como corrigir esse erro?

Link para o comentário
Compartilhar em outros sites

  • 0

Seu código está realmente certo? Veja:

Check1©.Value = GetSetting(App.EXEName, "opt" & Trim(Str(i)), c, 0)

SaveSetting App.EXEName, "opt" & Trim(Str(j)), "c", Check1©.Value

Aliás, ainda não entendi bem qual o propósito de tantos checkboxes e optionbuttons. Sem falar que 20*30=600, pois então você tem 600 iterações sendo que não existe isso tudo de checkboxes e nem de optionbuttons (e nem mesmo somando a quantidade de ambos).

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

então veio..

é assim eu to fazendo uma ihm pra uma entalhadeira de vidros, e eu tenho receitas q são apresentadas no form principal, ai na parte de configuracao, eu tenho 20 receitas salvas(q são os 20 option buttons) e tenho 96 items q podem ser adicionados ou retirados das receitas, assim quando eu clico em um option button eu rodo a receita salva mostrando nos check boxes(estou usando 30 para testes) as seleções de items para a entalhadeira, assim q eu fizer a modificacao nesses items, eles são salvos e modificados no form principal, isso em modo offline ou seja salvo as informacoes no registro do cpu, ai eu tenho essa mesma rotina aplicada ao clp q já é a parte online , q ao clicar as informacoes já são enviadas para o clp e não são salvas em registro..

é isso, já q eu nun to somando check e option como faco esse laco??

[]'s

Link para o comentário
Compartilhar em outros sites

  • 0

Agora (acho que) entendi melhor. Só que, pelo que entendi, você vai usar apenas uma receita por vez. Certo? Se for, você só vai precisar fazer o loop das checkboxes (já que elas são específicas para a receita escolhida nos optionbuttons). Se não for isso, explique mais detalhadamente.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

é q é assim, nessa tela de configuração eu tenho a opcao de mudar de receita, e quando eu mudo isso , as modificacoes são salvas, pra q da proxima vez q eu abrir este option button ele rode as mais recentes configuracoes...

Se eu nun for usar esse laco de for, eu uso um case pra verificação de clique?Ai eu teria q fazer vinte casos repetindo o laco for??

Ve se isso te esclarece...

[]'s

Link para o comentário
Compartilhar em outros sites

  • 0

bom já resolvi essa questão, porém para atualização no form principal apareceu um problema q eu nun tenho certeza de q tenha uma solução facil...

O problema é o seguinte:

Ao selecionar os eventos e seções desejadas eu vou voltar para o form principal para atualizar as configurações, e neste form principal eu vo colocar todos os check e opt q eu tenho, so q em estado hide, sendo assim so os eventos selecionados serão mostrados, e agora o problema, eu quero que a exibição apareça da seguinte forma:

ex.:ao clicar o ev3 e ev4 no opt2 eu volto ao form principal por meio de um botão e ao voltar os check boxes correspondentes ao 3 e 4 vao para o topo do form , fikando apenas 2 na lista.

Como fazer para q as seleções constituam sequenciamento escolhido no config,no form principal??

[]'s

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