Página 1 de 1

No llama al evento - Help me

Publicado: 22 Jul 2014, 22:35
por yasmany
Buen día con todos, sucede que en este pequeño ejemplo no me respone al evento despues de ocultar la ventana y luego restablecerla, pero mientras está visible cuando se ejecuta por primera vez el boton si da respuesta pero luego ya no, como que no hace caso al evento.
Por favor si alguien puede ayudarme... :smt024

Código: Seleccionar todo

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#NoTrayIcon

Opt("GUIOnEventMode", 1)

Global $verificarActivacion, $Input1, $TrayItemMostrar, $TrayItemSalir
$interfaz = GUICreate("Form2", 218, 289, 202, 201)
GUISetOnEvent($GUI_EVENT_CLOSE, "cerrarInterfaz")

$verificarActivacion = GUICtrlCreateButton("Verificar Activacion", 24, 152, 155, 25)
GUICtrlSetOnEvent(-1, "accionVerificar")

$Input1 = GUICtrlCreateInput("", 40, 112, 121, 21)

GUISetState(@SW_SHOW)

$TrayItemMostrar = TrayCreateItem("Abrir ventana")
TrayItemSetOnEvent(-1, "abrirVentana")
TrayCreateItem(""); crea una linea separadora
$TrayItemSalir = TrayCreateItem("Salir")
TrayItemSetOnEvent(-1, "ExitEvent")

gui()
Func gui()
	While 1
		Sleep(100)
	WEnd
EndFunc   ;==>gui

Func tray()
	Opt("TrayMenuMode", 1)
	Opt("GUIOnEventMode", 0)
	Opt("TrayOnEventMode", 1)
	Opt("TrayIconHide", 0)

	TraySetClick(16)
	TraySetState()
	
	While 1
		Sleep(10)
	WEnd
EndFunc   ;==>tray

Func abrirVentana()
	GUISetState(@SW_SHOW, $interfaz)
	Opt("TrayIconHide", 1)
	gui()
EndFunc   ;==>abrirVentana

Func ExitEvent()
	Exit
EndFunc   ;==>ExitEvent

Func accionVerificar()
	GUICtrlSetData($Input1, "estoy activo, ")
	Sleep(1000)
	GUICtrlSetData($Input1, "")
EndFunc   ;==>accionVerificar

Func cerrarInterfaz()
GUISetState(@SW_HIDE, $interfaz)
tray()
EndFunc   ;==>Form2Close

Re: No llama al evento - Help me

Publicado: 22 Jul 2014, 23:15
por PDF
Es por esta linea innecesaria que agregas a la función tray de tu script:

Código: Seleccionar todo

Opt("GUIOnEventMode", 0)

Primero activas la opción OnEvent de la Interfaz y luego al llamar a tray se desactiva..

Re: No llama al evento - Help me

Publicado: 22 Jul 2014, 23:20
por yasmany
Lo he probado pero no resulta.

Re: No llama al evento - Help me

Publicado: 23 Jul 2014, 14:28
por PDF
yasmany escribió:Lo he probado pero no resulta.
Es cierto, pero si lo pruebas asi, si funciona bien...

Código: Seleccionar todo

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#NoTrayIcon

Opt("GUIOnEventMode", 1)
Opt("TrayMenuMode", 1)
Opt("TrayOnEventMode", 1)
Opt("TrayIconHide", 0)

Global $verificarActivacion, $Input1, $TrayItemMostrar, $TrayItemSalir
$interfaz = GUICreate("Form2", 218, 289, 202, 201)
GUISetOnEvent($GUI_EVENT_CLOSE, "cerrarInterfaz")

$verificarActivacion = GUICtrlCreateButton("Verificar Activacion", 24, 152, 155, 25)
GUICtrlSetOnEvent(-1, "accionVerificar")

$Input1 = GUICtrlCreateInput("", 40, 112, 121, 21)

GUISetState(@SW_SHOW)

$TrayItemMostrar = TrayCreateItem("Abrir ventana")
TrayItemSetOnEvent(-1, "abrirVentana")
TrayCreateItem(""); crea una linea separadora
$TrayItemSalir = TrayCreateItem("Salir")
TrayItemSetOnEvent(-1, "ExitEvent")

While 1
	Sleep(100)
WEnd

Func tray()

	TraySetClick(16)
	TraySetState()

EndFunc   ;==>tray

Func abrirVentana()
	GUISetState(@SW_SHOW, $interfaz)
	Opt("TrayIconHide", 1)
EndFunc   ;==>abrirVentana

Func ExitEvent()
	Exit
EndFunc   ;==>ExitEvent

Func accionVerificar()
	GUICtrlSetData($Input1, "estoy activo, ")
	Sleep(1000)
	GUICtrlSetData($Input1, "")
EndFunc   ;==>accionVerificar

Func cerrarInterfaz()
	GUISetState(@SW_HIDE, $interfaz)
	tray()
EndFunc   ;==>cerrarInterfaz
El problema estaba en los bucles while-wend que ubicabas en las funciones tray y gui que no eran necesarias, solo nececitas un bucle principal.. :smt023
Saludos

Re: No llama al evento - Help me

Publicado: 23 Jul 2014, 16:43
por yasmany
Gracias PDF, me sirvió muy bien.
Reitero mi agradecimiento por tu tiempo.
Saludos :smt024

Re: No llama al evento - Help me

Publicado: 23 Jul 2014, 19:05
por PDF
Cuando gustes, para eso estamos.. :smt024