Jump to content

GuiBuilderPlus [updated March 24, 2024]


Recommended Posts

@jaberwacky 
Please take a look here.
 

Are you still going to create GUIBuilderNxt under your banner or can we consider the source here as the main one?

Can we go with the development of this program on GitHub, e.g. using the MIT license?

 

Signature beginning:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Codefor other useful stuff click the following button:

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST APIErrorLog.au3 UDF - A logging Library * Include Dependency Tree (Tool for analyzing script relations) * Show_Macro_Values.au3 *

 

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF * SciTE - Lexer for console pane

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * 

OpenOffice/LibreOffice/XLS Related: WriterDemo.au3 * XLS/MDB from scratch with ADOX

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskSchedulerIE Embedded Control Versioning (use IE9+ and HTML5 in a GUI) * PDF Related:How to get reference to PDF object embeded in IE * IE on Windows 11

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

I also encourage you to check awesome @trancexx code:  * Create COM objects from modules without any demand on user to register anything. * Another COM object registering stuffOnHungApp handlerAvoid "AutoIt Error" message box in unknown errors  * HTML editor

winhttp.au3 related : * https://www.autoitscript.com/forum/topic/206771-winhttpau3-download-problem-youre-speaking-plain-http-to-an-ssl-enabled-server-port/

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

Signature last update: 2023-04-24

Link to comment
Share on other sites

I wasn't aware that anyone was still developing GUIBuilderNxt since I hadn't seen any updates since 2016, or I might not have picked it up to bring back to life..
 

I'm not sure if this was directed towards me or jaberwacky specifically, but I wouldn't mind working out of GitHub. I already have a local git repository set up anyway - I just didn't think anyone would be interested enough to contribute.

Link to comment
Share on other sites

19 minutes ago, kurtykurtyboy said:

I wasn't aware that anyone was still developing GUIBuilderNxt since I hadn't seen any updates since 2016

I'm not suer if @jaberwacky is still developiong this program.
I just ask to be sure.

19 minutes ago, kurtykurtyboy said:

I'm not sure if this was directed towards me or jaberwacky specifically, but I wouldn't mind working out of GitHub. I already have a local git repository set up anyway - I just didn't think anyone would be interested enough to contribute.

Hope it will be possible to migrate your GIT to GitHub?

I think that it would be nice to have possibility to contribute, via GitHub
 

Edited by mLipok

Signature beginning:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Codefor other useful stuff click the following button:

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST APIErrorLog.au3 UDF - A logging Library * Include Dependency Tree (Tool for analyzing script relations) * Show_Macro_Values.au3 *

 

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF * SciTE - Lexer for console pane

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * 

OpenOffice/LibreOffice/XLS Related: WriterDemo.au3 * XLS/MDB from scratch with ADOX

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskSchedulerIE Embedded Control Versioning (use IE9+ and HTML5 in a GUI) * PDF Related:How to get reference to PDF object embeded in IE * IE on Windows 11

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

I also encourage you to check awesome @trancexx code:  * Create COM objects from modules without any demand on user to register anything. * Another COM object registering stuffOnHungApp handlerAvoid "AutoIt Error" message box in unknown errors  * HTML editor

winhttp.au3 related : * https://www.autoitscript.com/forum/topic/206771-winhttpau3-download-problem-youre-speaking-plain-http-to-an-ssl-enabled-server-port/

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

Signature last update: 2023-04-24

Link to comment
Share on other sites

A small but mighty update found in the first post. I spent a lot of time on the selection handles AKA grippies. Now when you select multiple controls either by drag-selecting or Ctrl+select, each selected control will show a set of grippies. Conversely, holding Ctrl and clicking on a control that is already selected will DEselect that control. There are a few things I'd like to iron out, such as scaling the controls proportionally when dragging to resize multiple controls, but overall I am quite happy with where it is at now. Selecting and interacting with controls is much more stable now as well.
Other than some miscellaneous bug fixes and maintenance items, you can now add menu items to the main menus. It is a little quirky and requires using the object explorer to add and delete items. But that was the best solution I could come up with without adding a ton more work.

  • FIXED:    Array subscript error when closing tool windows.
  • FIXED:    Multiple selection while holding Ctrl key now works properly.
  • FIXED:    Save/load GUI height with menus
  • ADDED:    Show grippies on each selected control! Each control object now has a built-in grippy object
  • ADDED:    Menu items can now be added and removed from the object explorer only
  • REMOVED:    Prompt to save to au3 file. User can always use File menu to save/export
  • UPDATED:    modified the About dialog text for a more detailed description and naming history
  • MAINT:    cleaned up more global variables
  • MAINT:    made control selection much more robust and consistent
  • Also added a link to the Github repo per the suggestion of @mLipok
