Champak Posted May 29, 2008 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?
PsaltyDS Posted May 29, 2008 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
Champak Posted May 30, 2008 Author 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?
ProgAndy Posted May 30, 2008 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
Champak Posted May 30, 2008 Author 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.
PsaltyDS Posted May 31, 2008 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
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