Jump to content

draw diagrams


aphesia
 Share

Recommended Posts

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 :mellow:

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 by aphesia
Link to comment
Share on other sites

  • Moderators

aphesia,

Try searching for "graph" - there have been a number of examples posted on teh forum.

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png 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 columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

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 :mellow:

@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 by aphesia
Link to comment
Share on other sites

  • Moderators

aphesia,

i´m currently working at my final project for school

I 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! :mellow:

M23

Edit: 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 by Melba23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png 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 columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

  • Moderators

aphesia,

5/sec sounds a lot more realistic. :mellow: How is the project going?

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png 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 columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

got alot of new ideas for the program :mellow:

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.

Link to comment
Share on other sites

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...

Link to comment
Share on other sites

  • Moderators

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: :mellow:

#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

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png 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 columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

@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 here
RegExp tutorial: enough to get started
PCRE 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)

Link to comment
Share on other sites

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 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!
Link to comment
Share on other sites

Innocent question: what's the point :mellow: 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 here
RegExp tutorial: enough to get started
PCRE 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)

Link to comment
Share on other sites

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 :mellow:

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 by aphesia
Link to comment
Share on other sites

  • Moderators

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! :mellow:

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png 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 columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

awesome ! rly rly awesome thanks !

i got 2 problems now :mellow:

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 !

Link to comment
Share on other sites

  • Moderators

aphesia,

last line = last diagram point = maxium time = diagram size

Only true if the values are always increasing! For the time - yes; for the speed - are you sure? :mellow:

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.

#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! :P

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! :lol:

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png 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 columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

yep also wanted to make it with an array :mellow:

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 :evil:

thanks ALOT .. i will try to work with it now and fit it to what i need :lol: if i have any question i will answer here :P

Edited by aphesia
Link to comment
Share on other sites

  • Moderators

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! :mellow:

Viel Gluck!

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png 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 columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...