yucatan Posted January 17, 2011 Share Posted January 17, 2011 Hello guys i have build a very simple countdown. But there are some things that i cant get done. i would like that it displays 45 minits instead of 4 hours. and that it takes 15 minits to count down from 45 to zero. the first 5 minits count normaly. then 5 minits faster then default. en the last 5 minits count alot faster. How should i build this somebody some advice? #include <GUIConstantsEx.au3> #include <Date.au3> Opt('MustDeclareVars', 1) global $widthCell, $msg, $iOldOpt, $input GUICreate("My GUI") ; will create a dialog box that when displayed is centered $input = GUICtrlCreateLabel("", 150, 150,400,400) GUICtrlSetFont($input, 20, 400) GUISetState() ; will display an empty dialog box Local $iHours, $iMins, $iSecs, $Timer = TimerInit() Local $4Hours = (4 * 60 * 60 * 1000) Local $Time, $oldTime Do $msg = GUIGetMsg() _TicksToTime($4Hours - TimerDiff($Timer), $iHours, $iMins, $iSecs) $Time = StringFormat("%02i:%02i:%02i", $iHours, $iMins, $iSecs) If $Time <> $oldTime Then GUICtrlSetData($input, $time) $oldTime = $Time Sleep(10) Until $msg = $GUI_EVENT_CLOSE Link to comment Share on other sites More sharing options...
UEZ Posted January 17, 2011 Share Posted January 17, 2011 (edited) Here a possibility: #include <GUIConstantsEx.au3> #include <Date.au3> Opt('MustDeclareVars', 1) global $widthCell, $msg, $iOldOpt, $input Global $hGUI = GUICreate("My GUI") ; will create a dialog box that when displayed is centered $input = GUICtrlCreateLabel("", 150, 150,400,400) GUICtrlSetFont($input, 20, 400) GUISetState() ; will display an empty dialog box Global $countdown = 45 ;45 minutes Global $seconds = $countdown * 60 Countdown() AdlibRegister("Countdown", 1000) Do $msg = GUIGetMsg() Sleep(10) Until $msg = $GUI_EVENT_CLOSE AdlibUnRegister("Countdown") GUIDelete($hGUI) Exit Func Countdown() Local $sec, $min, $hr $sec = Mod($seconds, 60) $min = Mod($seconds / 60, 60) $hr = Floor($seconds / 60 ^ 2) GUICtrlSetData($input, StringFormat("%02i:%02i:%02i", $hr, $min, $sec)) $seconds -= 1 If $seconds <= 0 Then AdlibUnRegister("Countdown") EndFunc Br, UEZ Edited January 17, 2011 by UEZ Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ Link to comment Share on other sites More sharing options...
yucatan Posted January 17, 2011 Author Share Posted January 17, 2011 Here a possibility: #include <GUIConstantsEx.au3> #include <Date.au3> Opt('MustDeclareVars', 1) global $widthCell, $msg, $iOldOpt, $input Global $hGUI = GUICreate("My GUI") ; will create a dialog box that when displayed is centered $input = GUICtrlCreateLabel("", 150, 150,400,400) GUICtrlSetFont($input, 20, 400) GUISetState() ; will display an empty dialog box Global $countdown = 45 ;45 minutes Global $seconds = $countdown * 60 Countdown() AdlibRegister("Countdown", 1000) Do $msg = GUIGetMsg() Sleep(10) Until $msg = $GUI_EVENT_CLOSE AdlibUnRegister("Countdown") GUIDelete($hGUI) Exit Func Countdown() Local $sec, $min, $hr $sec = Mod($seconds, 60) $min = Mod($seconds / 60, 60) $hr = Floor($seconds / 60 ^ 2) GUICtrlSetData($input, StringFormat("%02i:%02i:%02i", $hr, $min, $sec)) $seconds -= 1 If $seconds <= 0 Then AdlibUnRegister("Countdown") EndFunc Br, UEZ nice Code! but the countdown doesnt speed up? how should i do that? Greetz Yucatan Link to comment Share on other sites More sharing options...
guinness Posted January 17, 2011 Share Posted January 17, 2011 Read about AdlibRegister() >> AdlibRegister("Countdown", 250) UDF List: _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
UEZ Posted January 17, 2011 Share Posted January 17, 2011 (edited) Sorry, I have not understood you correctly. Try this: #include <GUIConstantsEx.au3> #include <Date.au3> Opt('MustDeclareVars', 1) global $widthCell, $msg, $iOldOpt, $input Global $hGUI = GUICreate("My GUI") ; will create a dialog box that when displayed is centered $input = GUICtrlCreateLabel("", 150, 150,400,400) GUICtrlSetFont($input, 20, 400) GUISetState() ; will display an empty dialog box Global $countdown = 16 ;45 minutes Global $seconds = $countdown * 60 Countdown() AdlibRegister("Countdown", 1000) Do $msg = GUIGetMsg() Sleep(10) Until $msg = $GUI_EVENT_CLOSE AdlibUnRegister("Countdown") GUIDelete($hGUI) Exit Func Countdown() Local $sec, $min, $hr $sec = Mod($seconds, 60) $min = Mod($seconds / 60, 60) $hr = Floor($seconds / 60 ^ 2) GUICtrlSetData($input, StringFormat("%02i:%02i:%02i", $hr, $min, $sec)) $seconds -= 1 If $seconds <= 0 Then AdlibUnRegister("Countdown") If $seconds <= 900 Then AdlibRegister("Countdown", 500) If $seconds <= 600 Then AdlibRegister("Countdown", 250) If $seconds <= 300 Then AdlibRegister("Countdown", 125) EndFunc Br, UEZ Edited January 17, 2011 by UEZ Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ Link to comment Share on other sites More sharing options...
yucatan Posted January 19, 2011 Author Share Posted January 19, 2011 (edited) Haha thanks alot this is much beter but its still not exacly what i need now it shows 16 minits. and it takes 45 minits before its done. what it need to be reversed. so it shows 45 minits. but it takes 15 minits when he reaches 0 i understand how the If $seconds <= 2400 Then AdlibRegister("Countdown", 250) works but how i can calculate how fast i need to let him go ? Edited January 19, 2011 by yucatan Link to comment Share on other sites More sharing options...
yucatan Posted January 20, 2011 Author Share Posted January 20, 2011 somebody? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now