aphesia Posted February 24, 2010 Posted February 24, 2010 (edited) Hey guys, i´m currently working at my final project for school. We measure different stuff and i want to have it as diagrams on the pc so i thought about doing it with autoit. E.g. a diagram for the 0-100 km/h speed: There is an .ini file which will look like this: C:/project/speed.ini [speed] 0.00000=0 0.000001=0 . .. ... 1.0 = 5 So it is like: time=speed first second = 5 km/h third second = 15 km/h We have around 80.000 measuring each second Now i want to draw a diagram with all this measure points (80.000 a second and the whole measuering will take around 30seconds). I dont have ANY idea right now on how to draw a diagram with outit. Hope someone can help me Until now i finished the gui with the different buttons & inputs and started with the communaction between the autoit script and the microchip. Thanks Edited February 24, 2010 by aphesia
Moderators Melba23 Posted February 24, 2010 Moderators Posted February 24, 2010 aphesia,Try searching for "graph" - there have been a number of examples posted on teh forum.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
aphesia Posted February 24, 2010 Author Posted February 24, 2010 (edited) oh thanks.. i searched for diagram but couldnt find anything. i found this nice thing: http://www.autoitscript.com/forum/index.php?showtopic=104399&st=0&p=738474&#entry738474 the thing i dont get is: i rly have ALOT of measuring points.. wo will it draw slowly or work fine? the author says it draws in real time.. but i wonder if so many measure points would crash the program. also i get how to make the graph (e.g. setting the axes) but how to i tell the script my measure points? thanks @edit: okay i understand how it draws its done with the "for-loop".. but not sure yet how i can draw with my measure points now. Edited February 24, 2010 by aphesia
Moderators Melba23 Posted February 24, 2010 Moderators Posted February 24, 2010 (edited) aphesia,i´m currently working at my final project for schoolI have never used that UDF so I have no idea how it works either. It is your project - so why not try to do some work on the code yourself first before asking here! M23Edit: The UDF is not at all difficult to use. However, you do have some major problems to overcome before you can use it in your project:1. You cannot use an Ini file to store the data. Ini files are limited to 32k (by Windows, not AutoIt) and that is far too small for the amount of data you are looking to store - assume 10 chars per reading at 80000/sec over 30 secs ~= 24M. I would think that a 2-D array would be a better bet (although with a limit of 16M elements even that might be a bit tight). However, given the resolution of the graph, I would suggest that 80000 readings/sec is not a sensible value - so start thinking about how you might sample at a lower rate.2. GDI is not lightning fast under AutoIt. The speed of drawing the graph might well limit you to about 200 readings/sec to get anything like a real time representation - another reason for for fewer data points.Come back when you have some ideas of your own. I am happy to help - but it is your project!M23 Edited February 24, 2010 by Melba23 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
aphesia Posted February 24, 2010 Author Posted February 24, 2010 ye i´m already working on it and i know how it works already. just too bad it draws rly slow. but maybe there is a way to make it faster or try some other udf. i will better ask the guy who made the udf next time thanks
aphesia Posted March 2, 2010 Author Posted March 2, 2010 ye we will do smth different already. our diagram within the autoit program will have 5 points per seconds. so that should work fine.
Moderators Melba23 Posted March 2, 2010 Moderators Posted March 2, 2010 aphesia, 5/sec sounds a lot more realistic. How is the project going? 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
aphesia Posted March 2, 2010 Author Posted March 2, 2010 got alot of new ideas for the program but also some problems, one is about the diagram: First i´m not sure on how to draw the diagram with my results (stored in a .ini like second=speed) second i would need the diagram to be clickable and see the exact values when clicking on the line. E.g. i click on the line at second 2 and want to see the exact speed.
Paulie Posted March 2, 2010 Posted March 2, 2010 what compels you to want to use autoit to draw this diagram. Having done no research or trials regarding how possible/impossible/functional it is or isn't, it seems that for a graph with several thousand coordinates there are a wide variety of other programs/systems you could use to graph the data more thoroughly and pretty. For instance, Wolfram Mathematica. Just thinking...
Moderators Melba23 Posted March 2, 2010 Moderators Posted March 2, 2010 aphesia, First i´m not sure on how to draw the diagram with my results (stored in a .ini like second=speed) second i would need the diagram to be clickable and see the exact values when clicking on the line. E.g. i click on the line at second 2 and want to see the exact speed.This might give some ideas on how to do those 2 things: expandcollapse popup#include <GUIConstantsEx.au3> #include "GraphGDIPlus.au3" $sIniFile = @ScriptDir & "\Data.ini" ; create ini For $i = 0 To 150 IniWrite($sIniFile, "Data", $i, 100 * $i / 150) Next MsgBox(0, "Pause", "Go and look at the ini file") $GUI = GUICreate("", 600, 600) GUISetState() ;----- Create Graph area ----- $Graph = _GraphGDIPlus_Create($GUI, 40, 30, 530, 520, 0xFF000000, 0xFF88B3DD) ;----- Set X axis range from -5 to 5 ----- _GraphGDIPlus_Set_RangeX($Graph, 0, 30, 10, 1, 1) ;----- Set Y axis range from -5 to 5 ----- _GraphGDIPlus_Set_RangeY($Graph, 0, 100, 10, 1, 1) _GraphGDIPlus_Set_GridX($Graph, 1, 0xFF6993BE) _GraphGDIPlus_Set_GridY($Graph, 2, 0xFF6993BE) ;----- Draw the graph ----- _Draw_Graph() MsgBox(0, "Over", "Graph Drawn!") While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE _Exit() Case $GUI_EVENT_PRIMARYDOWN ; Get cursro position $aPos = GUIGetCursorInfo() ; Transform x-coordinate into value on time axis $iTime = Int(150 * ($aPos[0] - 40) / 530) ; Transform y-coordinate into value on speed axis $nCursorSpeedValue = 100 * (520 - $aPos[1] + 30) / 520 ; Read actual speed at that point $nSpeed = IniRead($sIniFile, "Data", $iTime, "Error") ; See if cursor is close to actual line If Abs($nSpeed - $nCursorSpeedValue) < 1 Then ; Only display time/speed data if cursor is close to line MsgBox(0, "Instant values", "Speed = " & $nSpeed & @CRLF & "Time: " & $iTime / 5) EndIf EndSwitch WEnd Func _Draw_Graph() ;----- Set line color and size ----- _GraphGDIPlus_Set_PenColor($Graph, 0xFF325D87) _GraphGDIPlus_Set_PenSize($Graph, 2) ;----- draw lines ----- $First = True For $i = 0 To 150 ; keep everything in integers - we have 30 secs at 5/sec = 150 $vSpeed = IniRead($sIniFile, "Data", $i, "Error") If $vSpeed <> "Error" Then _GraphGDIPlus_Plot_Line($Graph, $i / 5, $vSpeed) _GraphGDIPlus_Refresh($Graph) EndIf Next EndFunc ;==>_Draw_Graph Func _Exit() ;----- close down GDI+ and clear graphic ----- _GraphGDIPlus_Delete($GUI, $Graph) Exit EndFunc ;==>_Exit Let me know if you need any more help. 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
aphesia Posted March 2, 2010 Author Posted March 2, 2010 well then i would need wolfram mathematica installed on every pc i want to use this program. And the plan is to simple plug in the usb stick, copy the .exe, plugin the device (our project which will give us the results for the diagram) via usb. Run the .exe and everything works. A graph written in some other language would be fine too as i dont have the diagram inside a guy. The diagram will be shown in a new window after pressing a button.
jchd Posted March 2, 2010 Posted March 2, 2010 @Paulie, Indeed Mathematica is a full-fledge tool, but it does a bit too much for what the OP needs, and isn't free (even far from free!). This wonderful site allows debugging and testing regular expressions (many flavors available). An absolute must have in your bookmarks.Another excellent RegExp tutorial. Don't forget downloading your copy of up-to-date pcretest.exe and pcregrep.exe hereRegExp tutorial: enough to get startedPCRE v8.33 regexp documentation latest available release and currently implemented in AutoIt beta. SQLitespeed is another feature-rich premier SQLite manager (includes import/export). Well worth a try.SQLite Expert (freeware Personal Edition or payware Pro version) is a very useful SQLite database manager.An excellent eBook covering almost every aspect of SQLite3: a must-read for anyone doing serious work.SQL tutorial (covers "generic" SQL, but most of it applies to SQLite as well)A work-in-progress SQLite3 tutorial. Don't miss other LxyzTHW pages!SQLite official website with full documentation (may be newer than the SQLite library that comes standard with AutoIt)
andybiochem Posted March 3, 2010 Posted March 3, 2010 (edited) Hi,In a rush here, so not had time to go over this thread properly yet.I understand you're trying to speed up my graph udf? (i guess it must be quite slow for tens of thousands of points!)If you're using a small graph size (e.g. 100x30), then chances are you'll be writing to the same pixel hundreds of times which will waste time. To speed this up, try checking sequential plot values before they are drawn, if they are equal then the same pixel will be drawn, so skip to next point. There's also an internal function in the udf (at the bottom: _GraphGDIPlus_Reference_Pixel) which will tell you exactly which pixel will be written to for a given x,y coordinate. Sorry, not got time to write an example now, might get chance tomorrow. Edited March 3, 2010 by andybiochem - Table UDF - create simple data tables - Line Graph UDF GDI+ - quickly create simple line graphs with x and y axes (uses GDI+ with double buffer) - Line Graph UDF - quickly create simple line graphs with x and y axes (uses AI native graphic control) - Barcode Generator Code 128 B C - Create the 1/0 code for barcodes. - WebCam as BarCode Reader - use your webcam to read barcodes - Stereograms!!! - make your own stereograms in AutoIT - Ziggurat Gaussian Distribution RNG - generate random numbers based on normal/gaussian distribution - Box-Muller Gaussian Distribution RNG - generate random numbers based on normal/gaussian distribution - Elastic Radio Buttons - faux-gravity effects in AutoIT (from javascript)- Morse Code Generator - Generate morse code by tapping your spacebar!
jchd Posted March 3, 2010 Posted March 3, 2010 Innocent question: what's the point of collecting that much data points if they are only there for display? Largest available display are ... how many pixel wide? Even automotive motor test beds (bed is a bit of an understatement) don't sample at those rates. Anyway, when dealing with oversampled _smooth_ data, determine/estimate on the fly the number of pixel needed to actually draw the graph on the display/print device and average your data around those points. Then draw lines to join them (just in case there are spurious spikes even at the rendering scale). Two benefits: you graph a full speed and rubout possible artificial discontinuities in your sampled data (noise, cosmic rays, black magic, ...). The data should be filtered beforehand but I suppose it isn't in your case. Don't average if you know or suspect the phenonenom may have non-smooth high derivatives. This wonderful site allows debugging and testing regular expressions (many flavors available). An absolute must have in your bookmarks.Another excellent RegExp tutorial. Don't forget downloading your copy of up-to-date pcretest.exe and pcregrep.exe hereRegExp tutorial: enough to get startedPCRE v8.33 regexp documentation latest available release and currently implemented in AutoIt beta. SQLitespeed is another feature-rich premier SQLite manager (includes import/export). Well worth a try.SQLite Expert (freeware Personal Edition or payware Pro version) is a very useful SQLite database manager.An excellent eBook covering almost every aspect of SQLite3: a must-read for anyone doing serious work.SQL tutorial (covers "generic" SQL, but most of it applies to SQLite as well)A work-in-progress SQLite3 tutorial. Don't miss other LxyzTHW pages!SQLite official website with full documentation (may be newer than the SQLite library that comes standard with AutoIt)
aphesia Posted March 3, 2010 Author Posted March 3, 2010 (edited) we need that amount of data cause it has to be done exactly.. but for the graph i will (as i already wrote) use 5 points per second. maybe even less so the graph speed isnt the problem anymore more the way to make the graph draw the diagram with the way my data is stored. and also i would like to click on the diagrams line and see the exact position (x,y positions). Edited March 3, 2010 by aphesia
Moderators Melba23 Posted March 3, 2010 Moderators Posted March 3, 2010 aphesia, Have you seen my post above - it shows how to use the ini data to draw the graph and how to click and get the data at a point! 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
aphesia Posted March 3, 2010 Author Posted March 3, 2010 awesome ! rly rly awesome thanks ! i got 2 problems now first is: find out how long the daigram in second goes (so not every time the diagramm will be 30 secs.. sometimes maybe 20 secs and then it should also only draw a diagram with 20 secs). second: a problem with the main gui (will explain later tonight) trying to fix both of them myself but feel free to post an fix for how to find out tha last line of an ini so i would know how long the diagramm would go (last line = last diagram point = maxium time = diagram size). thanks alot !
Moderators Melba23 Posted March 3, 2010 Moderators Posted March 3, 2010 aphesia, last line = last diagram point = maxium time = diagram sizeOnly true if the values are always increasing! For the time - yes; for the speed - are you sure? This code is a much simplified version of the script I posted above. It reads the values from the ini file into an array to make it faster - and so we can easily determine the max values for the graph. I have commented it liberally to help you understand what is happening at each stage and I also left in some _ArrayDisplay and MsgBox lines so you can see what values are set to the variables as the script progresses. You can comment them out when you are happy you know what is going on. expandcollapse popup#include <GUIConstantsEx.au3> #include "GraphGDIPlus.au3" #include <Array.au3> ; Only need if you display the data array ; Set inifile path $sIniFile = @ScriptDir & "\Data.ini" ; Set number of points per second that have been sampled $iDataPointsPerSec = 5 ; ######################################################################### ; This section is just for simulation - you would obviously already have your ini file If Not FileExists($sIniFile) Then ; Create ini For $i = 0 To 150 ; Number of data points to display ; Write the data points to ini file in form: Secs=Speed IniWrite($sIniFile, "Data", $i / $iDataPointsPerSec, 100 * $i / 150) Next MsgBox(0, "Pause", "Go and look at the ini file") EndIf ; ######################################################################### ; Get all the data into an array $aDataArray = IniReadSection($sIniFile, "Data") _ArrayDisplay($aDataArray) ; To help you see what is going on ; Determine the max values so you can set the graph to the correct size ; The maximum time is the final value in the [?][0] column - time always increases! $nMaxTime = $aDataArray[$aDataArray[0][0]][0] MsgBox(0, "Max Time", $nMaxTime) ; To help you see what is going on ; The maximum speed is the highest value in the [?][1] column $nMaxSpeed = 0 For $i = 1 To $aDataArray[0][0] If Number($aDataArray[$i][1]) > Number($nMaxSpeed) Then $nMaxSpeed = $aDataArray[$i][1] Next MsgBox(0, "Max Speed", $nMaxSpeed) ; To help you see what is going on ; So we now have the max values for the 2 variables and can set the graoh coordinates accordingly ; Create GUI $GUI = GUICreate("", 600, 600) GUISetState() ; Create Graph area $Graph = _GraphGDIPlus_Create($GUI, 40, 30, 530, 520, 0xFF000000, 0xFF88B3DD) ; Set X axis range from 0 to $nMaxTime _GraphGDIPlus_Set_RangeX($Graph, 0, $nMaxTime, 10, 1, 1) ; Set Y axis range from 0 to $nMaxSpeed _GraphGDIPlus_Set_RangeY($Graph, 0, $nMaxSpeed, 10, 1, 1) ; Set suitable gridlines _GraphGDIPlus_Set_GridX($Graph, Ceiling($nMaxTime / 50), 0xFF6993BE) _GraphGDIPlus_Set_GridY($Graph, Ceiling($nMaxSpeed / 50), 0xFF6993BE) ; Set line color and size _GraphGDIPlus_Set_PenColor($Graph, 0xFF325D87) _GraphGDIPlus_Set_PenSize($Graph, 2) ; Plot the graph ; Initialise with first point $nTime = $aDataArray[0][0] $nSpeed = $aDataArray[0][1] _GraphGDIPlus_Plot_Start($Graph,$nTime,$nSpeed) ; Continue plot For $i = 1 To $nMaxTime * $iDataPointsPerSec $nTime = $aDataArray[$i][0] $nSpeed = $aDataArray[$i][1] _GraphGDIPlus_Plot_Line($Graph, $nTime, $nSpeed) _GraphGDIPlus_Refresh($Graph) Next MsgBox(0, "Over", "Graph Drawn!") While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE _GraphGDIPlus_Delete($GUI, $Graph) Exit Case $GUI_EVENT_PRIMARYDOWN ; Get cursor position $aPos = GUIGetCursorInfo() ; Transform x-coordinate into value on time axis $iX_Pos = 1 + Int($nMaxTime * $iDataPointsPerSec * ($aPos[0] - 40) / 530) ; Transform y-coordinate into value on speed axis $iY_Pos = $nMaxSpeed * (520 - $aPos[1] + 30) / 520 ; Read actual speed at that point $nSpeed = $aDataArray[$iX_Pos][1] ; See if cursor is close to actual line If Abs($nSpeed - $iY_Pos) < 1 Then ; Only display time/speed data if cursor is close to line MsgBox(0, "Instant values", "Speed = " & $nSpeed & @CRLF & "Time: " & $aDataArray[$iX_Pos][0]) EndIf EndSwitch WEnd You will now need to create your ini file as I constructed the simulation above - each key=value pair should be Actual_Time=Speed. You then adjust the $iDataPointsPerSec variable to fit the interval between each of your data points and you should be good to go! Please ask if anything is unclear. M23 P.S. I would strongly suggest using a good spell-checker before you submit your project if your typing is as erratic as it seems to be from your posts! 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
aphesia Posted March 3, 2010 Author Posted March 3, 2010 (edited) yep also wanted to make it with an array and u are right.. i need to find out maximum speed + maximum time :S well your script draw rly fast and thanks for all the comments.. helps to understand it alot but i get an error after the graph drawed the line: >"C:\Program Files (x86)\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Users\Patrick\Documents\Schule\Leistungsprüfstand\autoit\diagram-ini2.au3" C:\Users\Patrick\Documents\Schule\Leistungsprüfstand\autoit\diagram-ini2.au3 (68) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.: $nTime = $aDataArray[$i][0] $nTime = ^ ERROR @edit: fixed the error. not sureh ow tho thanks ALOT .. i will try to work with it now and fit it to what i need if i have any question i will answer here Edited March 3, 2010 by aphesia
Moderators Melba23 Posted March 3, 2010 Moderators Posted March 3, 2010 aphesia, I see from your last post that you are German, so I withdraw my comment about your spelling - if only my German were as good as your English! Viel Gluck! 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