por ejemplo tengo un imput "$in"
para ke salga dentro de ese imput ago lo siguiente
Código: Seleccionar todo
case $boton
GUICtrlSetData($in, "bbbbb")
espero ke se alla entendido
gracias !!
Código: Seleccionar todo
case $boton
GUICtrlSetData($in, "bbbbb")
Código: Seleccionar todo
#include <GuiConstantsEx.au3>
GUICreate("GUI input",200,200)
$input=GUICtrlCreateInput("",20,50,160)
$Boton=GUICtrlCreateButton("Boton",50,140,100)
GUISetState(@SW_SHOW)
$i=1 ;contador
$a1="aaaaa" ;dato 1
$a2="bbbbb" ;dato 2
$a3="ccccc" ;dato 3
While 1
$Msg= GUIGetMsg()
If $i>3 Then $i=1
Switch $Msg
Case $GUI_EVENT_CLOSE
ExitLoop
Case $Boton
If $i=1 Then
GUICtrlSetData($input,$a1)
ElseIf $i=2 Then
GUICtrlSetData($input,$a2)
Else
GUICtrlSetData($input,$a3)
EndIf
$i=$i+1 ;aquí aumento el contador
EndSwitch
Sleep(50)
WEnd
Código: Seleccionar todo
#include <GuiConstantsEx.au3>
GUICreate("GUI input", 200, 200)
$input = GUICtrlCreateInput("", 20, 50, 160)
$Boton = GUICtrlCreateButton("Boton", 50, 140, 100)
GUISetState(@SW_SHOW)
Global $Lista[3] = ["aaaaa", "bbbbb", "ccccc"], $Contador = -1
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $Boton
$Contador += 1 ; Aumentar el contador
If $Contador = 3 Then $Contador = 0 ; Si esta al limite, resetearlo
GUICtrlSetData($input, $Lista[$Contador]) ; Poner el array correspondiente
EndSwitch
Sleep(50)
WEnd
No lo he probado, pero si no me equivoco, con esta pequeña modificación $Lista[0] dará el total de elementos de la matriz, y ya sólo habrá que añadir o eliminar elementos en la definición de la matriz.Alastor escribió:¿Qué os parece así, sin tener que preocuparse por tanto "If, Else..."?
Creo un array y un contador, despues de eso solo hay que preocuparse de resetearlo y añadir más es tan facil como editar 2 números.Código: Seleccionar todo
If $Contador =$Lista[0] Then $Contador = 0 ; Si esta al limite, resetearlo
"$Lista[0]" apunta al primer elemento de la matriz. Creo que te confundes con $CMDLine[0] que apunta al tamaño de la matriz de parametros, esto no ocurre con las matrices normales.jamaro escribió:No lo he probado, pero si no me equivoco, con esta pequeña modificación $Lista[0] dará el total de elementos de la matriz, y ya sólo habrá que añadir o eliminar elementos en la definición de la matriz.Alastor escribió:¿Qué os parece así, sin tener que preocuparse por tanto "If, Else..."?
Creo un array y un contador, despues de eso solo hay que preocuparse de resetearlo y añadir más es tan facil como editar 2 números.Código: Seleccionar todo
If $Contador =$Lista[0] Then $Contador = 0 ; Si esta al limite, resetearlo
Saludos y gracias por vuestras ayudas.
Ximorro escribió:If $Contador = UBound($Lista) Then...
Código: Seleccionar todo
If $Contador =UBound($Lista)-1 Then $Contador = 0 ; Si esta al limite, resetearlo
Código: Seleccionar todo
Case $Boton
If $Contador = UBound($Lista) Then $Contador = 0 ; o if $Contador>UBound($Lista)-1 then.......
GUICtrlSetData($input, $Lista[$Contador]) ; Poner el array correspondiente
$Contador += 1 ; Aumentar el contador
En varias ocasiones había utilizado la posición cero como el tamaño de la matriz, y efectivamente, creo que siempre ha sido al usar funciones como StringSplit, _StringInLine, _FileReadToArray,....Ximorro escribió:Efectivamente que en la posición cero esté el tamaño de la matriz es cosa del que la crea, hay funciones que devuelven sus matrices con esa particularidad pero no es obligatorio.
Pues no estoy muy de acuerdo, querido amigo. UBound da el número de elementos, no el índice máximo. Así si nuestra matriz es de 3 elementos (como decía había que declararla como Global $Lista[3], UBound($Lista) devuelve 3, aunque la matriz tiene celdas de la 0 a la 2.Chefito escribió:Puestos a corregir :Sería un elemento menos. Recuerda que el primer elemento es el 0.Ximorro escribió:If $Contador = UBound($Lista) Then...Código: Seleccionar todo
If $Contador =UBound($Lista)-1 Then $Contador = 0 ; Si esta al limite, resetearlo