Sign in to follow this  
Followers 0
Zer0Velocity

Updating GUI

5 posts in this topic

Hello, I have a basic GUI I'm trying to update with a time stamp every sec. However, on the GUI I have a button with FileSelectFolder and when I use this button the time stamp stops on the GUI which I don't want to happen. Any suggestions on how I can make this work as I need?

Share this post


Link to post
Share on other sites



Post your code, or at least a script that reproduces what you're doing and demonstrates what happens.


If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Share this post


Link to post
Share on other sites

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 117, 84, 192, 124)
$Button1 = GUICtrlCreateButton("Browse", 24, 48, 75, 25)
$Label1 = GUICtrlCreateLabel("", 20, 16, 76, 20)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Select
  Case $nMsg = $GUI_EVENT_CLOSE
   Exit
  Case $nMsg = $Button1
  Local $var = FileOpenDialog("Choose a folder.", "", "EXE (*.exe)", 1 + 4 )
  GUICtrlSetData($Label1, $var)
EndSelect
$time = "TIME: " & @HOUR & ":" & @MIN & ":" & @SEC
GUICtrlSetData($Label1, $time)
Sleep(60)
WEnd

Share this post


Link to post
Share on other sites

#4 ·  Posted (edited)

I belive it's because the FileOpenDialog is a blocking function, which means nothing runs while it's displayed. Here's a way to make the GUI's label update even though the FileOpenDialog is blocking the rest of the script.

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Include <Timers.au3> ; New include file <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
#region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 117, 84, 192, 124)
$Button1 = GUICtrlCreateButton("Browse", 24, 48, 75, 25)
$Label1 = GUICtrlCreateLabel("", 20, 16, 76, 20)
GUISetState(@SW_SHOW)
$iTimer = _Timer_SetTimer($Form1, 250, "timer") ; Start a timer <<<<<<<<<<<<<<<<
#endregion ### END Koda GUI section ###
While 1
     $nMsg = GUIGetMsg()
     Select
          Case $nMsg = $GUI_EVENT_CLOSE
               _Timer_KillAllTimers($Form1) 
               Exit
          Case $nMsg = $Button1
               Local $var = FileOpenDialog("Choose a folder.", "", "EXE (*.exe)", 1 + 4)
               GUICtrlSetData($Label1, $var)
     EndSelect
     Sleep(60)
WEnd
Func Timer($hWnd, $Msg, $iIDTimer, $dwTime)
    #forceref $hWnd, $Msg, $iIDTimer, $dwTime
     $time = "TIME: " & @HOUR & ":" & @MIN & ":" & @SEC
     GUICtrlSetData($Label1, $time)
EndFunc   ;==>Timer

EDIT: I forgot a line in the script before the Exit, need to kill the timer before you exit the script.

Edited by BrewManNH

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Share this post


Link to post
Share on other sites

That works as I need now, thank you BrewManNH for the help. Much appreciated. :D

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0