pixelsearch Posted April 19, 2022 Share Posted April 19, 2022 (edited) @Melba23 These custom scrollbars are a real pita (it's not a too rude word, is it ?) It's a good improvement now that the user can also delete rows/cols. You're right when saying : "There still seems to be a problem the first time a scrollbar is created or removed although..." . Let's hope you'll find a solution for that. Meanwhile, I'm adding a pic below (please delete it after test if you want) showing a potential issue on my PC after some changes in the coords (7 original lines of "MinRes_Size_Example.au3" are placed at the left of the vertical bar) : When running the modified script, without any add or remove, row 10 is here... but hidden by the visible horizontal scrollbar. It won't happen with $i_Aperture_Height = 199 or less (instead of 200) because a vertical scrollbar would have appeared when $i_Aperture_Height = 199 or less. If $i_Aperture_Height = 201 (or 202 etc...) then still no vertical scrollbar, but a row 10 showing more and more under the visible horizontal scrollbar. Row 10 would have shown fully with $i_Aperture_Height = 200 + 17 (i.e. 200 + $iScroll_Height) Don't know if you consider it as an issue, you'll decide. Edited April 19, 2022 by pixelsearch Link to comment Share on other sites More sharing options...
jitb Posted September 29, 2022 Share Posted September 29, 2022 Wonderful UDF how do interface with StatusBar , I got it to work but is scrolls with everything. Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted September 30, 2022 Author Moderators Share Posted September 30, 2022 jitb, I see the problem and I will look into it over the weekend. M23 taurus905 1 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 Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted September 30, 2022 Author Moderators Share Posted September 30, 2022 jitb, How about this using a child GUI to hold the status bar? expandcollapse popup#include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <GuiStatusBar.au3> #include "GUIScrollbars_Ex.au3" $hGUI = GUICreate("Status Bar & Scroll", 500, 500) GUISetBkColor(0xFF0000, $hGUI) GUISetState(@SW_SHOW) ; Create labels to show scrolling GUICtrlCreateLabel("", 0, 0, 500, 500) GUICtrlSetBkColor(-1, 0x00FF00) GUICtrlCreateLabel("", 500, 500, 500, 500) GUICtrlSetBkColor(-1, 0x00FF00) GUICtrlCreateLabel("", 0, 500, 500, 500) GUICtrlSetBkColor(-1, 0x0000FF) GUICtrlCreateLabel("", 500, 0, 500, 500) GUICtrlSetBkColor(-1, 0x0000FF) GUICtrlCreateLabel("", 990, 990, 10, 10) GUICtrlSetBkColor(-1, 0) ; Generate scrollbars _GUIScrollbars_Generate($hGUI, 1000, 1000) ; Create child to hold the status bar $hGUI_Status = GUICreate("", 500, 23, -18, 484, $WS_POPUP, BitOR($WS_EX_MDICHILD, $WS_EX_CLIENTEDGE), $hGUI) $hStatus = _GUICtrlStatusBar_Create($hGUI_Status) Local $aParts[3] = [75, 150, -1] _GUICtrlStatusBar_SetParts($hStatus, $aParts) _GUICtrlStatusBar_SetText($hStatus, "Part 0") _GUICtrlStatusBar_SetText($hStatus, "Part 1", 1) _GUICtrlStatusBar_SetText($hStatus, "Part 2", 2) GUISetState(@SW_SHOWNOACTIVATE) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd Any use? 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 Link to comment Share on other sites More sharing options...
jitb Posted October 2, 2022 Share Posted October 2, 2022 Seems to work wonderfully, as expected Link to comment Share on other sites More sharing options...
jandings Posted December 7, 2022 Share Posted December 7, 2022 Hi Melba, thanks a lot for this great UDF, been using it for some years to make larger child-windows within a main window scrollable. Good solution to put many, many GUICtrls in a (sub)-window. There is one thing that would be very nice to achieve: I now have a child-window within my main window where GUI elements are added and subtracted during run time. The display area of the y-axis (vertical scroll bar) changes during run-time depending on the number of GUICtrls in the area. Therefore, it would be elegant if I could change the existing scroll bar (once successfully added with _GUIScrollbars_Generate) to another size. I tried to re-call _GUIScrollbars_Generate with new parameters, but that does not work. Any idea if this is possible? Best, Jan Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted December 7, 2022 Author Moderators Share Posted December 7, 2022 jandings, Glad you like the UDF. The GUIScrollbars_Size_Example_2.au3 script which you find in the UDF zip file shows how to adjust the scrollbars to cope with changing values of the y-axis. See if you can amend it to match your requirements - if not please do come back with a reproducer script and we can try and find a solution. M23 jandings 1 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 Link to comment Share on other sites More sharing options...
paw Posted February 26, 2023 Share Posted February 26, 2023 (edited) Thanks for this great UDF! I have run into the issue that gui controls with y coordinates above 32767 (16 bit signed int) will not be displayed, which is unfortunately relatively easy to hit with high resolution screen sizes. Does anyone have an idea if it's possible to elegantly work around this limitation? I think it's a windows limitation. Here's an example script with the issue; expandcollapse popup#include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include "Scrollbars\GUIScrollbars_Size.au3" #include "Scrollbars\GUIScrollbars_Ex.au3" Example() Func Example() Local $hGUI = GUICreate("Example", 400, 1000) ; this works GUICtrlCreateLabel(32767, 0, 32767, 360, 50) GUICtrlSetFont(-1, 16) GUICtrlSetBkColor(-1, 0x00FFFF) GUICtrlSetColor(-1, 0xFFFFFF) ; anything above 32767 is not shown GUICtrlCreateLabel(32768, 0, 32768, 360, 100) GUICtrlSetFont(-1, 16) GUICtrlSetBkColor(-1, 0xFF0000) GUICtrlSetColor(-1, 0xFFFFFF) _GUIScrollbars_Generate($hGUI, 1000, 34000) GUISetState(@SW_SHOW, $hGUI) ; Loop until the user exits. While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop EndSwitch WEnd GUIDelete($hGUI) EndFunc ;==>Example Edited February 26, 2023 by paw Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted February 27, 2023 Author Moderators Share Posted February 27, 2023 paw, Thus is the third time in this thread that someone has "discovered" this limitation - welcome to the club! Alas I cannot suggest a way of getting round this limitation - other than your script using smaller controls to allow more of them to fit in your GUI! Alternatively, do the controls really have to be so numerous? On a serious note, perhaps the use of a tab control which will allow you to display multiple GUIs individually, each holding the maximum number of controls allowed, might be useful. Can you explain just what you are doing and why you require so many controls - that might spark the little grey cells into a different solution. 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 Link to comment Share on other sites More sharing options...
paw Posted February 28, 2023 Share Posted February 28, 2023 I'm using multiple listviews to store imagelists with several hundred 64x64 icons per imagelist. I can fit about 70 of these before running over the limit. I'm now using tab controls to split them into pages and will look into how one could implement a "infinite" scroll with these, because I dont really like using the tab controls and want to limit the amount of input required to navigate the UI Link to comment Share on other sites More sharing options...
orbs Posted November 13, 2023 Share Posted November 13, 2023 thank you @Melba23 for this fine UDF, it has been very helpful! i've stumbled upon an issue, though. it took me a while to hunt it down, but it seems there's an issue when the GUI is created with the $WS_EX_LAYOUTRTL extended style. the issue is that the scrolling does happen, but the GUI is either not updated, or updated in a disordered fashion. to reproduce, add the said style to one of the examples in the zip file of the UDF. for example, in the file GUIScrollbars_Ex_Example_3.au3 (my favorite example), change line 5 from: $hGUI_1 = GUICreate("BEFORE", 500, 400, 100, 100) to: $hGUI_1 = GUICreate("BEFORE", 500, 400, 100, 100, Default, $WS_EX_LAYOUTRTL) and see what happens. the same modification applies to any example (and to my current project, naturally) as far as i tested. please have a look and see if you can put some sense into it 🙂 best regards! Signature - my forum contributions: Spoiler UDF: LFN - support for long file names (over 260 characters) InputImpose - impose valid characters in an input control TimeConvert - convert UTC to/from local time and/or reformat the string representation AMF - accept multiple files from Windows Explorer context menu DateDuration - literal description of the difference between given dates Apps: Touch - set the "modified" timestamp of a file to current time Show For Files - tray menu to show/hide files extensions, hidden & system files, and selection checkboxes SPDiff - Single-Pane Text Diff Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted November 23, 2023 Author Moderators Share Posted November 23, 2023 orbs, I have not forgotten this - but as yet I cannot work out how to cater for RTL scrolling within the UDF. I will keep digging. M23 orbs 1 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 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