Página 1 de 1

Sobre UDF _GUICtrlEdit_SetText

Publicado: 27 Ene 2014, 20:14
por sally
Hola a todos amigos!

Mi problema es que estoy usando la UDF _GUICtrlEdit_SetText y no me funciona.

Cuando pruebo a capturar el texto que supuestamente se debería poner en el Edit después de la función _GUICtrlEdit_SetText me da como respuesta que está vacío.

El código que tengo es este:

#include <GuiEdit.au3>

; Set Text
_GUICtrlEdit_SetText("[CLASS:Edit; INSTANCE:1]", "texto de prueba")

; Get Text
MsgBox(0, "Information", _GUICtrlEdit_GetText("[CLASS:Edit; INSTANCE:1]"))

El mensaje me sale vacío.

Alguna idea de lo que me puede estar pasando???

Muchos saludos y gracias de antemano.

Re: Sobre UDF _GUICtrlEdit_SetText

Publicado: 27 Ene 2014, 22:11
por arkcrew
Hola,

Así de primeras lo que se me ocurre es que quizás estés poniendo mal el foco sobre el control,¿Te has asegurado de que el texto se envía correctamente?

Saludos

Re: Sobre UDF _GUICtrlEdit_SetText

Publicado: 27 Ene 2014, 22:59
por Dany
mira la ayuda de las funciones

_GUICtrlEdit_SetText ($hWnd,$sText )
Parametros:
$hWnd Control ID/Handle to the control
$sText String to place in edit control


y _GUICtrlEdit_GetText ($hWnd)
Parametros
$hWnd Control ID/Handle to the control

Ejemplo:

Código: Seleccionar todo

#include <GuiEdit.au3>

;Ejecutamos el bloc de notas
Run("notepad.exe")
;Esperamos hasta que exista el notepad
WinWait("[CLASS:Notepad]")

;obtenemos el handle del control "Edit1" del notepad
local $hEdit1Handle=ControlGetHandle("[CLASS:Notepad]", "", "Edit1")

; llamamos settext pasando como parametro el handle del Edit1 y segundo parametro el texto
_GUICtrlEdit_SetText($hEdit1Handle, "texto de prueba")

; Obtenemos el texto en el Edit1 del notepad pasando como parametro el handle del Edit1
MsgBox(0, "Information", _GUICtrlEdit_GetText($hEdit1Handle))

saludos

Re: Sobre UDF _GUICtrlEdit_SetText

Publicado: 28 Ene 2014, 00:37
por sally
Hola, muchas gracias por contestar!!!

Dany, pude resolver con el ejemplo que me enviaste.

Ya había visto en la ayuda esto que me pones...

_GUICtrlEdit_SetText ($hWnd,$sText )

Parametros:
$hWnd Control ID/Handle to the control
$sText String to place in edit control

pero en el parámetro $hWnd le estaba pasando el ID del control y no el Handle, con lo cual sí pude resolver. Pero lo que no entiendo es que ahí en la ayuda dice que puede ser cualquiera de los dos, alguna idea de por qué no funciona directamente con el control ID del Edit??

Muchas saludos

Re: Sobre UDF _GUICtrlEdit_SetText

Publicado: 28 Ene 2014, 00:52
por Dany
ID es cuando el control, en este caso el edit esta en tu aplicación. ejemplo:

Código: Seleccionar todo

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



Example()


Func Example()
    Local $ID_Edit, $msg

    GUICreate("My GUI edit") ; will create a dialog box that when displayed is centered

    $ID_Edit = GUICtrlCreateEdit("First line" & @CRLF, 176, 32, 121, 97, $ES_AUTOVSCROLL + $WS_VSCROLL)
    GUISetState()

;colocamos el texto en mi edit usando el ID. (en nuestra gui tambien funcionaria pasando el handle GUICtrlGetHandle($ID_Edit)
   _GUICtrlEdit_SetText($ID_Edit, "texto de prueba")
   ;_GUICtrlEdit_SetText(GUICtrlGetHandle($ID_Edit), "texto de prueba")
   
   
    While 1
        $msg = GUIGetMsg()

        If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd
EndFunc   ;==>Example

Pero cuando es una aplicacion externa siempre debes tratar con los handles.


saludos

Re: Sobre UDF _GUICtrlEdit_SetText

Publicado: 28 Ene 2014, 00:57
por sally
Opsss, más que claro ahora Dany, muchas gracias por todo, creo que andaré por acá en cualquier momento con más dudas.

Saludos

Re: Sobre UDF _GUICtrlEdit_SetText

Publicado: 28 Ene 2014, 01:03
por Dany
Un gusto poder ayudarte :)

esperamos verte pronto.

Saludos :smt027