Página 1 de 1
GUICtrlCreateList
Publicado: 13 Nov 2009, 23:05
por joaquin
¿Es posible crear un checkBox dentro de un GUICtrlCreateList, o sea, que quede integrado y sea funcional en cada uno de los elementos que componen la lista?
Con _GUICtrlListView_SetItemChecked($hListView, 0) sí se puede, pero la pregunta es referida a GUICtrlCreateList.
Re: GUICtrlCreateList
Publicado: 14 Nov 2009, 00:38
por gna08
Te re feris a algo como esto??
Si es asi es sencillo, solo necesitas crear en ves del GUICtrlCreateList un GUICtrlCreateTreeView de esta forma
Código: Seleccionar todo
$hTree = GUICtrlCreateTreeView(x, y, ancho, alto, BitOR($TVS_HASBUTTONS,$TVS_HASLINES,$TVS_DISABLEDRAGDROP,$TVS_SHOWSELALWAYS,$TVS_CHECKBOXES,$TVS_TRACKSELECT,0x00020000,0x00010000))
ACordate de agregar el include #include <GuiTreeView.au3>
y para krear los items , o checkbox hace esto
Código: Seleccionar todo
GUICtrlCreateTreeViewItem("Aca tu checkbox texto", $hTree)
E sesto o k kosa, responde si te sirvio ;)
Re: GUICtrlCreateList
Publicado: 14 Nov 2009, 10:34
por joaquin
Gracias por la respuesta,
Entiendo que NO se puede realizar con GUICtrlCreateList. Creo que tu propuesta si serviría.
Explico un poco mejor lo que quiero hacer:
1) En un control aparece un listado de funciones (Ex: Break, Call,...)
2) Al seleccionar un item de la lista del primer control, da la descripción del item en otro control (Edit, List,...?)
3) Sólo si está checkado el item seleccionado del primer control lanzará un script de ejemplo de la función.
Por tanto, tendria que hacer dos funciones: selección+Check.
Además de lo planteado en relación a los Controles, ¿Cómo puedo manejar las variables de funciones ($f) y descripciones ($d) con un Array2D ?
Código: Seleccionar todo
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GuiTreeView.au3>
$f1 ="BlockInput |"
$f2 ="Break "
$f3 ="Call"
$f4 ="Execute"
$d1 ="Habilita/Deshabilita el mouse y teclado"
$d2 ="Habilita/Deshabilita la posibilidad de salir del Script desde tray icon"
$d3 ="Llamada a una función de usuario"
$d4 ="Ejecuta una expresión"
$Form1 = GUICreate("", 725, 199, 317, 243)
$hTree = GUICtrlCreateTreeView(6, 6, 150, 40, BitOR($TVS_HASBUTTONS,$TVS_HASLINES,$TVS_DISABLEDRAGDROP,$TVS_SHOWSELALWAYS,$TVS_CHECKBOXES,$TVS_TRACKSELECT,0x00020000,0x00010000))
GUICtrlCreateTreeViewItem("Break", $hTree)
GUICtrlCreateTreeViewItem("Call", $hTree)
$Group1 = GUICtrlCreateGroup("Funcion", 32, 40, 297, 121)
$List1 = GUICtrlCreateList("", 56, 64, 249, 84)
GUICtrlSetData(-1, "BlockInput|Break|Call|Execute|OnExitFunc|SetError|VarGetType")
$Group2 = GUICtrlCreateGroup("Descripcion", 344, 40, 369, 121)
$List2 = GUICtrlCreateList("", 360, 64, 345, 84)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
;Case GUICtrlRead($List1,1) = $f1
;GUICtrlSetData($List2,$d1)
EndSwitch
WEnd
Re: GUICtrlCreateList
Publicado: 14 Nov 2009, 19:59
por gna08
Haber, la cosa es. (segun entendi).. si esta seleccionado uno de estos ITEMS muestra X info, pero si esta chekeado x asi decirlo, lo manda a ejecutar segun sea¿ asi seria??
Re: GUICtrlCreateList
Publicado: 14 Nov 2009, 20:54
por joaquin
Justo eso mismo: ...sólo si está checkado, además de mostrar la descripción, lanzará la función que representa.
Re: GUICtrlCreateList
Publicado: 15 Nov 2009, 01:19
por gna08
BUeno, mira, edite un poco el code.. emmm. es para que tengas una idea.. si es masomenos lo k kerias, siguiendo el ejemplo vas a lograrlo.. otra cosa, lo de los arrays, te referis para no estar agregando control por control ?
Código: Seleccionar todo
#include <GuiTreeView.au3>
$f1 ="BlockInput |"
$f2 ="Break "
$f3 ="Call"
$f4 ="Execute"
$d1 ="Habilita/Deshabilita el mouse y teclado"
$d2 ="Habilita/Deshabilita la posibilidad de salir del Script desde tray icon"
$d3 ="Llamada a una función de usuario"
$d4 ="Ejecuta una expresión"
$Form1 = GUICreate("", 725, 199)
$hTree = GUICtrlCreateTreeView(6, 6, 150, 40, BitOR($TVS_HASBUTTONS,$TVS_HASLINES,$TVS_DISABLEDRAGDROP,$TVS_SHOWSELALWAYS,$TVS_CHECKBOXES,$TVS_TRACKSELECT,0x00020000,0x00010000))
$BREAK = GUICtrlCreateTreeViewItem("Break", $hTree)
$CALL = GUICtrlCreateTreeViewItem("Call", $hTree)
$Group1 = GUICtrlCreateGroup("Funcion", 32, 40, 297, 121)
$List1 = GUICtrlCreateList("", 56, 64, 249, 84)
GUICtrlSetData(-1, "BlockInput|Break|Call|Execute|OnExitFunc|SetError|VarGetType")
$Group2 = GUICtrlCreateGroup("Descripcion", 344, 40, 369, 121)
$List2 = GUICtrlCreateEDIT("", 360, 64, 345, 84)
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case -3
Exit
Case $BREAK
If _GUICtrlTreeView_GetChecked($hTree, $BREAK) Then
MsgBox(0, "", "Chekeaste el control $BREAK!. aca en lugar del msgbox pones lo que kieras...")
Else
GUICtrlSetData($List2, $d2) ; aca se setea la info cuando haces seleccion solamente
EndIf
Case $CALL
If _GUICtrlTreeView_GetChecked($hTree, $CALL) Then
MsgBox(0, "", "Chekeaste el control $CALL!. aca en lugar del msgbox pones lo que kieras...")
Else
GUICtrlSetData($List2, $d3) ; aca se setea la info cuando haces seleccion solamente
EndIf
EndSwitch
WEnd
Re: GUICtrlCreateList
Publicado: 15 Nov 2009, 21:38
por joaquin
Gracias por editar el Code. Efectivamente pude resolver...
En relación a los Arrays, me pareció que podría ir bien ya que cada una de las variables de función ($f1)se relaciona con sólo una de las variables de descripción($d1). Algo así:
$array[4][4] = [["BlockInput ","Break ","Call","Execute"],["Habilita/Deshabilita el mouse y teclado","Habilita/Deshabilita la posibilidad de salir del Script desde tray icon","Llamada a una función de usuario","Ejecuta una expresión"]]
...Aunque no sé si es la mejor opción. De todas formas, veo que las descripciones podrian requerir párrafos, en lugar de líneas y quizá sería mejor que cada elemento del array fuera extraido de un .ini o un .txt . Puedes sugerir?
Por cierto ¿hay alguna manera de quebrar la linea de edición en Scite, y que entienda que es continuación de la anterior?
Saludos
Re: GUICtrlCreateList
Publicado: 15 Nov 2009, 23:53
por gna08
...Aunque no sé si es la mejor opción. De todas formas, veo que las descripciones podrian requerir párrafos, en lugar de líneas y quizá sería mejor que cada elemento del array fuera extraido de un .ini o un .txt . Puedes sugerir?
Usas esto Ej:
Código: Seleccionar todo
"Soy una oracion." & @CRLF & "Acabo de crear salto de linea, ya tenes un parrafo"
Por cierto ¿hay alguna manera de quebrar la linea de edición en Scite, y que entienda que es continuación de la anterior?
Sii hace eso:
Código: Seleccionar todo
$soy = "soy re largo uy me tenes k kortar" & _
"por lo tanto como me corta, soy contnuacion"
Saludos y decime si te anduvo..o si era lo que necesitabas.. nos vemos
Re: GUICtrlCreateList
Publicado: 16 Nov 2009, 16:52
por joaquin
Gracias por la ayuda, justo lo que necesitaba....
Saludos