Pregunta Sobre los CheckBox y los Imput

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
korsal
Mensajes: 7
Registrado: 27 Jun 2011, 21:07

Pregunta Sobre los CheckBox y los Imput

Mensaje por korsal »

Bueno veran es una duda que tengo desde hace tiempo y quisiera saber si ustedes me la podrian resolver.

Mi pregunta es la siguiente, como puedo unir un checkbox ( los cuadraditos que si le das click se pone un tick) con una imput de texto,
me explico quiero hacer lo siguiente al marcar la casilla checkbox quiero que se active el texto que tengo escrito en la imput de texto y que se mande con la tecla enter, pero solo si la checkbox esta marcada si no no. Porfavor ayudenme es lo unico que me falta para terminar mi programa y no encuentro nada en ningun manual, os dejo una imagen y el codigo fuente para los que no me entendieron.

http://imageshack.us/photo/my-images/12/autoitduda.jpg/

Y el codigo fuente para orientaros un poco:

Código: Seleccionar todo

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 588, 249, 192, 124)
$Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 32, 56, 73, 81)
$Input1 = GUICtrlCreateInput("Input1", 120, 88, 377, 21)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

	EndSwitch
WEnd
Espero que alguien me pueda solucionar la duda.
Avatar de Usuario
ms999
Hacker del Foro
Mensajes: 116
Registrado: 26 Ene 2011, 06:13

Re: Pregunta Sobre los CheckBox y los Imput

Mensaje por ms999 »

al marcar la casilla checkbox quiero que se active el texto que tengo escrito en la imput de texto y que se mande con la tecla enter, pero solo si la checkbox esta marcada si no no.
No entendi muy bien...
¿Puede ser esto a lo que te referis?
Mientras la checkbox esta activada el input esta habilitado, sino no.

Código: Seleccionar todo

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 588, 249, 192, 124)
    $Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 32, 56, 73, 81)
    $Input1 = GUICtrlCreateInput("Input1", 120, 88, 377, 21)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    While 1
       $nMsg = GUIGetMsg()
       Switch $nMsg
          Case $GUI_EVENT_CLOSE
             Exit
		 Case $Checkbox1
			 If Guictrlread($Checkbox1) = $GUI_CHECKED Then
				 Guictrlsetstate($input1, $GUI_DISABLE)
			 Else
				 Guictrlsetstate($input1, $GUI_ENABLE)
			 EndIf
       EndSwitch
    WEnd
Dime si es esto lo que querias.
korsal
Mensajes: 7
Registrado: 27 Jun 2011, 21:07

Re: Pregunta Sobre los CheckBox y los Imput

Mensaje por korsal »

si a eso me referia esta muy bien pero en vez de que se active cuando le des al checkbox quiero que este desabilitado cuando enciendes el programa y que luego se active cuando le des al checkbox.
Avatar de Usuario
ms999
Hacker del Foro
Mensajes: 116
Registrado: 26 Ene 2011, 06:13

Re: Pregunta Sobre los CheckBox y los Imput

Mensaje por ms999 »

Mira el comando que use para deshabilitar el input, y tambien el que use para checkear la condicion del checkbox

Código: Seleccionar todo

              If Guictrlread($Checkbox1) = $GUI_UNCHECKED Then
                 Guictrlsetstate($input1, $GUI_DISABLE)
              Else
                 Guictrlsetstate($input1, $GUI_ENABLE)
              EndIf
Si te fijas en la ayuda te dice para que son y que parametros podes usar con ellos y las UDFs que necesitas para hacerlos funcionar, ademas vienen con un ejemplo para que veas como usarlos tambien.
Todo esto lo puse para que se haga solamente cuando aprietes en el checkbox, dentro del case $CheckBox1
Si queres que el input se deshabilite al comienzo del script solo tenes que hacerlo usando uno de esos comandos antes del bucle, yo personalmente lo hago luego de la creacion del control.
algo asi como

Código: Seleccionar todo

$Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 32, 56, 73, 81) ; Aca cree el checkbox
Guictrlsetstate(-1, $GUI_DISABLE) ; Aca lo deshabilito
El -1 lo pongo porque asi toma en cuenta el ultimo control creado, lo hago para no poner el nombre de la variable denuevo.
¿Aver si lo resolves vos? no es tan dificil
korsal
Mensajes: 7
Registrado: 27 Jun 2011, 21:07

Re: Pregunta Sobre los CheckBox y los Imput

Mensaje por korsal »

Aun que yo a lo que me referia era que justo cuando abra el programa la imput este desactivada por defecto y luedo al marcar la checkbox se active.
Avatar de Usuario
ms999
Hacker del Foro
Mensajes: 116
Registrado: 26 Ene 2011, 06:13

Re: Pregunta Sobre los CheckBox y los Imput

Mensaje por ms999 »

Vamos que no esta tan dificil... ya te dije como hacerlo....
Lo primero es...
Debajo de la linea donde se crea la input, tenes que poner una linea que la deshabilite. eso ya te lo di.
Ahora fijate la condicion y ve que dice...

Código: Seleccionar todo

If Guictrlread($Checkbox1) = $GUI_CHECKED Then ; Si la checkbox esta tildada hacemos lo siguiente...
Guictrlsetstate($input1, $GUI_ENABLE)                               ; Cambiamos el estado del control $Input1 a $Gui_Enable osea lo habilitamos
else                                                                                   ; Sino(sino esta tildada)....
Guictrlsetstate($input1, $GUI_DISABLE)                               ; Deshabilitamos el control $Input1
EndIf                                                                                  ; Cerramos la condicion....
¿Cuando deberia hacer esta comprobacion?
Y bueno... lo ponemos para que lo haga cuando se clickee la checkbox¿No te parece?
entonces le agragamos un case mas al bucle

Código: Seleccionar todo

While 1
       $nMsg = GUIGetMsg()
       Switch $nMsg
          Case $GUI_EVENT_CLOSE
             Exit
       Case $Checkbox1 ; esto se va  a hacer cuando se clickee sobre la checkbox.
          If Guictrlread($Checkbox1) = $GUI_CHECKED Then
             Guictrlsetstate($input1, $GUI_ENABLE)
          Else
             Guictrlsetstate($input1, $GUI_DISABLE)
          EndIf
       EndSwitch
    WEnd
Espero que te haya quedado claro y espero mas que hallas aprendido algo de esto.
korsal
Mensajes: 7
Registrado: 27 Jun 2011, 21:07

Re: Pregunta Sobre los CheckBox y los Imput

Mensaje por korsal »

Muchisimas gracias ya e resuelto mi duda gracias otra vez :smt023
korsal
Mensajes: 7
Registrado: 27 Jun 2011, 21:07

Re: Pregunta Sobre los CheckBox y los Imput

Mensaje por korsal »

otra cosa se me olvidaba si quiero añadir 3 imput box como puedo hacerlo para cada una??
lo e intenado copiando el codigo que me pasaste y cambiando solo el numero de la checkbox y imput a 2 pero no me va
Avatar de Usuario
ms999
Hacker del Foro
Mensajes: 116
Registrado: 26 Ene 2011, 06:13

Re: Pregunta Sobre los CheckBox y los Imput

Mensaje por ms999 »

postea el codigo que hiciste.
korsal
Mensajes: 7
Registrado: 27 Jun 2011, 21:07

Re: Pregunta Sobre los CheckBox y los Imput

Mensaje por korsal »

Código: Seleccionar todo

  #include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 501, 212, 192, 124)
$Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 16, 24, 17, 17)
$Checkbox2 = GUICtrlCreateCheckbox("Checkbox2", 16, 64, 17, 17)
$Checkbox3 = GUICtrlCreateCheckbox("Checkbox3", 16, 104, 17, 17)
$Input1 = GUICtrlCreateInput("Input1", 48, 16, 337, 21)
$Input2 = GUICtrlCreateInput("Input2", 48, 64, 337, 21)
$Input3 = GUICtrlCreateInput("Input3", 48, 104, 337, 21)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

  While 1
       $nMsg = GUIGetMsg()
       Switch $nMsg
          Case $GUI_EVENT_CLOSE
             Exit
       Case $Checkbox1
          If Guictrlread($Checkbox1) = $GUI_CHECKED Then
             Guictrlsetstate($input1, $GUI_ENABLE)
          Else
             Guictrlsetstate($input1, $GUI_DISABLE)

          EndIf
       EndSwitch
   WEnd
   
    While 1
       $nMsg = GUIGetMsg()
       Switch $nMsg
          Case $GUI_EVENT_CLOSE
             Exit
       Case $Checkbox1
          If Guictrlread($Checkbox2) = $GUI_CHECKED Then
             Guictrlsetstate($input2, $GUI_ENABLE)
          Else
             Guictrlsetstate($input2, $GUI_DISABLE)

          EndIf
       EndSwitch
   WEnd
   
    While 1
       $nMsg = GUIGetMsg()
       Switch $nMsg
          Case $GUI_EVENT_CLOSE
             Exit
       Case $Checkbox1
          If Guictrlread($Checkbox3) = $GUI_CHECKED Then
             Guictrlsetstate($input3, $GUI_ENABLE)
          Else
             Guictrlsetstate($input3, $GUI_DISABLE)

          EndIf
       EndSwitch
   WEnd
   
   
Avatar de Usuario
ms999
Hacker del Foro
Mensajes: 116
Registrado: 26 Ene 2011, 06:13

Re: Pregunta Sobre los CheckBox y los Imput

Mensaje por ms999 »

Claro que no va a funcionar. Deberias usar solo un bucle para eso. Mi consejo es que leas esto y hagas los tutoriales para qeu aprendas lo básico primero y si tienes alguna duda posteala aca.
Te dejo el Link para que veas: Nuevo en Autoit: POR DONDE EMPEZAR
Y te dejo el code arreglado. Pero no esperes que te ayude escribiendo tus scripts por vos si no intentas aprender por tu cuenta, ve por los tutos y aprende, aca te ayudamos y bastante si de verdad quieres aprender

Código: Seleccionar todo

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 501, 212, 192, 124)
$Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 16, 24, 17, 17)
$Checkbox2 = GUICtrlCreateCheckbox("Checkbox2", 16, 64, 17, 17)
$Checkbox3 = GUICtrlCreateCheckbox("Checkbox3", 16, 104, 17, 17)
$Input1 = GUICtrlCreateInput("Input1", 48, 16, 337, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
$Input2 = GUICtrlCreateInput("Input2", 48, 64, 337, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
$Input3 = GUICtrlCreateInput("Input3", 48, 104, 337, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Checkbox1
			If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then
				GUICtrlSetState($Input1, $GUI_ENABLE)
			Else
				GUICtrlSetState($Input1, $GUI_DISABLE)
			EndIf
		Case $Checkbox2
			If GUICtrlRead($Checkbox2) = $GUI_CHECKED Then
				GUICtrlSetState($Input2, $GUI_ENABLE)
			Else
				GUICtrlSetState($Input2, $GUI_DISABLE)
			EndIf
		Case $Checkbox3
			If GUICtrlRead($Checkbox3) = $GUI_CHECKED Then
				GUICtrlSetState($Input3, $GUI_ENABLE)
			Else
				GUICtrlSetState($Input3, $GUI_DISABLE)
			EndIf
	EndSwitch
WEnd
korsal
Mensajes: 7
Registrado: 27 Jun 2011, 21:07

Re: Pregunta Sobre los CheckBox y los Imput

Mensaje por korsal »

Muchas gracioas por tu ayuda ya esta areglado, haora me empezare a documentarme mas.
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Pregunta Sobre los CheckBox y los Imput

Mensaje por Ximorro »

Una cosa sobre la comprobación del checkbox, hacerlo así puede dar problemas, como ya lo he dicho varias veces os enlazo otro comentario:
http://www.emesn.com/autoitforum/viewto ... 845#p10845
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Responder