Jump to content
Sign in to follow this  
FaridAgl

Object Oriented GUI

Recommended Posts

FaridAgl

Here is my first attempt to make working with GUIs in an even more fun way in AutoIt, however it's some how my second try to achieve this goal!

Previously!: '?do=embed' frameborder='0' data-embedContent>>

No more explanations, the code will do the rest:

#include-once
#include "Form.class.au3"
#AutoIt3Wrapper_AU3Check_Parameters=-q -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6

_AutoItObject_Startup()

Global $oForm = Form("Form Name")
$oForm.Title = "New Title"

Global $btn = $oForm.Button("Hello", 10, 10, 100, 25)
$btn.Text = "Hi there!"

Global $chk = $oForm.CheckBox("Hello", 10, 45, 100, 15)
$chk.Cursor = 0

Global $txt = $oForm.TextBox("Hello", 10, 70, 100, 20)
$txt.ToolTip("Hello again!")

Global $lbl = $oForm.Label("Hello", 10, 100, 100, 15)
$lbl.Font(25, "Impact")
$lbl.Location(150, 10)
$lbl.Size(100, 100)

Global $cbo = $oForm.ComboBox("Hello", 10, 125, 100, 20)
Global $grp = $oForm.GroupBox("Hello", 10, 155, 100, 50)
Global $opt = $oForm.RadioButton("Hello", 10, 215, 100, 15)
Global $lst = $oForm.ListBox("Hello", 10, 240, 100, 50)
Global $lvw = $oForm.ListView("Hello", 10, 300, 100, 50)

$oForm.Visible = True

While (True)
    Switch (GUIGetMsg())
        Case -3 ;$GUI_EVENT_CLOSE
            Exit
        Case $btn.Id
            MsgBox(16, "", "", 0, $oForm.Handle)
    EndSwitch
WEnd

It's somehow far from being ready for a serious useage, just want to check if there is any similar idea, maybe in a better way.

Check the attachment.

Edited by D4RKON3

Share this post


Link to post
Share on other sites
FaridAgl

Form Class:

 

Read-only properties:

Handle
ParentHandle
 
Readable and writable properties:
Title
Style
ExStyle
 
Write-only properties:
BackColor
Enabled
Help
Locked
TopMost
Transparency
Visible
 
Methods:
Cursor
Font
Icon
 
Available controls:
Button
CheckBox
TextBox
Label
ComboBox
GroupBox
RadioButton
ListBox
ListView

 

Control Class (All of controls):

 

Read-only properties:

Id
Handle
 
Readable and writable properties:
Text
Left
Top
Width
Height
State
 
Write-only properties:
Style
ExStyle
BackColor
TextColor
Cursor
Resizing
 
Methods:
Location
Size
Font
ToolTip
SendMessage

Share this post


Link to post
Share on other sites
guinness

Very interesting idea. Just so you know, doesn't work with AutoIt 64-bit and the latest beta version, though 32-bit was fine.


UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Share this post


Link to post
Share on other sites
jaberwacky

I have done a very similar thing in the past but never got around to finsihing it up.  Here is a link to the post: .

Here is the project in case you want to look through it.

The way this works is that I figured all controls share the same concepts.  So there is objCtrl which has all of those concepts wrapped up into one.  Then individual controls can inherit from that and either add to it or take away away from objCtrl accordingly.

Edited by jaberwocky6669

Share this post


Link to post
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
Sign in to follow this  

×