cookiemonster Posted March 21, 2014 Posted March 21, 2014 Hi, So ive got a splash screen with a progress bar however the text wont update on it, any ideads? expandcollapse popup#include <ProgressConstants.au3> #include <ButtonConstants.au3> #include <ComboConstants.au3> #include <ButtonConstants.au3> #include <ComboConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> $Main = GUICreate("Splash Screen",600,480,-1,-1,-1) Global $splash = GUICtrlCreateButton("SPLASH IT!", 484, 197, 89, 20) GUISetState(@SW_SHOW) While (1) $nMsg=GUIGetMsg() switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $splash splash() EndSwitch Wend Func splash() $hProgressSplash = _SplashTextProgress("This is a test.") Sleep(5000) ;do some stuff Global $sText = "This is a test Update." ;do some stuff Sleep(5000) ;do some stuff Global $sText = "This is a test End." Sleep(5000) GUISetState(@SW_HIDE) EndFunc Func _SplashTextProgress($sText) ;Creates a Splash Text Screen with a progress bar. SplashOff() ;Turn previous splash text screens off. $hSplash = GUICreate("", 500, 400, -1, -1, BitOR($WS_POPUP, $WS_BORDER), BitOR($WS_EX_TOPMOST, $WS_EX_WINDOWEDGE, $WS_EX_TOOLWINDOW)) $iProgressBar = GUICtrlCreateProgress(100, 325, 305, 25, $PBS_MARQUEE) ;A marquee progress bar. GUICtrlSendMsg(-1, $PBM_SETMARQUEE, True, 80) ;last parameter is update time in ms. Sends message to run the marquee progress bar. $iMessage = GUICtrlCreateLabel($sText, 0, 100, 500, 200, $SS_CENTER) GUICtrlSetFont(-1, 24, 700, 0, "Courier New") GUISetState(@SW_SHOW) Return SetExtended($iProgressBar, $hSplash) EndFunc ;==>_SplashTextProgress
Moderators Solution Melba23 Posted March 21, 2014 Moderators Solution Posted March 21, 2014 cookiemonster,It never updates because you never ask tell it to update. Declare $iMessage as Global and then add a GUICtrlSetData($iMessage, $sText) each time you change $sText. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
cookiemonster Posted March 21, 2014 Author Posted March 21, 2014 Now that makes sense, decided to go with GUICtrlSetData($iMessage, "text goes here") each time rather than having two lines, declaring the variable then setting it. Cheers M23
JohnOne Posted March 21, 2014 Posted March 21, 2014 expandcollapse popup#include <ProgressConstants.au3> #include <ButtonConstants.au3> #include <ComboConstants.au3> #include <ButtonConstants.au3> #include <ComboConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> $Main = GUICreate("Splash Screen", 600, 480, -1, -1, -1) Global $splash = GUICtrlCreateButton("SPLASH IT!", 484, 197, 89, 20) GUISetState(@SW_SHOW) While (1) $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $splash splash() EndSwitch WEnd Func splash() $hProgressSplash = _SplashTextProgress("This is a test.") Sleep(1000) ;do some stuff Global $sText = "This is a test Update." GUICtrlSetData($hProgressSplash, $sText) ;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Sleep(1000) ;do some stuff Global $sText = "This is a test End." GUICtrlSetData($hProgressSplash, $sText) Sleep(1000) GUISetState(@SW_HIDE) EndFunc ;==>splash Func _SplashTextProgress($sText) ;Creates a Splash Text Screen with a progress bar. SplashOff() ;Turn previous splash text screens off. $hSplash = GUICreate("", 500, 400, -1, -1, BitOR($WS_POPUP, $WS_BORDER), BitOR($WS_EX_TOPMOST, $WS_EX_WINDOWEDGE, $WS_EX_TOOLWINDOW)) $iProgressBar = GUICtrlCreateProgress(100, 325, 305, 25, $PBS_MARQUEE) ;A marquee progress bar. GUICtrlSendMsg(-1, $PBM_SETMARQUEE, True, 80) ;last parameter is update time in ms. Sends message to run the marquee progress bar. $iMessage = GUICtrlCreateLabel($sText, 0, 100, 500, 200, $SS_CENTER) GUICtrlSetFont(-1, 24, 700, 0, "Courier New") GUISetState(@SW_SHOW) Return SetExtended($iProgressBar, $iMessage) ;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< EndFunc ;==>_SplashTextProgress AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans.
cookiemonster Posted March 21, 2014 Author Posted March 21, 2014 And am I doing the right thing using GUISetState(@SW_HIDE) to close off the splash screen at the end? I know it works but is this the correct way?
JohnOne Posted March 21, 2014 Posted March 21, 2014 (edited) Probably better with GuiDelete. Edited March 21, 2014 by JohnOne AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans.
cookiemonster Posted March 21, 2014 Author Posted March 21, 2014 Yeh that would make more sense cheers
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