Edited by kurtykurtyboy
Spelling
Link to comment
Share on other sites

2 hours ago, kurtykurtyboy said:

Also added a link to the Github repo per the suggestion of @mLipok

Github Repository:
https://github.com/KurtisLiggett/GuiBuilderPlus

Signature beginning:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Codefor other useful stuff click the following button:

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST APIErrorLog.au3 UDF - A logging Library * Include Dependency Tree (Tool for analyzing script relations) * Show_Macro_Values.au3 *

 

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF * SciTE - Lexer for console pane

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * 

OpenOffice/LibreOffice/XLS Related: WriterDemo.au3 * XLS/MDB from scratch with ADOX

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskSchedulerIE Embedded Control Versioning (use IE9+ and HTML5 in a GUI) * PDF Related:How to get reference to PDF object embeded in IE * IE on Windows 11

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

I also encourage you to check awesome @trancexx code:  * Create COM objects from modules without any demand on user to register anything. * Another COM object registering stuffOnHungApp handlerAvoid "AutoIt Error" message box in unknown errors  * HTML editor

winhttp.au3 related : * https://www.autoitscript.com/forum/topic/206771-winhttpau3-download-problem-youre-speaking-plain-http-to-an-ssl-enabled-server-port/

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

Signature last update: 2023-04-24

Link to comment
Share on other sites

;------------------------------------------------------------------------------
; Title...........: _main
; Description.....: run the main program loop
;------------------------------------------------------------------------------
Func _main()
    GUISetState(@SW_SHOWNORMAL)

    While 1
        Sleep(100)
        ;
    WEnd
EndFunc   ;==>_main


;------------------------------------------------------------------------------
; Title...........: _onExitMain
; Description.....: Clean up and exit the program
;------------------------------------------------------------------------------
Func _onExitMain()
    GUIDelete()
    Exit
EndFunc   ;==>_onExitMain

..I know users should know what they are doing but the additions shown above are good to have.
Also, if you develop for HiDpi/Scale, you should test your code in those environments.

when AutoIt3 is not found, you can test for ConsoleWrite(@AutoItExe & @CRLF).

The X,Y for $hToolbar = GUICreate("Choose Control Type", ... is not good when first staring.

...and that's my 5 cents :gathering:

Follow the link to my code contribution ( and other things too ).
FAQ - Please Read Before Posting.
autoit_scripter_blue_userbar.png

Link to comment
Share on other sites

@argumentum Thanks I very much appreciate the feedback. That's the only way I know about issues unless I accidentally stumble upon them myself.

  • I can't believe I missed the Sleep! - maybe because I've had an increased lack of sleep myself lately. 😏
  • I'm not sure I am in complete agreement about the necessity of using GUIDelete before Exit as general practice, but the customer is always right so I will do it your way. 😜
Quote

Also, if you develop for HiDpi/Scale, you should test your code in those environments.

  • Surely you aren't suggesting there are any issues with DPI scaling... Do you have any examples or screenshots?
Quote

when AutoIt3 is not found, you can test for ConsoleWrite(@AutoItExe & @CRLF).

  • I'm not sure what mean. Could you elaborate?
Quote

The X,Y for $hToolbar = GUICreate("Choose Control Type", ... is not good when first staring.

  • Someone just reported that on GitHub, so I've got a fix for it and was creating a new release right now. I will sneak in your above suggestions as well before releasing.
Link to comment
Share on other sites

3 minutes ago, kurtykurtyboy said:

when AutoIt3 is not found, you can test for ConsoleWrite(@AutoItExe & @CRLF).

sure. @AutoItExe is the executable, so it can be the AutoIt3.exe or CompiledScript.exe. if the user is using your uncompiled script from a portable setup, @AutoItExe is Autoit3(_x64).exe ;)

5 minutes ago, kurtykurtyboy said:

Surely you aren't suggesting there are any issues with DPI scaling

I've got 2 PCs, each with dual monitors. I don't expect you to have such setup. I've fund a world of trouble with scaling and even to find a suitable font size.
I'm not sure that inviting the user to do scaling without a proportion based GUI is wise in the long run, ( and proportion based is explained in "Layout Specifications: Win32" ) but with regular monitors we are used pixel based GUIs and a multiplier may not be the best  way to  design a GUI with scaling, but I'm not sure yet. Don't quote me on that.

Above all, thank you for taking on this project. Is not a small thing :) 

