Página 1 de 1

duda con gui, mostrar texto en un edit, función de ayuda

Publicado: 21 May 2010, 17:30
por taoru
hola!, estoy intentando mostrar una ayuda en mi software, para ello generé una función que cree el gui con el texto...no creo que es la forma correcta, asi que consulto..
lo que hice es cargar un edit con los datos de la ayuda...en este caso puse solo un texto de 3 lineas para provar haber como se ve...

mi consultas son:
cual es la mejor forma de mostrar estos tipos de ayuda?.
como hacer para que el edit muestre el texto pero no permita editarlo?.
como se visualiza?, esta es la mejor forma gráfica de hacer esto, o cual me recomienda?.


pego a continuación mi código:

Código: Seleccionar todo

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>

Opt('MustDeclareVars', 1)
Local $titulo,$texto

$titulo="ayuda"
$texto="Primera línea" & @CRLF &"2a línea" & @CRLF &"3ra línea"

visor($titulo,$texto)

Func visor($title,$texto)
    Local $myedit, $msg
    GUICreate($title)

    $myedit = GUICtrlCreateEdit($texto, 176, 32, 121, 97, $ES_AUTOVSCROLL + $WS_VSCROLL)

    GUISetState()

    While 1
        $msg = GUIGetMsg()
        
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd
    GUIDelete()
EndFunc   ;==> cuadro de ayuda del soft
nota: esta función se convocará al precionar en el menú ayuda, y mostrará un texto con la ayuda de como utilizar el software.
gracias a todos!.

Re: duda con gui, mostrar texto en un edit, función de ayuda

Publicado: 22 May 2010, 19:03
por Rupert.25
Que tal!

he mirado tu código y me parece bien la idea de poner ayuda.

personalmente no creo que la ayuda se ponga en "Edit's". Para ello puedes usar "label's" o "Tip's"

He modificado tu código. Tu dime cual se ve mejor.

Código: Seleccionar todo

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <EditConstants.au3>
    #include <StaticConstants.au3>

    Opt('MustDeclareVars', 1)
    Local $titulo,$texto, $Boton

    $titulo="ayuda"
    $texto="Primera línea" & @CRLF &"2a línea" & @CRLF &"3ra línea"

    visor($titulo,$texto)

    Func visor($title,$texto)
        Local $myedit, $msg
        GUICreate($title)
		GUICtrlCreateLabel("Esta es una etiqueta de texto que puedes usar para poner ayuda también",10,10)
        $myedit = GUICtrlCreateEdit($texto, 176, 32, 121, 97, $ES_AUTOVSCROLL + $WS_VSCROLL)
		GUICtrlSetTip(-1,"Este $myedit no es necesario","Ayuda")

		$Boton = GUICtrlCreateButton("Coloca el mouse aquí encima",10,50,150)
		GUICtrlSetTip(-1,"hola, este es el mensaje que debe aparecer en la ayuda." & @CRLF & "Sola dá clic en este boton y ya","Ayuda")

        GUISetState()

        While 1
            $msg = GUIGetMsg()

    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
        WEnd
        GUIDelete()
    EndFunc   ;==> cuadro de ayuda del soft

Espero haberte ayudado!

Re: duda con gui, mostrar texto en un edit, función de ayuda

Publicado: 22 May 2010, 19:35
por Chefito
Hombre, yo pienso que lo mejor es hacer la ayuda en un archivo de ayuda (.chm) :smt005 . Hay muchos programas que te ofrecen esta posibilidad.
También me gustan las ayudas creadas como página web mostradas en el explorador. Incluso puede que esta sea la mejor forma.

Saludos.

Re: duda con gui, mostrar texto en un edit, función de ayuda

Publicado: 22 May 2010, 19:44
por Rupert.25
Claro! Estoy de acuerdo contigo Chefito.

Sin embargo para "Ayuda rápida" no creo que sea buena idea hacerlo así. Aunque para una ayuda extendida, la verdad es que no hay mejor form que ayudas CHM o tipo HTMl como dices :D

Re: duda con gui, mostrar texto en un edit, función de ayuda

Publicado: 22 May 2010, 21:30
por Chefito
Sí. Jejeje, yo también estoy deacuerdo contigo en que ese tipo de métodos son para ayudas grandes.

Lo del label está bien, pero tiene sus limitaciones. El texto que pongas es fijo, y si necesitas poner un poco más de texto y poderlo desplazar en el propio control con las barras de desplazamiento, lo más recomendable es un edit de solo lectura (estilo $ES_READONLY), para que el usuario no pueda cambiar el texto.

Luego puedes tu ponerle los estilos (propiedades) que tu quieras al edit además de la anterior.

Saludos.

Re: duda con gui, mostrar texto en un edit, función de ayuda

Publicado: 24 May 2010, 09:11
por Ximorro
Si quieres un ejemplo yo usé el truco de meter un objeto Shell.Explorer en un formulario de AutoIT para poner una ayuda simple. Está en este programa:
http://www.emesn.com/autoitforum/viewto ... 04&start=0

Es parecido a poner un editbox no editable (esa idea también me gusta) pero para darle algo de formato (negritas, cursiva, colores, títulos, etc...) se me ocurrió lo del html. Si quieres estilos, html es muy últil.

Para verlo en acción ejecútalo y dale al botoncito del interrogante, como verás queda mucho mejor que lo que puedas hacer con un simple editbox. El código que te interesa está condensado en las dos últimas funciones. Realmente la última sólo devuelve la cadena, así que eso podrías tenerlo en un string o cargarlo de un archivo a parte.

Nota que me tocó poner estilos a la página para que no me cambiara el tamaño de texto según tenga el usuario el tamaño de fuente en el navegador...

En el post se discute el tema de la ayuda, Chefito ofrece otra sugerencia usando controles Richedit. Es otra alternativa aunque también tiene sus inconvenientes, si te interesa sigue aquél hilo que hay enlaces.