#171543 - 2006-12-15 07:37 AM
Re: KiXforms.Net Learning Series - Windows Registry Run Project 01 - Lesso
[Re: Benny69]
|
Witto
MM club member
Registered: 2004-09-29
Posts: 1828
Loc: Belgium
|
;region Set Code Options
;Set Break to On if not in Logon Mode.
If NOT @LOGONMODE
Break On
Else
Break Off
EndIf
;Set Code Options to On
Dim $SO
$SO=SetOption("Explicit", "ON")
$SO=SetOption("NoMacrosInStrings", "ON")
$SO=SetOption("NoVarsInStrings", "ON")
$SO=SetOption("WrapAtEOL", "ON")
;endregion Set Code Options
Global $System
$System = CreateObject("Kixforms.System")
If NOT $System
$nul= MessageBox("KiXforms.Net Not Initiated. This Script Will Now Close.","Error",16)
Quit @ERROR
EndIf
Global $frmRegRun
Dim $frmRegRunWidth, $frmRegRunHeight
$frmRegRunWidth = 600
$frmRegRunHeight = 400
Dim $nul, $Imagelist, $MainMenu, $MenuItem1, $MenuItem2
Dim $Panel1, $Panel2, $Panel3, $Listview1, $Listview2, $Splitter1
Dim $ListView1Column0, $ListView1Column1, $ListView2Column0, $ListView2Column1
Dim $ComboBox1, $Label1
Dim $btnExit, $btnDelete, $btnRefresh, $btnRestore, $btnBackup, $btnSave
$frmRegRun = $System.Form()
$frmRegRun.StartPosition = 1 ;FormStartPosition_CenterScreen
$frmRegRun.Size = $System.Size($frmRegRunWidth,$frmRegRunHeight) ;(Width,Height)
$frmRegRun.Text = "Windows Registry Run [Project 01 - Lesson 01]"
$frmRegRun.Icon = $System.Icon.FromBitmap(frmRegRunIcon())
$frmRegRun.SizeChanged = "ChangeSize($frmRegRunWidth, $frmRegRunHeight)"
$ImageList = $System.ImageList()
$nul = $ImageList.Images.AddStrip(MenuBitmap())
$MainMenu = $System.MainMenu()
$MenuItem1 = $MainMenu.MenuItems.Add($System.MenuItem("File"))
$MenuItem2 = $MenuItem1.MenuItems.Add($System.MenuItem("Exit"))
$MenuItem2.Click = "QuitProgram()"
$frmRegRun.Menu = $MainMenu
$Panel1 = $System.Panel()
$Panel1.BorderStyle = 2 ;Fixed3D
$Panel1.Dock = 5 ;Fill
$nul = $frmRegRun.Controls.Add($Panel1)
$ListView2 = $System.ListView()
$ListView2.Dock = 5 ;Fill
$ListView2.Font = $System.Font("Microsoft Sans Serif",10,0) ;Regular
$ListView2.GridLines = -1 ;True
$ListView2.View = $System.View_Details
$nul = $Panel1.Controls.Add($ListView2)
$ListView2Column0 = $ListView2.Columns.Add($System.ColumnHeader("Entry",100,$System.HorizontalAlignment_Left))
$ListView2Column1 = $ListView2.Columns.Add($System.ColumnHeader("Value",100,$System.HorizontalAlignment_Left))
$Label1 = $System.Label()
$Label1.Dock = 1 ;Top
$Label1.Text = "Entries to delete"
$Label1.TextAlign = 32 ;MiddleCenter
$nul = $Panel1.Controls.Add($Label1)
$Splitter1 = $System.Splitter()
$Splitter1.BackColor = $System.Color.FromName("ActiveCaption")
$Splitter1.Dock = 1 ;Top
$Splitter1.Height = 3
$nul = $frmRegRun.Controls.Add($Splitter1)
$Panel2 = $System.Panel()
$Panel2.BorderStyle = 2 ;Fixed3D
$Panel2.Dock = 1 ;Top
$Panel2.Height = 195
$nul = $frmRegRun.Controls.Add($Panel2)
$ListView1 = $System.ListView()
$ListView1.Dock = 5 ;Fill
$ListView1.Font = $System.Font("Microsoft Sans Serif",10,0) ;Regular
$ListView1.GridLines = -1 ;True
$ListView1.View = $System.View_Details
$nul = $Panel2.Controls.Add($ListView1)
$ListView1Column0 = $ListView1.Columns.Add($System.ColumnHeader("Entry",100,$System.HorizontalAlignment_Left))
$ListView1Column1 = $ListView1.Columns.Add($System.ColumnHeader("Value",100,$System.HorizontalAlignment_Left))
$ComboBox1 = $System.ComboBox()
$ComboBox1.Dock = 1 ;Top
$ComboBox1.DropDownWidth = 500
$ComboBox1.IntegralHeight = 0
$ComboBox1.ItemHeight = 13
$ComboBox1.Text = ""
$nul = $Panel2.Controls.Add($ComboBox1)
$Panel3 = $System.Panel()
$Panel3.BorderStyle = 2 ;Fixed3D
$Panel3.Dock = 3 ;Left
$Panel3.Width = 90
$nul = $frmRegRun.Controls.Add($Panel3)
$btnExit = $System.Button()
$btnExit.Dock = 1 ;Top
$btnExit.ImageAlign = 16 ;Middle,Left
$btnExit.Text = "Exit"
$btnExit.TextAlign = 64 ;MiddleRight
$btnExit.ImageList = $ImageList
$btnExit.ImageIndex = 0
$btnExit.Click = "QuitProgram()"
$nul = $Panel3.Controls.Add($btnExit)
$btnDelete = $System.Button()
$btnDelete.Dock = 1 ;Top
$btnDelete.ImageAlign = 16 ;Middle,Left
$btnDelete.Text = "Delete"
$btnDelete.TextAlign = 64 ;MiddleRight
$btnDelete.ImageList = $ImageList
$btnDelete.ImageIndex = 1
$nul = $Panel3.Controls.Add($btnDelete)
$btnRefresh = $System.Button()
$btnRefresh.Dock = 1 ;Top
$btnRefresh.ImageAlign = 16 ;Middle,Left
$btnRefresh.Text = "Refresh"
$btnRefresh.TextAlign = 64 ;MiddleRight
$btnRefresh.ImageList = $ImageList
$btnRefresh.ImageIndex = 2
$nul = $Panel3.Controls.Add($btnRefresh)
$btnRestore = $System.Button()
$btnRestore.Dock = 1 ;Top
$btnRestore.ImageAlign = 16 ;Middle,Left
$btnRestore.Text = "Restore"
$btnRestore.TextAlign = 64 ;MiddleRight
$btnRestore.ImageList = $ImageList
$btnRestore.ImageIndex = 3
$nul = $Panel3.Controls.Add($btnRestore)
$btnBackup = $System.Button()
$btnBackup.Dock = 1 ;Top
$btnBackup.ImageAlign = 16 ;Middle,Left
$btnBackup.Text = "Backup"
$btnBackup.TextAlign = 64 ;MiddleRight
$btnBackup.ImageList = $ImageList
$btnBackup.ImageIndex = 4
$nul = $Panel3.Controls.Add($btnBackup)
$btnSave = $System.Button()
$btnSave.Dock = 1 ;Top
$btnSave.ImageAlign = 16 ;Middle,Left
$btnSave.Text = "Save"
$btnSave.TextAlign = 64 ;MiddleRight
$btnSave.ImageList = $ImageList
$btnSave.ImageIndex = 5
$nul = $Panel3.Controls.Add($btnSave)
$frmRegRun.Show ;Displays the Form
While $frmRegRun.Visible
$Nul = Execute($frmRegRun.DoEvents())
Loop
Exit 0
Function frmRegRunIcon()
$frmRegRunIcon = "
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAAXNSR0IArs4c6QAAAARnQU1B
AACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAA
AHlJREFUOE+NkgEOwCAIA/3/q/gZY+IqCtoRk2HY0UJs7QsRQc4SVfvDAPvcz9LoL6BobxmL
V2EDIFqyE4jmumQfKcUArIaIS6sBdxXD28ctozraZWA6XO0dgU0B89wAl8VsfiVAXjGfwXsS
S3CSV1wrxKXVM7DHvNQfo/mQ/8A92p4AAAAASUVORK5CYII="
$frmRegRunIcon = $System.Bitmap.FromBase64String($frmRegRunIcon)
EndFunction
Function MenuBitmap()
$MenuBitmap = "
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"
$MenuBitmap = $System.Bitmap.FromBase64String($MenuBitmap)
EndFunction
Function ChangeSize($frmRegRunWidth, $frmRegRunHeight)
Dim $blnChangeSize
$blnChangeSize = 0
If $frmRegRun.Width < $frmRegRunWidth
$blnChangeSize = -1
Else
$frmRegRunWidth = $frmRegRun.Width
EndIf
If $frmRegRun.Height < $frmRegRunHeight
$blnChangeSize = -1
Else
$frmRegRunHeight = $frmRegRun.Height
EndIf
If $blnChangeSize = -1
$frmRegRun.Size = $System.Size($frmRegRunWidth,$frmRegRunHeight)
EndIf
EndFunction
Function QuitProgram
Quit 0
EndFunction
|
Top
|
|
|
|
#171545 - 2006-12-15 08:07 AM
Re: KiXforms.Net Learning Series - Windows Registry Run Project 01 - Lesso
[Re: Witto]
|
Viggen
Starting to like KiXtart
Registered: 2002-03-22
Posts: 110
|
Our SAN broke down last night, so I haven't got the "splittermoved()"-function in
;************ Options ************************
If Not @LogonMode
Break On
EndIf
Dim $SO
$SO=SetOption("NoMacrosInStrings", "ON")
$SO=SetOption("NoVarsInStrings", "ON")
$SO=SetOption("Explicit", "ON")
Global $nul, $System, $LSL01, $MainMenu, $List_Panel, $RegList_ListView, $Reg_ComboBox, $Splitter, $RegList_ListViewColumn, $FW, $FH
Global $Del_Panel, $DelList_ListView, $DelList_Label, $Btn_Panel, $FileMenu, $Exit, $DelList_ListViewColumn, $Exit_Button
Global $icons, $IconList, $FormIcon, $ControlIcons, $Save_Button, $Backup_Button, $Restore_Button, $Refresh_Button, $Delete_Button
; Form dimensions
$FW = 600 ;Form Width
$FH = 400 ;Form Height
;*********************************************
;************ Main Form **************************************************************
$System = CreateObject("Kixforms.System")
If Not $System
$nul= MessageBox("KiXforms.Net Not Initiated. This Script Will Now Close.","Error",16)
Quit()
EndIf
;******************************************
$LSL01 = $System.Form()
$LSL01.Icon = $System.Icon.FromBitmap(FormIcon())
$LSL01.StartPosition = 1
$LSL01.Size = $System.Size($FW,$FH)
$LSL01.Text = "Windows Registry Run [Project 01 - Lesson 01]"
$LSL01.SizeChanged = "Size()"
;******************************************
;******************************************
$Icons = ControlIcons()
$IconList = $System.ImageList()
$IconList.ImageSize = 16,16
$IconList.TransparentColor = 0,0,0
$nul = $IconList.Images.AddStrip($Icons)
;******************************************
;******************************************
$MainMenu = $System.MainMenu()
$FileMenu = $MainMenu.MenuItems.Add($System.MenuItem("File"))
$Exit = $FileMenu.MenuItems.Add($System.MenuItem("Exit"))
$Exit.Click = "ExitForm()"
$LSL01.Menu = $MainMenu
;******************************************
;******************************************
$List_Panel = $System.Panel()
$List_Panel.BorderStyle = 2
$List_Panel.Dock = 5
$nul = $LSL01.Controls.Add($List_Panel)
;******************************************
;******************************************
$RegList_ListView = $System.ListView()
$RegList_ListView.Dock = 5
$RegList_ListView.FullRowSelect = -1
$RegList_ListView.GridLines = -1
$RegList_ListView.View = $System.View_Details
$nul = $List_Panel.Controls.Add($RegList_ListView)
;******************************************
;******************************************
$RegList_ListViewColumn = $RegList_ListView.Columns.Add($System.ColumnHeader("Entry",120,$System.HorizontalAlignment_Left))
$RegList_ListViewColumn = $RegList_ListView.Columns.Add($System.ColumnHeader("Value",120,$System.HorizontalAlignment_Left))
;******************************************
;******************************************
$Reg_ComboBox = $System.ComboBox()
$Reg_ComboBox.Dock = 1
$Reg_ComboBox.ItemHeight = 15
$Reg_ComboBox.Text = ""
$nul = $List_Panel.Controls.Add($Reg_ComboBox)
;******************************************
;******************************************
$Splitter = $System.Splitter()
$Splitter.Dock = 2
$Splitter.Height = 4
$nul = $LSL01.Controls.Add($Splitter)
;******************************************
;******************************************
$Del_Panel = $System.Panel()
$Del_Panel.BorderStyle = 2
$Del_Panel.Dock = 2
$Del_Panel.Height = ($LSL01.Height/2)-20 ; Centers the splitter (almost...) if "MainMenu" is 18px high (how high is it?)
$nul = $LSL01.Controls.Add($Del_Panel)
;******************************************
;******************************************
$DelList_ListView = $System.ListView()
$DelList_ListView.Dock = 5
$DelList_ListView.FullRowSelect = -1
$DelList_ListView.GridLines = -1
$DelList_ListView.View = $System.View_Details
$nul = $Del_Panel.Controls.Add($DelList_ListView)
;******************************************
;******************************************
$DelList_ListViewColumn = $DelList_ListView.Columns.Add($System.ColumnHeader("Entry",120,$System.HorizontalAlignment_Left))
$DelList_ListViewColumn = $DelList_ListView.Columns.Add($System.ColumnHeader("Value",120,$System.HorizontalAlignment_Left))
;******************************************
;******************************************
$DelList_Label = $System.Label()
$DelList_Label.BorderStyle = 2
$DelList_Label.Dock = 1
$DelList_Label.Height = 20
$DelList_Label.Text = "Entries to Delete"
$DelList_Label.TextAlign = 32
$nul = $Del_Panel.Controls.Add($DelList_Label)
;******************************************
;******************************************
$Btn_Panel = $System.Panel()
$Btn_Panel.BorderStyle = 2
$Btn_Panel.Dock = 3
$Btn_Panel.Width = 89
$nul = $LSL01.Controls.Add($Btn_Panel)
;******************************************
;******************************************
$Save_Button = $System.Button()
$Save_Button.Height = 26
$Save_Button.Left = 0
$Save_Button.Text = "Save "
$Save_Button.ImageAlign = 16
$Save_Button.TextAlign = 64
$Save_Button.Top = 0
$Save_Button.Width = 85
$Save_Button.ImageList = $IconList
$Save_Button.ImageIndex = 5
$nul = $Btn_Panel.Controls.Add($Save_Button)
;******************************************
;******************************************
$Backup_Button = $System.Button()
$Backup_Button.Height = 26
$Backup_Button.Left = 0
$Backup_Button.Text = "Backup "
$Backup_Button.ImageAlign = 16
$Backup_Button.TextAlign = 64
$Backup_Button.Top = 26
$Backup_Button.Width = 85
$Backup_Button.ImageList = $IconList
$Backup_Button.ImageIndex = 4
$nul = $Btn_Panel.Controls.Add($Backup_Button)
;******************************************
;******************************************
$Restore_Button = $System.Button()
$Restore_Button.Height = 26
$Restore_Button.Left = 0
$Restore_Button.Text = "Restore "
$Restore_Button.ImageAlign = 16
$Restore_Button.TextAlign = 64
$Restore_Button.Top = 52
$Restore_Button.Width = 85
$Restore_Button.ImageList = $IconList
$Restore_Button.ImageIndex = 3
$nul = $Btn_Panel.Controls.Add($Restore_Button)
;******************************************
;******************************************
$Refresh_Button = $System.Button()
$Refresh_Button.Height = 26
$Refresh_Button.Left = 0
$Refresh_Button.Text = "Refresh "
$Refresh_Button.ImageAlign = 16
$Refresh_Button.TextAlign = 64
$Refresh_Button.Top = 78
$Refresh_Button.Width = 85
$Refresh_Button.ImageList = $IconList
$Refresh_Button.ImageIndex = 2
$nul = $Btn_Panel.Controls.Add($Refresh_Button)
;******************************************
;******************************************
$Delete_Button = $System.Button()
$Delete_Button.Height = 26
$Delete_Button.Left = 0
$Delete_Button.Text = "Delete "
$Delete_Button.ImageAlign = 16
$Delete_Button.TextAlign = 64
$Delete_Button.Top = 104
$Delete_Button.Width = 85
$Delete_Button.ImageList = $IconList
$Delete_Button.ImageIndex = 1
$nul = $Btn_Panel.Controls.Add($Delete_Button)
;******************************************
;******************************************
$Exit_Button = $System.Button()
$Exit_Button.Height = 26
$Exit_Button.Left = 0
$Exit_Button.Text = "Exit "
$Exit_Button.ImageAlign = 16
$Exit_Button.TextAlign = 64
$Exit_Button.Top = 130
$Exit_Button.Width = 85
$Exit_Button.ImageList = $IconList
$Exit_Button.ImageIndex = 0
$Exit_Button.Click = "ExitForm()"
$nul = $Btn_Panel.Controls.Add($Exit_Button)
;******************************************
$LSL01.Show
While $LSL01.Visible
$Nul = Execute($LSL01.DoEvents())
Loop
Exit 0
;*************************************************************************************
;*************************************************************************************
;**********************************
Function Size()
; Check if the form width or hight is smaller than allowed
; If it is, reset to "startsize"
If $LSL01.Width < $FW OR $LSL01.Height < $FH
$LSL01.Width = $FW
$LSL01.Height = $FH
$Del_Panel.Height = ($LSL01.Height/2)-20
Endif
; Check if the splitter is "out of bounds"
; If It is, then center the splitter again.
If $Del_Panel.Top < ($List_Panel.Top+20)
$Del_Panel.Height = ($LSL01.Height/2)-20
Endif
Endfunction
;**********************************
;**********************************
Function ExitForm()
$LSL01.Hide
$System = ""
Exit 0
Endfunction
;**********************************
;*************************************************************************************
;********************* Icons *********************************************************
;********************************************************************
Function ControlIcons()
$ControlIcons = "iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQCAYAAADpunr5AAAACXBIWXMAAA7DAAAOwwHHb6hk
AAAGmElEQVR4nO2YW2wU5xmGv5vcRFGVq14lUitVucAkWTxSaKOgWKIHkcgVAdGGQhungRVN
IpTWmKQgYqMSWpI0NJUWexrAFBI7DjQGLT4sxudl7bWXGIxhfWBNfdj1OevYpix22KcX49md
3Z2xHUBqVfWTXmk08//fq/99//m+f0bk//HfEX+pHOWPJdcXxf6iLv4X+f/j8YFzkGg0ilnc
/hqmbmvI+8cgfyhsTxDhTroQVYQ76XLX4twLf0IoKt/6UREPPHMMUVTzcYpq/cxqrBFJkbPf
RUZGEdPT04vC5Wpn48ZaMjOT8vz5dB9zc3Omi4/MQfiWhk2V8JsTfbyd3xJL8HW6YMSSFpYU
98JvFOpXJ6f4eTk8VgQPHhg3F23lEWR1Sfy+ovLtzFOp4xQVefYTZIsXyQsir7cjK4+kjPsm
Bpw7d8XcgHc/6yYSicQWHo1qi/8qoi18eFrD34pDfHg0SHbO8YQE/1ohGGEm8ly6cEfR3pbk
Z2b8XeEbrDqTwTNnMuicCCOqWPJ/b2st68rg0QMhHvyZC1nvQrZ3IO+MIrmDCWJLphOx+xLu
rT4ND73gjOf84WfavNxBZGePlm9DlTbvFW+CCd/EgKqqq+YGHCj2c/PmzZgAkTm4NauJPzID
/ZPQF4aaGigthd/u+HuKiDdXCDPzmLYlihxZIcymC3MWb0gy/0f+QkSVGB75+DuIKub8isrT
x6ZI+5TUcrGjC8npQV6oiN8zMeC7H8MDP3XGTcoLathQhXz/aHzuK97EuUkGeL1e6urqqK+v
p6GhAbfbjdvtxuPx0N7ezvnzFgbsP9bG1NQU0agmPopwe0+WtvMvtjH1+yy6x6F9GHxB2P7G
EVMhwzbBiCmbZsa0TZixWZenZH5RhZymPLxDN/jJ2bUxI0z5FRVRQQqiqfl14ey+uHAmBohj
DnnuNLK2XBN+2xdauUmOlUe0uYYSZjSgpaWF+vp6GhsbcbvdXLhwAY/HQ1NTEx0dHVRX+80N
eOdwK+FwmMgcRPpvgCKgCMMX27jz7MOgCCH1IL4gtA7C69s/shTzS5swMY+wTZi0CV8tIH4y
v3e4jbpgGyMz0DEWZlmJLWaAKb8u4Acz1k13vUsTbr3L3ID3p5A1nyNvDyA7r5vW+thYu0/L
YWLAYqipsTBgr8PNyOhYrOZPniyMmYAidATC+IJwoR8a+mDbqwULCjrypDD8RBwLjTXyT0bg
zeY8QtNa2Wsb0uALQvOABb+iIntDyJ5+80ZqhP4mJBuwp18rVS83IU8dtj71rC7R5v6g8K56
QG1tl7kBeR/WMTQ8Eqv5o/W1sZ2Pou0876C2+Ope2LrNYSlq6AlhaB6heQQXMUHnn5jntzLA
FQin8isq8uol5HediYIpKrKxNhFWBmR3aU17c4O2u3U8nXSc1d+kpB6wZk0p+/ZV43A0c+iQ
l0OHvOTnt5Cf30JBQSsFBa2oqo/sbBdZWZ5UA/a856JvIMjwNIS64iUoWHAwdt1ZWMi5AJT3
wMu//qupoH2PCzr6Ddf/nIeVATq/LrxecrLdWtlzBcKsOJmB67oFv6Jq4m1uSD3xWME4Ltko
HRlFiePsPiTLk2KA3e7DbvexZYubXbs85Oa2snt3E6+9VoHd7iQ7u5YXX6wgM9NpbsDuP5XR
2zdA/yTcCGtN+NYGG74gBI4XEsrOorpXW7yzG17KOpgiZu9ywQirZ2YGJPPrBjxWbGNrTR4P
HX0YUcWaX1E1sfQ6v9QPraWGoiJrSuMN2BBGAzIzVbzeQAyVlW5crkb8/gCKoqIoqnkJemvv
5/i7e+mZgM5xuDR/2tBrrr7zS/1w6hps+uX7sQRX0wS/AV1p5iL3LBe6l5s/N/L7xyDbfTDh
9LO2/A1L/gSRNjdoIv3Y5MPqbsN4/NT7gyFSDRjg+efPsGNHMY2NjQQCAWZnZxcxIPcUHV0B
OsfhyggpNV/feaeuwadXYNOm92IJOtIEHVctxNejM03QYcZ/bUzjbx7Q8NL5PHa6CynvgdOd
5vwJ8dThRBPuNRQVWXXC9ANMj2QDnM6LrFtXyb59FTHxJycnFzYgZ1cxX3R0LbjzT16FE5fh
2CXY+It3ExJcXiZcXra03xBXlgnt87hf/CmiGX813EvoJ6FVJyzzJRvgcBzH4WjG7Y6L39vb
u4gBb31CZc0QFefDGqq+pPzcBOWuccoqxyirGOVs+Qhny4Zxnh1aWIAlRLJh953/fvaARX7e
JRtQUlKSsPNDoRB+v9/UgH8DM43DgdT9MCYAAAAASUVORK5CYII="
$ControlIcons = $System.Bitmap.FromBase64String($ControlIcons)
Endfunction
;********************************************************************
;********************************************************************
Function FormIcon()
$FormIcon = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAAXNSR0IArs4c6QAAAARnQU1B
AACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAA
AHlJREFUOE+NkgEOwCAIA/3/q/gZY+IqCtoRk2HY0UJs7QsRQc4SVfvDAPvcz9LoL6BobxmL
V2EDIFqyE4jmumQfKcUArIaIS6sBdxXD28ctozraZWA6XO0dgU0B89wAl8VsfiVAXjGfwXsS
S3CSV1wrxKXVM7DHvNQfo/mQ/8A92p4AAAAASUVORK5CYII="
$FormIcon = $System.Bitmap.FromBase64String($FormIcon)
Endfunction
;********************************************************************
;*************************************************************************************
|
Top
|
|
|
|
#171560 - 2006-12-15 02:55 PM
Re: KiXforms.Net Learning Series - Windows Registry Run Project 01 - Lesso
[Re: Jochen]
|
Benny69
Moderator
Registered: 2003-10-29
Posts: 1036
Loc: Lincoln, Ne
|
Witto, Form layout Well done. Just a few small things; Dim/Global variables will be discussed in greater detail in Lesson 02. By default 'Break' is set to off, so 'Else Break Off' is redundant and not needed. When using forms you don't want the console to show up unless you are debugging, so '$SO=SetOption("WrapAtEOL", "ON")' should not be set in the Options. Variable names are Not descriptive, example what is the difference between $ListView1 And $ListView2, what are they for? $Splitter1/$ComboBox1/$Label1 eludes that there is more that one. Lacking in comments, particularly the controls (what is each control for, what do they do).
|
Top
|
|
|
|
#171561 - 2006-12-15 02:56 PM
Re: KiXforms.Net Learning Series - Windows Registry Run Project 01 - Lesso
[Re: Benny69]
|
Benny69
Moderator
Registered: 2003-10-29
Posts: 1036
Loc: Lincoln, Ne
|
Viggen, Form layout Well done. Just a few small things; Dim/Global variables will be discussed in greater detail in Lesson 02. Lacking in comments, particularly the controls (what is each control for, what do they do).
|
Top
|
|
|
|
#171565 - 2006-12-15 04:31 PM
Re: KiXforms.Net Learning Series - Windows Registry Run Project 01 - Lesso
[Re: Benny69]
|
Gargoyle
MM club member
Registered: 2004-03-09
Posts: 1597
Loc: Valley of the Sun (Arizona, US...
|
[code] If Not @LogonMode Break On EndIf
;Declare Variables that will be used throughout Global $SO, $Nul
;Set Code Options to On
$SO=SetOption("NoMacrosInStrings", "ON") $SO=SetOption("NoVarsInStrings", "ON") $SO=SetOption("Explicit", "ON")
;Declare Variables for the form
DIM $MainMenu,$MenuItem1,$MenuItem2 DIM $Panel_Dock[],$Panel_Height[],$Panel_Left[],$Panel_Top[] DIM $Button_Text,$Button_Top[],$Label1 DIM $Splitter1,$ListView2Column[1],$ListView1Column[1] DIM $Button_Click[],$ControlStackImageList
Global $System,$Form_Main,$Panel[2],$ListView1,$ListView2,$ComboBox1,$Button[5]
;Array build information ;Could probably make MultiDimensional array's but I kept losing myself $Panel_dock = 3,"",5 $Panel_Height = "",332,"" $Panel_Left = "",80,"" $Panel_Top = "",21,"" $Button_Text = "Exit","Delete","Refresh","Restore","Backup","Save" $Button_Top = 120,96,72,48,24,0 $Button_Click = "","","","","","IWantOut()"
;Check for existence of KiXForms $System = CreateObject("Kixforms.System") If Not $System $nul= MessageBox("KiXforms.Net Not Initiated. This Script Will Now Close.","Error",16) Quit() EndIf $nul = $System.Application.EnableVisualStyles
;Build the Form $Form_Main = $System.Form() $Form_Main.StartPosition = 1 $Form_Main.Size = $System.Size(600,400) $Form_Main.Text = "Project1 - Lesson 1" $Form_Main.SizeChanged = "Resize()" $Form_Main.Icon = $System.Icon.FromBase64String(FormImage())
;Build the menu bar $MainMenu = $System.MainMenu()
$MenuItem1 = $MainMenu.MenuItems.Add($System.MenuItem("File"))
$MenuItem2 = $MenuItem1.MenuItems.Add($System.MenuItem("Exit")) $MenuItem2.Click = "IWantOut()"
$Form_Main.Menu = $MainMenu
;Build the panels ;Panel 0 = Left panel with Control Stack ;Panel 1 = Is set to fill the rest of the fomr ;Panel 2 = Panel within Panel 1 For $SO = 0 To UBound($Panel) $Panel[$SO] = $System.Panel() $Panel[$SO].BorderStyle = 1 $Panel[$SO].Dock = $Panel_Dock[$SO] $Panel[$SO].Left = $Panel_Left[$SO] $Panel[$SO].Top = $Panel_Top[$SO] $Panel[$SO].Height = $Panel_Height[$SO] Next
;Add Control Stack containing panel $Nul = $Form_Main.Controls.Add($Panel[0])
;Build the ImageList for the ControlStack $ControlStackImageList = $System.Imagelist() $ControlStackImageList.ImageSize = $System.Size(16,16) $Nul = $ControlStackImageList.Images.AddStrip($System.Bitmap.FromBase64String(ControlStackImageList()))
;Build the Buttons for the Control Stack ;Buttons are built from the bottom up ;See definition of Button_Text[] Array for clarification For $SO = 0 to Ubound($Button) $Button[$SO] = $System.Button() $Button[$SO].Left = 0 $Button[$SO].TextAlign = 64 $Button[$SO].Top = $Button_Top[$SO] $Button[$SO].Text = $Button_Text[$SO] $Button[$SO].Click = $Button_Click[$SO] $Button[$SO].ImageList = $ControlStackImageList $Button[$SO].ImageAlign = 16 $Button[$SO].ImageIndex = $SO $Nul = $Panel[0].Controls.Add($Button[$SO]) Next
;Add the ComboBox $ComboBox1 = $System.ComboBox() $ComboBox1.DropDownWidth = 512 $ComboBox1.IntegralHeight = 0 $ComboBox1.ItemHeight = 13 $ComboBox1.Left = 79 $ComboBox1.Text = "" $ComboBox1.Top = 0 $nul = $Form_Main.Controls.Add($ComboBox1)
;Add Two Panels that will allow for splitting $Nul = $Form_Main.Controls.Add($Panel[1])
;Add the secondary panel to the one just created $Nul = $Panel[1].Controls.Add($Panel[2])
;Add the Label $Label1 = $System.Label() $Label1.BorderStyle = 1 $Label1.Dock = 1 $Label1.Text = "Entries to Delete" $Label1.TextAlign = 32 $nul = $Panel[2].Controls.Add($Label1)
;Insert the Bottom Listview First to establish for the Splitter $ListView2 = $System.ListView() $ListView2.GridLines = -1 ;True $ListView2.Left = 0 $ListView2.Top = 22 $ListView2.View = $System.View_Details $nul = $Panel[2].Controls.Add($ListView2)
;Add in the Splitter $Splitter1 = $System.Splitter() $Splitter1.Dock = 1 ;Top $Splitter1.Height = 3 $nul = $Panel[1].Controls.Add($Splitter1)
;Now we can add the top Listview $ListView1 = $System.ListView() $ListView1.Dock = 1 ;Top $ListView1.GridLines = -1 ;True $ListView1.View = $System.View_Details $nul = $Panel[1].Controls.Add($ListView1)
;Set up Column headers for ListViews $ListView2Column[0] = $ListView2.Columns.Add($System.ColumnHeader("Entry",100,$System.HorizontalAlignment_Left)) $ListView2Column[1] = $ListView2.Columns.Add($System.ColumnHeader("Value",100,$System.HorizontalAlignment_Center)) $ListView1Column[0] = $ListView1.Columns.Add($System.ColumnHeader("Entry",100,$System.HorizontalAlignment_Left)) $ListView1Column[1] = $ListView1.Columns.Add($System.ColumnHeader("Value",100,$System.HorizontalAlignment_Center))
;Set the widths of everything to match the form $Panel[0].Width = 79 Resize()
$Form_Main.Show ;Displays the Form
While $Form_Main.Visible $Nul = Execute($Form_Main.DoEvents()) Loop Exit 0
;================================================================================================ ; Functions ;================================================================================================ Function Resize() DIM $Width If $Form_Main.Width => 600 $Width = $Form_Main.Width - 86 Else $Form_Main.Width = 600 EndIf If $Form_Main.Height < 400 $Form_Main.Height = 400 EndIf
$Panel[1].Width = $Width $Panel[2].Width = $Width $ComboBox1.Width = $Width $ListView2.Width = $Width $ListView1.Width = $Width $Panel[1].Height = $Form_Main.Height $Panel[2].Height = $Form_Main.Height - ($ListView1.Height - 5) $ListView2.Height = $Panel[2].Height
EndFunction
;=====================================
Function IWantOut() Quit 0 EndFunction
;================================================================================================ ; Image Strings ;================================================================================================ Function ControlStackImageList() $ControlStackImageList = " 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 " EndFunction
Function FormImage() $FormImage = " AAABAAEAEBAAAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAQAEAAAAA AAAAAAAAAAAAAAAAAAAAAAAA////AAD/AAAAAP8A//8AAAD//wDAwMAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB AQEBAQEBAQEGBgYBAQAAAQEBAQEBBgYAAAAGAQEAAAEBAQEBAAAAAAMABgEBAAAB AQEBAQAGAQAAAAEBAQAAAQEBAQEABgEBBgYGAQEAAAEBAQEBAAYGAAAABgEBAAAB AQEBAQAAAAACAAYBAQAAAQEBAQEABgYAAAABAQEAAQYGBgYAAAAGAQEBAQEBAAEA AAAAAAUABgEBAQEBAQABAAYBAQAAAAEBAQEBAQEAAQAGAQEBAQEBAQEBAQEBAAAA AAYDAwMDAwMDAwMDAwAABAAGAwMDAwMDAwMDAwMAAAAABgAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAA="
EndFunction [/code]
_________________________
Today is the tomorrow you worried about yesterday.
|
Top
|
|
|
|
#171566 - 2006-12-15 05:11 PM
Re: KiXforms.Net Learning Series - Windows Registry Run Project 01 - Lesso
[Re: Gargoyle]
|
Benny69
Moderator
Registered: 2003-10-29
Posts: 1036
Loc: Lincoln, Ne
|
Gargoyle, Form layout looks nice, but when the form is resized larger you can see the size of the 'ListView'(s) and other internal controls remain small until the form border is released. Comments, well done and easy to follow. Construction of identical controls, very creative well done. The arrays might be a little over kill. Variable names are Not descriptive, example what is the difference between $ListView1 And $ListView2, what are they for? $Splitter1/$ComboBox1/$Label1 eludes that there is more that one.
|
Top
|
|
|
|
#171575 - 2006-12-15 05:53 PM
Re: KiXforms.Net Learning Series - Windows Registry Run Project 01 - Lesso
[Re: Gargoyle]
|
Benny69
Moderator
Registered: 2003-10-29
Posts: 1036
Loc: Lincoln, Ne
|
Gargoyle, When you set the '.Dock' property for any control you should never have to set the '.Top'/'.Left' properties, the '.Width'/'.Height' properties should not be used if '.Dock = Fill'. If you set these properties after you set the '.Dock' properties you will receive undesirable results.
with '$Panel_dock = 3,"",5' the second panel created is not docked at all and should be docked to the bottom '2'.
also i think that part of what is happening is that the controls are not created in a sequence that is indicative of what you are trying to achieve.
'.Dock' property its self alows a form or container to be resized and the '.Width'/'.Height' properties will automaticly change to sute the size of the container.
maybe i did not say things very well but these are the things that i was trying to show you in this post: http://www.kixtart.org/forums/ubbthreads.php?ubb=showflat&Number=170867&page=1#Post171243
Edited by Benny69 (2006-12-15 05:55 PM)
|
Top
|
|
|
|
#171579 - 2006-12-15 06:38 PM
Re: KiXforms.Net Learning Series - Windows Registry Run Project 01 - Lesso
[Re: Gargoyle]
|
Benny69
Moderator
Registered: 2003-10-29
Posts: 1036
Loc: Lincoln, Ne
|
I think you hit the nail on the head, for the creation of this form, the sequence should be: TopPanel for TopListView .dock = fill TopListView inside TopPanel .dock = fill ComboBox for TopListView inside TopPanel .dock = top
Splitter .dock = bottom
BottomPanel for BottomListView .dock = bottom BottomListView inside BottomPanel .dock = fill BottomLabel for BottomListView inside BottomPanel .dock = top
ButtonPanel for Buttons .dock = left Buttons inside ButtonPanel .dock = top Buttons created starting with last button first to accommodate the .dock property
if you create the panels one after the other then create the splitter the .dock sequence is messed up.
|
Top
|
|
|
|
#171583 - 2006-12-15 07:14 PM
Re: KiXforms.Net Learning Series - Windows Registry Run Project 01 - Lesso
[Re: Gargoyle]
|
Benny69
Moderator
Registered: 2003-10-29
Posts: 1036
Loc: Lincoln, Ne
|
Gargoyle,
As far as determining the correct build pattern, for me I use kfd to create the basic structure and then use the Object TreeView to rearrange the sequence until I have the layout I am looking for. As you create more forms that use the .Dock property you will begin to see a pattern. That pattern tends to be, create controls backward to what you would think they should be created. You will also notice that typically the control that needs to be set to fill, is the first one created.
I don't know that any particular way of doing things is right or wrong as long as it gets you to the result you need.
|
Top
|
|
|
|
#171608 - 2006-12-16 08:38 PM
Re: KiXforms.Net Learning Series - Windows Registry Run Project 01 - Lesso
[Re: Gargoyle]
|
Benny69
Moderator
Registered: 2003-10-29
Posts: 1036
Loc: Lincoln, Ne
|
I Think that just about everyone that is going to post has, except maybe Jochen.
Here is my solution:
;Things to Note:
;Comments, they are in every part of the form and it's construction, it makes it easier for others to
; understand what is happening and what controls are used for.
;Variable names are descriptive and easy to keep straight as you dig into the code.
;I use '$MainForm.Tag' to store the original 'Form.Size' for easy retrieval in the 'MainForm.SizeChanged'
; event function. Most controls have a '.Tag' property, it is very useful for many things.
; The '.Tag' property can be used to store just about anything including arrays and even
; multi-dimensional arrays.
;Personal preference, when creating a stack of controls that are identical:
; create an array that contains a list of names or '.Text' values to identify the different controls,
; then loop thru their construction with a 'For Next' loop. This way you don't have a huge list of identical
; controls that would be difficult for anyone to keep straight.
;region Set Code Options
;Set Break to On if not in Logon Mode.
If Not @LogonMode
Break On
EndIf
;Set Code Options to On
Dim $SO
$SO=SetOption("NoMacrosInStrings", "ON")
$SO=SetOption("NoVarsInStrings", "ON")
$SO=SetOption("Explicit", "ON")
;endregion Set Code Options
;region Setup Varibles
;Dim variables in order of creation.
Global $System,$MainForm
Dim $nul,$ImageList,$MainMenu,$FileMenuItem,$ExitMenuItem,$MainPanel,
$DeletePanel,$DeleteListView,$DeleteListViewColumn0,$DeleteListViewColumn1,$DeleteLabel,
$Splitter,
$ActivePanel,$ActiveListView,$ActiveListViewColumn0,$ActiveListViewColumn1,$ActiveComboBox,
$ControlPanel,$ControlButton,$Controls,$Control,$ImageIndex
;Create an array of names of the 'Control Stack'.
$Controls = "Exit","Delete","Refresh","Restore","Backup","Save"
;Create 'Kixforms.System' Object.
$System = CreateObject("Kixforms.System")
;Verify the 'Kixforms.System' Object was created if not, notify and exit.
If Not $System
$nul= MessageBox("KiXforms.Net Not Initiated."+@CRLF+
"Please verify KiXforms.Net is installed."+@CRLF+
"This Script Will Now Close.","Error",16)
Quit()
EndIf
;Create an 'ImageList' for the 'Control Stack'.
$ImageList = $System.ImageList()
$ImageList.ImageSize = $System.Size(16,16)
$nul = $ImageList.Images.AddStrip(ControlImages())
;endregion Setup Varibles
;region Main Form
;Create Form and Controls.
;Store the original 'MainForm.Size' in 'MainForm.Tag' for easy retrieval in the 'MainForm.SizeChanged' event function.
$MainForm = $System.Form()
$MainForm.Font = $System.Font("Verdana",8.25,0) ;Regular
$MainForm.Icon = $System.Icon.FromBitmap(FormIcon())
$MainForm.StartPosition = $System.FormStartPosition_CenterScreen
$MainForm.Size = $System.Size(600,400) ;(Width,Height)
$MainForm.SizeChanged = "OnFormSizeChange()"
$MainForm.Text = "Windows Registry Run [Project 01 - Lession 01]"
$MainForm.Tag = $System.Size(600,400) ;(Width,Height)
;Create the MainMenu.
$MainMenu = $System.MainMenu()
$FileMenuItem = $MainMenu.MenuItems.Add($System.MenuItem("File"))
$ExitMenuItem = $FileMenuItem.MenuItems.Add($System.MenuItem("Exit"))
$ExitMenuItem.Click = "ExitForm()"
$MainForm.Menu = $MainMenu
;region Form Controls
;Most controls are attached to the MainPanel.
$MainPanel = $System.Panel()
$MainPanel.Dock = $System.DockStyle_Fill
$nul = $MainForm.Controls.Add($MainPanel)
;region Active Panel
;Create the upper Panel, it contains the controls above the spliter.
$ActivePanel = $System.Panel()
$ActivePanel.BorderStyle = $System.BorderStyle_Fixed3D
$ActivePanel.Dock = $System.DockStyle_Fill
$ActivePanel.Height = 160
$nul = $MainPanel.Controls.Add($ActivePanel)
;Create the upper ListView, to display the current registry entries.
$ActiveListView = $System.ListView()
$ActiveListView.CheckBoxes = "True"
$ActiveListView.Dock = $System.DockStyle_Fill
$ActiveListView.FullRowSelect = "True"
$ActiveListView.GridLines = "True"
$ActiveListView.View = $System.View_Details
$nul = $ActivePanel.Controls.Add($ActiveListView)
;Create the Columns for the upper ListView.
$ActiveListViewColumn0 = $ActiveListView.Columns.Add($System.ColumnHeader("Entry",100,$System.HorizontalAlignment_Left))
$ActiveListViewColumn1 = $ActiveListView.Columns.Add($System.ColumnHeader("Value",100,$System.HorizontalAlignment_Left))
;Create a ComboBox for the upper ListView to tell the user what registry key the user is viewing.
$ActiveComboBox = $System.ComboBox()
$ActiveComboBox.Dock = $System.DockStyle_Top
$nul = $ActivePanel.Controls.Add($ActiveComboBox)
;endregion Active Panel
;Create a horizontal Splitter so the user can adjust the vertical size of the ListViews.
$Splitter = $System.Splitter()
$Splitter.BackColor = $System.Color.FromName("ActiveCaption")
$Splitter.Dock = $System.DockStyle_Bottom
$Splitter.Height = 3
$nul = $MainPanel.Controls.Add($Splitter)
;region Delete Panel
;Create the lower Panel, it contains the controls below the spliter.
$DeletePanel = $System.Panel()
$DeletePanel.BorderStyle = $System.BorderStyle_Fixed3D
$DeletePanel.Dock = $System.DockStyle_Bottom
$DeletePanel.Height = 150
$nul = $MainPanel.Controls.Add($DeletePanel)
;Create the lower ListView, to display the registry entries to be deleted.
$DeleteListView = $System.ListView()
$DeleteListView.Dock = $System.DockStyle_Fill
$DeleteListView.FullRowSelect = "True"
$DeleteListView.GridLines = "True"
$DeleteListView.View = $System.View_Details
$nul = $DeletePanel.Controls.Add($DeleteListView)
;Create the Columns for the lower ListView.
$DeleteListViewColumn0 = $DeleteListView.Columns.Add($System.ColumnHeader("Entry",100,$System.HorizontalAlignment_Left))
$DeleteListViewColumn1 = $DeleteListView.Columns.Add($System.ColumnHeader("Value",100,$System.HorizontalAlignment_Left))
;Create a Lable for the lower ListView to tell the user what the lower ListView is for.
$DeleteLabel = $System.Label()
$DeleteLabel.Dock = $System.DockStyle_Top
$DeleteLabel.Height = 20
$DeleteLabel.Text = "Entries to Delete"
$DeleteLabel.TextAlign = $System.ContentAlignment_MiddleCenter
$nul = $DeletePanel.Controls.Add($DeleteLabel)
;endregion Delete Panel
;region User Controls
;Create a Panel for the form user controls.
$ControlPanel = $System.Panel()
$ControlPanel.BorderStyle = $System.BorderStyle_Fixed3D
$ControlPanel.Dock = $System.DockStyle_Left
$ControlPanel.Width = 90
$nul = $MainForm.Controls.Add($ControlPanel)
;Create the user controls: Exit, Delete, Refresh, Restore, Backup, Save.
$ImageIndex = 0
For Each $Control in $Controls
$ControlButton = $System.Button()
$ControlButton.Dock = $System.DockStyle_Top
$ControlButton.Height = 26
$ControlButton.ImageAlign = $System.ContentAlignment_TopLeft
$ControlButton.ImageList = $ImageList
$ControlButton.ImageIndex = $ImageIndex
$ControlButton.Text = $Control
$ControlButton.TextAlign = $System.ContentAlignment_MiddleRight
$nul = $ControlPanel.Controls.Add($ControlButton)
$ImageIndex = $ImageIndex + 1
Next
;endregion User Controls
;endregion Form Controls
;region Startup
;endregion Startup
;Show the Form
$MainForm.Show
;Loop to catch form events.
While $MainForm.Visible
$nul = Execute($MainForm.DoEvents())
Loop
Exit 0
;endregion Main Form
;region Main Form Functions
;The 'OnFormSizeChange()' function adjusts the size of the form to the minimum size
;if the user tries to Set it too Small.
Function OnFormSizeChange()
Dim $MainForm_Size
;Retrieve the original 'MainForm.Size' from 'MainForm.Tag'
$MainForm_Size = $MainForm.Tag
If $MainForm.Width < $MainForm_Size.Width And Not($MainForm.WindowState = 1)
$MainForm.Width = $MainForm_Size.Width
EndIf
If $MainForm.Height < $MainForm_Size.Height And Not($MainForm.WindowState = 1)
$MainForm.Height = $MainForm_Size.Height
EndIf
EndFunction
;The 'ExitForm()' function exits the form.
Function ExitForm()
Quit 0
EndFunction
;endregion Main Form Functions
;region Images
;The 'FormIcon()' function creates the icon for 'MainForm.Icon'.
Function FormIcon()
$FormIcon = "
Qk02BAAAAAAAADYAAAAoAAAAEAAAABAAAAABACAAAAAAAAAAAADEDgAAxA4AAAAAAAAAAAAA
AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AP8AAAD/AAAA/wAAAP/////////////////////////////////////////////////AwMD/
wMDA/8DAwP///////////wAAAP8AAAD/////////////////////////////////wMDA/8DA
wP8AAAD/AAAA/wAAAP/AwMD///////////8AAAD/AAAA////////////////////////////
AAAA/wAAAP8AAAD/AAAA/wAA//8AAAD/wMDA////////////AAAA/wAAAP//////////////
/////////////wAAAP/AwMD//////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/
//////////////////////////8AAAD/wMDA////////////wMDA/8DAwP/AwMD/////////
//8AAAD/AAAA////////////////////////////AAAA/8DAwP/AwMD/AAAA/wAAAP8AAAD/
wMDA////////////AAAA/wAAAP///////////////////////////wAAAP8AAAD/AAAA/wAA
AP8A/wD/AAAA/8DAwP///////////wAAAP8AAAD///////////////////////////8AAAD/
wMDA/8DAwP8AAAD/AAAA/wAAAP////////////////8AAAD//////8DAwP/AwMD/wMDA/8DA
wP8AAAD/AAAA/wAAAP/AwMD/////////////////////////////////AAAA//////8AAAD/
AAAA/wAAAP8AAAD/AAAA/wD///8AAAD/wMDA/////////////////////////////////wAA
AP//////AAAA/8DAwP///////////wAAAP8AAAD/AAAA////////////////////////////
//////////8AAAD//////wAAAP/AwMD/////////////////////////////////////////
////////////////////////AAAA/wAAAP8AAAD/AAAA/8DAwP8AAP//AAD//wAA//8AAP//
AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAAP8AAAD///8A/wAAAP/AwMD/AAD//wAA
//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAAD/AAAA/wAAAP8AAAD/
wMDA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/w==
"
$FormIcon = $System.Bitmap.FromBase64String($FormIcon)
EndFunction
;The 'ControlImages()' function creates the images for the 'ImageList'.
Function ControlImages()
$ControlImages = "
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"
$ControlImages = $System.Bitmap.FromBase64String($ControlImages)
EndFunction
;endregion Images
I will now post Lesson 02. Next Lesson: Project 01 - Lesson 02
You may use my solution, someone else's or modify your own to include bits and pieces of different ones.
|
Top
|
|
|
|
Moderator: NTDOC, ShaneEP, Mart, Radimus, Glenn Barnas, Jochen, Allen
|
0 registered
and 645 anonymous users online.
|
|
|