PS: I'll put together a DLU based ( loosely based ) on a font. I'm working on it for a project. Maybe some one can make a nice UDF out of it, if it passes the "forum filter" of those that unlike me, know what they are doing😅

Follow the link to my code contribution ( and other things too ).
FAQ - Please Read Before Posting.
autoit_scripter_blue_userbar.png

Link to comment
Share on other sites

First post has been updated for v0.26 which includes a couple important bug fixes and a few new features.
 

What's changed?

  • FIXED:    Window position bugs when no INI file. Also better handling of off-screen situations
  • FIXED:    Primary and secondary mouse clicks not detected outside default area if GUI is resized
  • ADDED:    Setting to create GUI as a function, called inside the main function
  • ADDED:    Property to declare control as Global or Local
  • ADDED:    Listview control
  • ADDED:    IP Address control
  • ADDED:    Changed code generation preview to Rich Text with syntax highlighting using RESH UDF by Beege (resize not yet working)
  • UPDATED:    Updated menu layout - settings under tools, About under help, added online support
  • UPDATED:    Added Sleep(100) to generated code While loop
Link to comment
Share on other sites

30 minutes ago, kurtykurtyboy said:

I'm not sure what mean. Could you elaborate?

Global $au3InstallPath = @ProgramFilesDir & "\AutoIt3\AutoIt3.exe"
If Not FileGetSize($au3InstallPath) And Not @Compiled Then $au3InstallPath = @AutoItExe

..this is a better answer :)

Follow the link to my code contribution ( and other things too ).
FAQ - Please Read Before Posting.
autoit_scripter_blue_userbar.png

Link to comment
Share on other sites

Believe it or not, I've tried going down the DPI rabbit hole before and ended up at that same German forum topic, but have not taken the time to look through the posted code yet.

Doesn't scaling the GUI have the side-effect of creating a proportional based GUI? How else do you achieve DPI awareness if you don't scale the GUI? If you let Windows do it, it gets all blurry.

Keep in mind, I'm only talking about System DPI awareness and not per-monitor awareness.

Link to comment
Share on other sites

1 minute ago, kurtykurtyboy said:

and not per-monitor awareness

..the world is going "per-monitor awareness", so that's what should be coded for and there is where a UDF would be needed for resizing all the controls or, count'em all reapply the resizing, resize them and reapply the original resizing. A UDF would be faster.

I'd keep the code generator simple ( without the GUI scaling ). In the long run, I believe that everyone ends up hand coding the GUI. Is easier to modify. At least that's me.
But code generators are very welcomed by those new at AutoIt. Hence the asking for the GuiDelete() or Sleep(100). A newbie will need it.

Follow the link to my code contribution ( and other things too ).
FAQ - Please Read Before Posting.
autoit_scripter_blue_userbar.png

Link to comment
Share on other sites

Quote

..the world is going "per-monitor awareness", so that's what should be coded for

Point taken.. I'm not old enough to be stuck in my ways. I poked around that UDF and can see how that would be a lot simpler/cleaner than the user manually scaling each control. The idea is you feed it all your controls and let the UDF do the resizing as needed.

I'm starting to see your point. If this is done via a UDF, then there is no point in scaling each control, which means I can remove that functionality from GuiBuilder, which means that picking up this project was pointless since that was my whole reason for starting this! You've now convinced me to quit.

Just kidding, I'll keep going. I've been growing quite fond of it as things become more and more stable.

 

Now to decide if that existing DPI UDF is good enough or if we need to enhance or improve it... but that's for another discussion I suppose.

Link to comment
Share on other sites

  • kurtykurtyboy changed the title to GuiBuilderPlus [updated March 24, 2024]

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

×
×
  • Create New...