Ir para conteúdo


Foto

Como criar variáveis dinâmicamente

checkbox variáveis dinâmicas variáveis

Melhor Resposta Manimal, 28 abril 2017 - 06:24

Olá Experito.

 

Para resolver seu problema, use os comandos Assign e Eval

  • Assign para atribuir conteúdos a variáveis dinâmicas
  • Eval para ler o conteúdo das variáveis dinâmicas

 

Modifiquei a linha 20 para a sintaxe correta de criação e as linhas 37 a 40 para a leitura correta das variáveis também.

  1.  
  2. #include <ButtonConstants.au3>
  3. #include <GUIConstantsEx.au3>
  4. #include <MsgBoxConstants.au3>
  5. #include <StaticConstants.au3>
  6. #include <WindowsConstants.au3>
  7.  
  8. FormuDinamico(3)
  9.  
  10. Func FormuDinamico($NumCan)
  11. #Region ### START Koda GUI section ### Form=
  12. $Form1 = GUICreate("Lista de pessoas", 1361, 700, 2, 2)
  13. $Group1 = GUICtrlCreateGroup("Escolhas", 8, 56, 1185, 601)
  14. GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
  15. $Button1 = GUICtrlCreateButton("Pronto", 312, 608, 129, 41)
  16. $Button2 = GUICtrlCreateButton("Voltar", 704, 608, 129, 41)
  17. Local $esp = 480 / $NumCan
  18.  
  19. For $i = 1 To $NumCan
  20. Assign("Checkbox" & $i, GUICtrlCreateCheckbox("Pessoa " & $i, 104, 60 + $i * $esp, 1009, 33))
  21.  
  22. GUICtrlCreateGroup("", -99, -99, 1, 1)
  23. $Label1 = GUICtrlCreateLabel("Você pode escolher até cinco pessoas.", 8, 8, 1181, 29)
  24. GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
  25. GUISetState(@SW_SHOW)
  26. #EndRegion ### END Koda GUI section ###
  27.  
  28. While 1
  29. $nMsg = GUIGetMsg()
  30. Switch $nMsg
  31. Case $GUI_EVENT_CLOSE
  32. Case $Button1
  33. ;----------- O meu problema está aqui! Não consigo descobrir qual checkbos foi marcado.
  34.  
  35. For $i = 1 To $NumCan
  36. $saida = GUICtrlRead(Eval("Checkbox" & $i))
  37. If $saida = $GUI_CHECKED Then MsgBox(1, "leu", $i)
  38.  
  39. ;----------- Esperava que os nomes das variáveis fossem Checkbox1, Checkbox2,...
  40.  
  41. EndSwitch
  42. WEnd
  43.  
  44. EndFunc ;==>FormuDinamico
  45.  
  46.  
  47.  

Dessa forma, apenas a CheckBox marcada será sinalizada!

Visualizar todo o conteúdo do post


  • Por favor, faça o login para responder
2 respostas neste tópico

#1 Experito

Experito

    Novato

  • Membros
  • 3 posts
  • LocationItaqui RS

Postado 28 abril 2017 - 04:32

Olá.

Comecei a usar o autoit a bem pouco tempo (menos de um mês) e estou com dificuldade de resolver um problema que é criar um formulário dinamicamente.

De fato, consigo criar o formulário do jeito que eu quero, porém não consigo criar dinamicamente diversas variáveis.

O formulário será usado da seguinte forma:

1) Alguém irá definir uma certa quantidade de opções. 

2) Será criado um formulário com uma checkbox para cada opção possível. (Até aqui está funcionando).

3) O usuário poderá escolher uma determinada quantidade de opções.

4) O programa deverá ler quais opções o usuário escolheu e salvar essa informação.

 

Deve ser um problema bem bobinho, mas estou com dificuldade de descobrir quais opções foram escolhidas simplesmente porque não consigo associar uma variável para cada checkbox que foi criado.

Tentei usar um array para isso mas não deu certo.

Alguém tem alguma ideia?

 

O código que escrevi está anexo!

 

Valeu pela ajuda.

Charles

 

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

 

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

  1,31K   3 Downloads

 



#2 Manimal

Manimal

    Membro Nível 3

  • Administradores (Adm)
  • PipPipPipPip
  • 358 posts
  • LocationVideira/SC

Postado 28 abril 2017 - 06:24   Melhor Resposta

Olá Experito.

 

Para resolver seu problema, use os comandos Assign e Eval

  • Assign para atribuir conteúdos a variáveis dinâmicas
  • Eval para ler o conteúdo das variáveis dinâmicas

 

Modifiquei a linha 20 para a sintaxe correta de criação e as linhas 37 a 40 para a leitura correta das variáveis também.

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

Dessa forma, apenas a CheckBox marcada será sinalizada!


Editado por Manimal, 28 abril 2017 - 06:24 .


#3 Experito

Experito

    Novato

  • Membros
  • 3 posts
  • LocationItaqui RS

Postado 02 maio 2017 - 10:06

Olá Manimal!

Agradeço muito sua ajuda.

Era exatamente isso que eu estava precisando.







Tópicos que também usam as tags checkbox, variáveis dinâmicas, variáveis:

0 usuário(s) está(ão) lendo este tópico

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

Documentação OnLine de referência