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??
Imagen

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?? :smt017

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 ? :smt017

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 :smt023

Re: GUICtrlCreateList

Publicado: 16 Nov 2009, 16:52
por joaquin
Gracias por la ayuda, justo lo que necesitaba.... :smt003
Saludos