Champak Posted May 29, 2008 Share Posted May 29, 2008 I have multiple "pages" in my single GUI window. Based on a specific button being clicked, certain things show. All elements are contained in an array. So when the elements are set to show in one of the "for" loops based on a button being pressed, although it happens relatively quickly, I don't really like how elements pop up one at a time like a fast moving wave; I would rather everything appear and disappear instantly/simultaneously. Is there anyway to accomplish this without putting things on different GUIs and show/hide the entire GUIs? Link to comment Share on other sites More sharing options...
PsaltyDS Posted May 29, 2008 Share Posted May 29, 2008 I have multiple "pages" in my single GUI window. Based on a specific button being clicked, certain things show. All elements are contained in an array. So when the elements are set to show in one of the "for" loops based on a button being pressed, although it happens relatively quickly, I don't really like how elements pop up one at a time like a fast moving wave; I would rather everything appear and disappear instantly/simultaneously. Is there anyway to accomplish this without putting things on different GUIs and show/hide the entire GUIs?Instead of updating the current GUI, create a new one each time. The time between GuiDelete() for the first and GuiSetState() for the second is all the delay you will have have. It's not like new GUIs have a marginal cost.Alternatively, set the state to @SW_HIDE for a duration of the update, then go back to @SW_SHOW, if you think that will be less annoying. Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law Link to comment Share on other sites More sharing options...
Champak Posted May 30, 2008 Author Share Posted May 30, 2008 Alternatively, set the state to @SW_HIDE for a duration of the update, then go back to @SW_SHOW, if you think that will be less annoying.What do you mean by this? Link to comment Share on other sites More sharing options...
ProgAndy Posted May 30, 2008 Share Posted May 30, 2008 You Coulld use GUISetState(@SW_LOCK) And GUISetState(@SW_UNLOCK) To lock painting before the update and release it afterwards *GERMAN* [note: you are not allowed to remove author / modified info from my UDFs]My UDFs:[_SetImageBinaryToCtrl] [_TaskDialog] [AutoItObject] [Animated GIF (GDI+)] [ClipPut for Image] [FreeImage] [GDI32 UDFs] [GDIPlus Progressbar] [Hotkey-Selector] [Multiline Inputbox] [MySQL without ODBC] [RichEdit UDFs] [SpeechAPI Example] [WinHTTP]UDFs included in AutoIt: FTP_Ex (as FTPEx), _WinAPI_SetLayeredWindowAttributes Link to comment Share on other sites More sharing options...
Champak Posted May 30, 2008 Author Share Posted May 30, 2008 That's perfect, I never noticed that one before. A note, I don't know if this is a known bug, I'll post it in the trac if not, but if you have autoit window info running, inputs will show through disabled before being unlocked. Note: my gui is covered with a disabled image skin. Link to comment Share on other sites More sharing options...
PsaltyDS Posted May 31, 2008 Share Posted May 31, 2008 What do you mean by this?I like ProgAndy's idea with @SW_LOCK/@SW_UNLOCK better. Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law 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