newtonspls Posted January 10, 2011 Posted January 10, 2011 Hi- I'm looking for a way to have scrollbars with a statusbar (or any label) that will lock at the bottom when the form is scrolled. I don't need the form to be resized I would like it stay fixed but just scroll up and down. I found the functions for scrolling and they work great it's I just can't figure out how to lock a control on the bottom while scrolling is enabled. Here is an example of what I'm trying to do: expandcollapse popup#include <GUIConstantsEx.au3> #include <GuiStatusBar.au3> #include <StaticConstants.au3> #include <TabConstants.au3> #include <WindowsConstants.au3> #Include <GuiScrollBars.au3> #include<GuiconstantsEx.au3> #include <ScrollBarConstants.au3> Global $SCROLL_AMOUNTS[1][3] $SCROLL_AMOUNTS[0][0] = 1 #Region ### START Koda GUI section ### Form= Global $Form2 = GUICreate("Form1", 625, 450, 327, 134) Scrollbar_Create($Form2, $SB_VERT, 581); But the actual window is 700 pixels high Scrollbar_Step(20, $Form2, $SB_VERT); Scrolls per 20 pixels. If not set the default is 1 (smooth scrolling) Global $Tab1 = GUICtrlCreateTab(8, 8, 609, 553) GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT) Global $TabSheet1 = GUICtrlCreateTabItem("TabSheet1") Global $Group1 = GUICtrlCreateGroup("Group1", 32, 48, 553, 489) Global $Label1 = GUICtrlCreateLabel("Top of Screen", 56, 80, 72, 17) Global $Label2 = GUICtrlCreateLabel("Bottom of Screen", 56, 504, 86, 17) GUICtrlCreateGroup("", -99, -99, 1, 1) Global $TabSheet2 = GUICtrlCreateTabItem("TabSheet2") GUICtrlCreateTabItem("") Global $StatusBar1 = _GUICtrlStatusBar_Create($Form2) Global $StatusBar1_PartsWidth[1] = [-1] _GUICtrlStatusBar_SetParts($StatusBar1, $StatusBar1_PartsWidth) _GUICtrlStatusBar_SetText($StatusBar1, "Testing Statusbar Scrolling", 0) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### While 1 $iScrollPos = Scrollbar_GetPos($Form2, $SB_VERT) $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch ConsoleWrite($iScrollPos&@CRLF) WEnd
Moderators Melba23 Posted January 10, 2011 Moderators Posted January 10, 2011 newtonspls,Welcome to the AutoIt forum. I get the following errors when I try to run the code you posted:M:\Program\Au3 Scripts\fred4.au3(13,43) : ERROR: Scrollbar_Create(): undefined function. Scrollbar_Create($Form2, $SB_VERT, 581) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ M:\Program\Au3 Scripts\fred4.au3(14,40) : ERROR: Scrollbar_Step(): undefined function. Scrollbar_Step(20, $Form2, $SB_VERT) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ M:\Program\Au3 Scripts\fred4.au3(32,52) : ERROR: Scrollbar_GetPos(): undefined function. $iScrollPos = Scrollbar_GetPos($Form2, $SB_VERT) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^Where do you get the code for these 3 functions? Are they functions you have created? Might I suggest you look at the Scrollbars UDF in my sig? It offers a very easy way to use scrollbars in a GUI. 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
newtonspls Posted January 10, 2011 Author Posted January 10, 2011 Sorry, here are the functions I used for the scrollbars. I got them from a post on this forum. expandcollapse popupfunc Scrollbar_Create($hWnd, $iBar, $iMax) Local $Size = WinGetClientSize($hWnd) If $iBar = $SB_HORZ Then $Size = $Size[0] ElseIf $iBar = $SB_VERT Then $Size = $Size[1] Else Return 0 EndIf ReDim $SCROLL_AMOUNTS[UBound($SCROLL_AMOUNTS)+1][3] $SCROLL_AMOUNTS[UBound($SCROLL_AMOUNTS)-1][0] = $hWnd $SCROLL_AMOUNTS[UBound($SCROLL_AMOUNTS)-1][1] = $iBar $SCROLL_AMOUNTS[UBound($SCROLL_AMOUNTS)-1][2] = $SCROLL_AMOUNTS[0][0] _GUIScrollBars_EnableScrollBar($hWnd, $iBar) _GUIScrollBars_SetScrollRange($hWnd, $iBar, 0,$iMax-1) _GUIScrollBars_SetScrollInfoPage($hWnd, $iBar, $Size) GUIRegisterMsg($WM_VSCROLL, "WM_VSCROLL") GUIRegisterMsg($WM_HSCROLL, "WM_HSCROLL") Return $iMax EndFunc Func Scrollbar_GetPos($hWnd, $iBar) Local $tSCROLLINFO = _GUIScrollBars_GetScrollInfoEx($hWnd, $iBar) Return DllStructGetData($tSCROLLINFO, "nPos") EndFunc Func Scrollbar_Scroll($hWnd, $iBar, $iPos) Local $tSCROLLINFO = _GUIScrollBars_GetScrollInfoEx($hWnd, $iBar) $iCurrentPos = DllStructGetData($tSCROLLINFO, "nPos") DllStructSetData($tSCROLLINFO, "nPos", $iPos) DllStructSetData($tSCROLLINFO, "fMask", $SIF_POS) _GUIScrollBars_SetScrollInfo($hWnd, $iBar, $tSCROLLINFO) If $iBar = $SB_VERT Then $iRound = 0 for $i = 1 to UBound($SCROLL_AMOUNTS)-1 If $SCROLL_AMOUNTS[$i][0] = $hWnd And $SCROLL_AMOUNTS[$i][1] = $SB_VERT Then $iRound = $SCROLL_AMOUNTS[$i][2] EndIf Next If Not $iRound Then Return 0 _GUIScrollBars_ScrollWindow($hWnd, 0, Round(($iCurrentPos-$iPos)/$iRound)*$iRound) ElseIf $iBar = $SB_HORZ Then $iRound = 0 for $i = 1 to UBound($SCROLL_AMOUNTS)-1 If $SCROLL_AMOUNTS[$i][0] = $hWnd And $SCROLL_AMOUNTS[$i][1] = $SB_HORZ Then $iRound = $SCROLL_AMOUNTS[$i][2] EndIf Next If Not $iRound Then Return 0 _GUIScrollBars_ScrollWindow($hWnd, Round(($iCurrentPos-$iPos)/$iRound)*$iRound, 0) Else Return 0 EndIf Return 1 EndFunc Func Scrollbar_Step($iStep, $hWnd=0, $iBar=0) If not $hWnd or Not $iBar Then $SCROLL_AMOUNTS[0][0] = $iStep Return 1 EndIf $iID = 0 for $i = 1 to UBound($SCROLL_AMOUNTS)-1 If $SCROLL_AMOUNTS[$i][0] = $hWnd And $SCROLL_AMOUNTS[$i][1] = $iBar Then $iID = $i ExitLoop EndIf Next If Not $iID Then Return 0 $SCROLL_AMOUNTS[$iID][2] = $iStep Return 1 EndFunc Func WM_VSCROLL($hWnd, $Msg, $wParam, $lParam) #forceref $Msg, $wParam, $lParam Local $nScrollCode = BitAND($wParam, 0x0000FFFF) Local $index = -1, $yChar, $yPos Local $Min, $Max, $Page, $Pos, $TrackPos ; Get all the vertial scroll bar information Local $tSCROLLINFO = _GUIScrollBars_GetScrollInfoEx($hWnd, $SB_VERT) $Min = DllStructGetData($tSCROLLINFO, "nMin") $Max = DllStructGetData($tSCROLLINFO, "nMax") $Page = DllStructGetData($tSCROLLINFO, "nPage") ; Save the position for comparison later on $yPos = DllStructGetData($tSCROLLINFO, "nPos") $Pos = $yPos $TrackPos = DllStructGetData($tSCROLLINFO, "nTrackPos") $iRound = 0 for $i = 1 to UBound($SCROLL_AMOUNTS)-1 If $SCROLL_AMOUNTS[$i][0] = $hWnd And $SCROLL_AMOUNTS[$i][1] = $SB_VERT Then $iRound = $SCROLL_AMOUNTS[$i][2] EndIf Next if Not $iRound Then Return $GUI_RUNDEFMSG Switch $nScrollCode Case $SB_TOP ; user clicked the HOME keyboard key DllStructSetData($tSCROLLINFO, "nPos", $Min) Case $SB_BOTTOM ; user clicked the END keyboard key DllStructSetData($tSCROLLINFO, "nPos", $Max) Case $SB_LINEUP ; user clicked the top arrow DllStructSetData($tSCROLLINFO, "nPos", $Pos - $iRound) Case $SB_LINEDOWN ; user clicked the bottom arrow DllStructSetData($tSCROLLINFO, "nPos", $Pos + $iRound) Case $SB_PAGEUP ; user clicked the scroll bar shaft above the scroll box DllStructSetData($tSCROLLINFO, "nPos", $Pos - $Page) Case $SB_PAGEDOWN ; user clicked the scroll bar shaft below the scroll box DllStructSetData($tSCROLLINFO, "nPos", $Pos + $Page) Case $SB_THUMBTRACK ; user dragged the scroll box DllStructSetData($tSCROLLINFO, "nPos", Round($TrackPos/$iRound)*$iRound) EndSwitch ;~ // Set the position and then retrieve it. Due to adjustments ;~ // by Windows it may not be the same as the value set. DllStructSetData($tSCROLLINFO, "fMask", $SIF_POS) _GUIScrollBars_SetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO) _GUIScrollBars_GetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO) ;// If the position has changed, scroll the window and update it $Pos = DllStructGetData($tSCROLLINFO, "nPos") If ($Pos <> $yPos) Then _GUIScrollBars_ScrollWindow($hWnd, 0, $yPos - $Pos) EndIf Return $GUI_RUNDEFMSG EndFunc ;==>WM_VSCROLL Func WM_HSCROLL($hWnd, $Msg, $wParam, $lParam) #forceref $Msg, $wParam, $lParam Local $nScrollCode = BitAND($wParam, 0x0000FFFF) Local $index = -1, $yChar, $yPos Local $Min, $Max, $Page, $Pos, $TrackPos ; Get all the vertial scroll bar information Local $tSCROLLINFO = _GUIScrollBars_GetScrollInfoEx($hWnd, $SB_HORZ) $Min = DllStructGetData($tSCROLLINFO, "nMin") $Max = DllStructGetData($tSCROLLINFO, "nMax") $Page = DllStructGetData($tSCROLLINFO, "nPage") ; Save the position for comparison later on $yPos = DllStructGetData($tSCROLLINFO, "nPos") $Pos = $yPos $TrackPos = DllStructGetData($tSCROLLINFO, "nTrackPos") $iRound = 0 for $i = 1 to UBound($SCROLL_AMOUNTS)-1 If $SCROLL_AMOUNTS[$i][0] = $hWnd And $SCROLL_AMOUNTS[$i][1] = $SB_HORZ Then $iRound = $SCROLL_AMOUNTS[$i][2] EndIf Next if Not $iRound Then Return $GUI_RUNDEFMSG Switch $nScrollCode Case $SB_TOP ; user clicked the HOME keyboard key DllStructSetData($tSCROLLINFO, "nPos", $Min) Case $SB_BOTTOM ; user clicked the END keyboard key DllStructSetData($tSCROLLINFO, "nPos", $Max) Case $SB_LINEUP ; user clicked the top arrow DllStructSetData($tSCROLLINFO, "nPos", $Pos - $iRound) Case $SB_LINEDOWN ; user clicked the bottom arrow DllStructSetData($tSCROLLINFO, "nPos", $Pos + $iRound) Case $SB_PAGEUP ; user clicked the scroll bar shaft above the scroll box DllStructSetData($tSCROLLINFO, "nPos", $Pos - $Page) Case $SB_PAGEDOWN ; user clicked the scroll bar shaft below the scroll box DllStructSetData($tSCROLLINFO, "nPos", $Pos + $Page) Case $SB_THUMBTRACK ; user dragged the scroll box DllStructSetData($tSCROLLINFO, "nPos", Round($TrackPos/$iRound)*$iRound) EndSwitch ;~ // Set the position and then retrieve it. Due to adjustments ;~ // by Windows it may not be the same as the value set. DllStructSetData($tSCROLLINFO, "fMask", $SIF_POS) _GUIScrollBars_SetScrollInfo($hWnd, $SB_HORZ, $tSCROLLINFO) _GUIScrollBars_GetScrollInfo($hWnd, $SB_HORZ, $tSCROLLINFO) ;// If the position has changed, scroll the window and update it $Pos = DllStructGetData($tSCROLLINFO, "nPos") If ($Pos <> $yPos) Then _GUIScrollBars_ScrollWindow($hWnd, $yPos - $Pos, 0) EndIf Return $GUI_RUNDEFMSG EndFunc ;==>WM_HSCROLL
Moderators Melba23 Posted January 11, 2011 Moderators Posted January 11, 2011 newtonspls,The problem arises because the whole of the client area of the GUI is scrolled and the statusbar forms part of that client area. So we will have to create a child GUI to hold the statusbar, which means we will have to make sure that it follows the main GUI around. Fortunately this is not difficult - if you know how! Here is my version of your script with such a child GUI. I have also used my GUIScrollbars_Ex UDF to generate the scrollbars to show you how easy it is to do this when you use the UDF - which you can find in in my sig: expandcollapse popup#include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <GuiStatusBar.au3> #include <GuiScrollbars_Ex.au3> ; Create main GUI $hGUI = GUICreate("Test", 625, 450, 327, 134) Global $Tab1 = GUICtrlCreateTab(8, 8, 600, 553) GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT) Global $TabSheet1 = GUICtrlCreateTabItem("TabSheet1") Global $Group1 = GUICtrlCreateGroup("Group1", 32, 48, 553, 489) Global $Label1 = GUICtrlCreateLabel("Top of Screen", 56, 80, 72, 17) Global $Label2 = GUICtrlCreateLabel("Bottom of Screen", 56, 504, 86, 17) GUICtrlCreateGroup("", -99, -99, 1, 1) Global $TabSheet2 = GUICtrlCreateTabItem("TabSheet2") GUICtrlCreateTabItem("") ; Generate scrollbars _GUIScrollbars_Generate ($hGUI, 0, 553) ; Yes, it is this easy with my UDF! GUISetState() ; Get position of main GUI Global $aPos = WinGetPos($hGUI) ; Create a child GUI for the statusbar - we need to deduct 2 from the width to cater for the child GUI border $hBar_GUI = GUICreate("Bar", $aPos[2] - 2, 19, $aPos[0], $aPos[1] + $aPos[3], BitOR($WS_POPUP, $WS_BORDER), -1, $hGUI) Global $StatusBar1 = _GUICtrlStatusBar_Create($hBar_GUI) Global $StatusBar1_PartsWidth[1] = [-1] _GUICtrlStatusBar_SetParts($StatusBar1, $StatusBar1_PartsWidth) _GUICtrlStatusBar_SetText($StatusBar1, "Testing Statusbar Scrolling", 0) GUISetState(@SW_SHOW) ; Intercept the main GUI moving and move the statusbar GUI with it GUIRegisterMsg($WM_MOVE, "GUI_Glue") While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd Func GUI_Glue($hWnd, $iMsg, $wParam, $lParam) ; Ignore the unused parameters #forceref $iMsg, $wParam, $lParam ; Check which GUI sent the MOVE message Switch $hWnd Case $hGUI ; It was the main GUI so adjust the position of the statusbar GUI Local $aPos = WinGetPos($hGUI) WinMove($hBar_GUI, "", $aPos[0], $aPos[1] + $aPos[3]) EndSwitch EndFuncI have commented liberally, so I hope you can follow what is going on. If you are not familiar with GUIRegisterMsg, I recommend the GUIRegisterMsg tutorial in the Wiki. Please do ask if you have any questions - we are all here to learn. 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
newtonspls Posted January 11, 2011 Author Posted January 11, 2011 M23- Thanks for your help on this. I definitely like your UDF for Scrollbars And very simple to use I understand better about having a child window "glued" to bottom of the main form but is there any way to have the child window look as if it’s part of the main form? Also do you know if there is a way to have a tabsheet scroll only? Thanks again for your help.
Moderators Melba23 Posted January 11, 2011 Moderators Posted January 11, 2011 newtonspls, is there any way to have the child window look as if it’s part of the main form?Reverse the process and make a child GUI within the main GUI (with its statusbar) to hold the scrollable area and tabs: expandcollapse popup#include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <GuiStatusBar.au3> #include <GuiScrollbars_Ex.au3> ; Create main GUI $hGUI = GUICreate("Test", 625, 450, 327, 134) Global $StatusBar1 = _GUICtrlStatusBar_Create($hGUI) Global $StatusBar1_PartsWidth[1] = [-1] _GUICtrlStatusBar_SetParts($StatusBar1, $StatusBar1_PartsWidth) _GUICtrlStatusBar_SetText($StatusBar1, "Testing Statusbar Scrolling", 0) GUISetState() ; Create a child GUI for the scrollbars $hBar_GUI = GUICreate("Bar", 625, 425, 0, 0, $WS_POPUP, $WS_EX_MDICHILD, $hGUI) Global $Tab1 = GUICtrlCreateTab(8, 8, 600, 553) GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT) Global $TabSheet1 = GUICtrlCreateTabItem("TabSheet1") Global $Group1 = GUICtrlCreateGroup("Group1", 32, 48, 553, 489) Global $Label1 = GUICtrlCreateLabel("Top of Screen", 56, 80, 72, 17) Global $Label2 = GUICtrlCreateLabel("Bottom of Screen", 56, 504, 86, 17) GUICtrlCreateGroup("", -99, -99, 1, 1) Global $TabSheet2 = GUICtrlCreateTabItem("TabSheet2") GUICtrlCreateTabItem("") GUISetState() ; Generate scrollbars _GUIScrollbars_Generate ($hBar_GUI, 0, 553) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd Better? is a way to have a tabsheet scroll only?Do you mean that the scrollbars appear on just the one tabsheet? If so, then we can do it like this: expandcollapse popup#include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <GuiStatusBar.au3> #include <GuiScrollbars_Ex.au3> ; Create main GUI with tabsheets and status bar $hGUI = GUICreate("Test", 620, 450, 327, 134) Global $hTab = GUICtrlCreateTab(10, 10, 600, 410) GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT) Global $TabSheet1 = GUICtrlCreateTabItem("TabSheet1") Global $TabSheet2 = GUICtrlCreateTabItem("TabSheet2") GUICtrlCreateTabItem("") Global $StatusBar1 = _GUICtrlStatusBar_Create($hGUI) Global $StatusBar1_PartsWidth[1] = [-1] _GUICtrlStatusBar_SetParts($StatusBar1, $StatusBar1_PartsWidth) _GUICtrlStatusBar_SetText($StatusBar1, "Testing Statusbar Scrolling", 0) GUISetState() ; Create a child GUI for the scrollbars which fits inside the tabsheets $hBar_GUI = GUICreate("Bar", 580, 350, 20, 50, $WS_POPUP, $WS_EX_MDICHILD, $hGUI) Global $Group1 = GUICtrlCreateGroup("Group1", 10, 10, 560, 560) Global $Label1 = GUICtrlCreateLabel("Top of Screen", 20, 30, 100, 20) Global $Label2 = GUICtrlCreateLabel("Bottom of Screen", 20, 540, 100, 20) GUICtrlCreateGroup("", -99, -99, 1, 1) GUISetState() ; Generate scrollbars on the child _GUIScrollbars_Generate ($hBar_GUI, 0, 560) $iLastTab = 0 While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit Case $hTab ; Check which Tab is active $iCurrTab = GUICtrlRead($hTab) ; If the Tab has changed If $iCurrTab <> $iLastTab Then ; Show/Hide the scrollable GUI as required Switch $iCurrTab Case 0 WinSetState($hBar_GUI, "", @SW_SHOW) Case 1 WinSetState($hBar_GUI, "", @SW_HIDE) EndSwitch ; Store the value for future comparisons $iLastTab = $iCurrTab EndIf EndSwitch WEnd You can see that the tab code in the GUIGetMsg loop gets a bit complicated. You might like to read the Tabs tutorial in the Wiki to see why. 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
newtonspls Posted January 11, 2011 Author Posted January 11, 2011 M23- Perfect Both examples are exactly what I need to do. I will do additional research on how both examples work so I'll have a better understanding for the future. Thanks again.
Moderators Melba23 Posted January 11, 2011 Moderators Posted January 11, 2011 newtonspls, My pleasure. 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
Moderators Melba23 Posted January 11, 2011 Moderators Posted January 11, 2011 newtonspls, You get a better response time on switching tabs if you do this: ; Show/Hide the scrollable GUI as required Switch $iCurrTab Case 0 GUISetState(@SW_SHOW, $hBar_GUI) Case 1 GUISetState(@SW_HIDE, $hBar_GUI) EndSwitch I forgot we were using items created by the native functions rather than a UDF. 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
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