Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Pytanie] Minutnik


Rekomendowane odpowiedzi

Opublikowano
TimerInit - Funkcja zwraca uchwyt, który może być przekazany do TimerDiffcelem obliczenia różnicy czasu w ms. Zwrócony uchwyt nie może byćwykorzystywany w innych funkcjach niż TimerDiff, gdyż grozi towystąpieniem błędu.TimerDiff - Funkcja zwraca czas w ms jaki upłynął od wywołania funkcji TimerInit, której uchwyt został podany jako parametr. 

Ewentualnie mozna to zrobic za pomocą pętli.

Opublikowano

Z TimerInit trochę źle bo trzeba przeliczać milisekundy na sekundy i minuty, lepiej tak:

 

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <String.au3>
#region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Minutnik", 173, 106, 277, 275)
$Button1 = GUICtrlCreateButton("Odliczaj!", 16, 48, 139, 25)
$Label1 = GUICtrlCreateLabel("Czas [Min:Sek]:", 16, 24, 78, 17)
$Input1 = GUICtrlCreateInput("", 96, 21, 59, 21)
$Label2 = GUICtrlCreateLabel("Pozostało: --:--", 16, 80, 139, 17, $SS_CENTER)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###
$Odliczaj = 0
$Minuty = ""
$Sekundy = ""
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button1
			If $Odliczaj Then
				$Odliczaj = 0
				AdlibUnRegister("Odliczanie")
				GUICtrlSetData($Label2, "Pozostało: --:--")
				GUICtrlSetData($Button1, "Odliczaj!")
			Else
				$Czas = StringSplit(GUICtrlRead($Input1), ":")
				If $Czas[0] < 2 Or $Czas[0] > 2 Then
					MsgBox(48, "Uwaga", "Podano nieprawidłowy czas!")
				Else
					If $Czas[1] == "" Or $Czas[2] == "" Then
						MsgBox(48, "Uwaga", "Podano nieprawidłowy czas!")
					Else
						$Odliczaj = 1
						$Minuty = $Czas[1]
						$Sekundy = $Czas[2]
						Odliczanie()
						AdlibRegister("Odliczanie", 1000)
						GUICtrlSetData($Button1, "Przerwij!")
					EndIf
				EndIf
			EndIf
	EndSwitch
WEnd

Func Odliczanie()
	If $Sekundy = -1 Then
		$Sekundy = 59
		$Minuty -= 1
	EndIf

	GUICtrlSetData($Label2, StringFormat("Pozostało: %02d:%02d", $Minuty, $Sekundy))

	If $Minuty = 0 And $Sekundy = 0 Then
		AdlibUnRegister("Odliczanie")
		$Odliczaj = 0
		MsgBox(64, "Uwaga", "Odliczanie zakończone!")
		GUICtrlSetData($Label2, "Pozostało: 00:00")
		GUICtrlSetData($Button1, "Odliczaj!")
	EndIf
	$Sekundy -= 1
EndFunc   ;==>Odliczanie

4417049059_6234f40fb5.jpg
Storm has passed but the destruction are still visible.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...