MultiTimer Ejemplo

y programas personales para otros como tu, puede que te corrijan ;)
Responder
Avatar de Usuario
Dany
Profesional del Autoit
Mensajes: 651
Registrado: 28 Mar 2012, 22:49

MultiTimer Ejemplo

Mensaje por Dany »

Un simple ejemplo de un multitimer que necesitaba en estoy días.

Imagen

Código: Seleccionar todo

#include <GUIConstantsEx.au3>
#include <EditConstants.au3>
#include <Date.au3>
Global $aMaquinas[12], $aTimer[12], $Secs, $Mins, $Hour, $bState[12], $aTime[12], $aTiempos[12]
Example()

Func Example()
	Opt("GUIOnEventMode", 1)

	GUICreate("Control Cyber", 800, 270)
	GUISetBkColor(0x0093FF)
	GUISetOnEvent($GUI_EVENT_CLOSE, "SpecialEvents")
	GUISetOnEvent($GUI_EVENT_MINIMIZE, "SpecialEvents")
	GUISetOnEvent($GUI_EVENT_RESTORE, "SpecialEvents")
	Load()
	For $i = 0 To 5
		GUICtrlCreateGroup("MAQUINA_" & $i + 1, 10 + ($i * 130), 5, 130, 110)
		GUICtrlSetFont(-1, 10, 700, 2, "Arial")
		GUICtrlSetBkColor(-1, 0xfffffff)
		$aMaquinas[$i] = GUICtrlCreateInput($aTiempos[$i], 15 + ($i * 130), 20, 120, 40, $ES_READONLY)
		GUICtrlSetFont(-1, 22, 600, 0, "Bodoni MT")
		GUICtrlSetBkColor(-1, 0xEA1515)
		GUICtrlCreateButton("Comenzar", 15 + ($i * 130), 70, 120, 40)
		GUICtrlSetFont(-1, 16, 400, 0, "Arial")
		GUICtrlSetOnEvent(-1, "MaquinaEvent")

	Next


	For $i = 0 To 5
		GUICtrlCreateGroup("MAQUINA_" & $i + 7, 10 + ($i * 130), 130, 130, 110)
		GUICtrlSetFont(-1, 10, 700, 2, "Arial")
		GUICtrlSetBkColor(-1, 0xfffffff)
		$aMaquinas[$i + 6] = GUICtrlCreateInput($aTiempos[$i + 6], 15 + ($i * 130), 145, 120, 40, $ES_READONLY)
		GUICtrlSetFont(-1, 22, 600, 0, "Bodoni MT")
		GUICtrlSetBkColor(-1, 0xEA1515)
		GUICtrlCreateButton("Comenzar", 15 + ($i * 130), 195, 120, 40)
		GUICtrlSetFont(-1, 16, 400, 0, "Arial") ;
		GUICtrlSetOnEvent(-1, "MaquinaEvent")

	Next

	GUISetState(@SW_SHOW)


	AdlibRegister("Save", 1000)
	AdlibRegister("Tiempo", 50)

	While 1
		Sleep(30)
	WEnd
EndFunc   ;==>Example

Func Load()
	For $i = 1 To 12
		$aTiempos[$i - 1] = IniRead("tiempos.ini", "Tiempos", "MAQUINA_" & $i, "00:00:00")
	Next
EndFunc   ;==>Load


Func Save()
	For $i = 1 To 12
		If $bState[$i - 1] Then
			IniWrite("Tiempos.ini", "Tiempos", "MAQUINA_" & $i, GUICtrlRead($aMaquinas[$i - 1]))
		Else
			IniWrite("Tiempos.ini", "Tiempos", "MAQUINA_" & $i, "00:00:00")
		EndIf
	Next
EndFunc   ;==>Save

Func Tiempo()
	Local $asTime[12]
	Local $asTime=0
	For $i = 0 To 11
		If $bState[$i] Then
			_TicksToTime(Int(TimerDiff($aTimer[$i])), $Hour, $Mins, $Secs)
			 $asTime = $aTime[$i]
			$aTime[$i] = StringFormat("%02i:%02i:%02i", $Hour, $Mins, $Secs)
			If $asTime <> $aTime[$i] Then GUICtrlSetData($aMaquinas[$i], $aTime[$i])
		EndIf
	Next
EndFunc   ;==>Tiempo

Func MaquinaEvent()
	Local $i = Int(@GUI_CtrlId / 3) - 1
	If $bState[$i] Then
		TimerDiff($aTimer[$i])
		$bState[$i] = False
		GUICtrlSetData(@GUI_CtrlId, "Comenzar")
		GUICtrlSetBkColor(@GUI_CtrlId - 1, 0xEA1515)
	Else
		GUICtrlSetData(@GUI_CtrlId, "Pausar")
		GUICtrlSetBkColor(@GUI_CtrlId - 1, 0x2DD25)
		$bState[$i] = True
		$aTimer[$i] = TimerInit()
	EndIf

EndFunc   ;==>MaquinaEvent




Func SpecialEvents()
	Local $iMsg = 0
	Select
		Case @GUI_CtrlId = $GUI_EVENT_CLOSE
			$iMsg = MsgBox(4, "Control Cyber", "¿Reaalmente quiere salir?")

			If $iMsg = 6 Then
				GUIDelete()
				Exit
			EndIf


		Case @GUI_CtrlId = $GUI_EVENT_MINIMIZE

		Case @GUI_CtrlId = $GUI_EVENT_RESTORE

	EndSelect
EndFunc   ;==>SpecialEvents


Saludos
  • ............................................Imagen
    ......................................Imagen
Avatar de Usuario
XPyro
Profesional del Autoit
Mensajes: 542
Registrado: 04 Mar 2007, 10:12
Ubicación: México
Contactar:

Re: MultiTimer Ejemplo

Mensaje por XPyro »

Muy bueno Dany, tenia uno de estos planes en mente pero con el poco tiempo que me cargo solo los dejo incompletos, con esta ayudas mucho espero un dia terminar todos los planes o al final los publicare en el foro para que los terminen ustedes :smt005

Muchas gracias por compartir :smt006
Imagen
Avatar de Usuario
yasmany
Hacker del Foro
Mensajes: 249
Registrado: 06 Sep 2011, 21:30

Re: MultiTimer Ejemplo

Mensaje por yasmany »

Gracias Dany por el ejemplo :smt001
gracias por compartir ... :smt024
Obra de modo que merezcas a tu propio juicio y a juicio de los demás la eternidad, que te hagas insustituible que no merezcas morir.
https://www.facebook.com/yasmanycurimilma
Responder