MachinistProgrammer Posted May 8, 2013 Share Posted May 8, 2013 im trying to make a gui editor but i have a problem i need to be able to make an infinate amount of dragable buttons i tryed this but it dosent work $board = GUICreate('',500,500) Global $buttons[2] $buttons[0] = GUICtrlCreateButton("button 1",0,0,20,20) $buttons[1] = GUICtrlCreateButton("button 2",100,100,20,20) GUISetState(@SW_SHOW,$board) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit case -7,$buttons[_ArraySearch($button,$nMsg)] _drag($board,$buttons[_ArraySearch($button,$nMsg)]) EndSwitch WEnd All my projects live on github Link to comment Share on other sites More sharing options...
MouseSpotter Posted May 8, 2013 Share Posted May 8, 2013 (edited) WOW - I never thought of using _ArraySearch!!However, your script will crash because _ArraySearch returns -1 if the message code is not found.Try this instead ...#include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <array.au3> $board = GUICreate('', 500, 500) Global $buttons[2] $buttons[0] = GUICtrlCreateButton("button 1", 0, 0, 20, 20) $buttons[1] = GUICtrlCreateButton("button 2", 100, 100, 20, 20) GUISetState(@SW_SHOW, $board) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case _ArraySearch($buttons, $nMsg) Case $GUI_EVENT_CLOSE Exit EndSwitch local $result = _ArraySearch($buttons, $nMsg) if $result <> -1 Then ToolTip($buttons[$result]) endif WEnd Edited May 8, 2013 by MouseSpotter Link to comment Share on other sites More sharing options...
MouseSpotter Posted May 8, 2013 Share Posted May 8, 2013 p.s. how do you get autoit code to display the same indenting as in SciTE? (the autoit code BBS does do this for me ...plus it knocks off the text of the #include statements) Link to comment Share on other sites More sharing options...
Solution PhoenixXL Posted May 8, 2013 Solution Share Posted May 8, 2013 Check this outexpandcollapse popup#include <Misc.au3> #include <GUIConstants.au3> $board = GUICreate('', 500, 500) Global $buttons[4] $buttons[0] = GUICtrlCreateButton("button 1", 60, 0, 70, 20) $buttons[1] = GUICtrlCreateButton("button 2", 160, 100, 70, 20) $buttons[2] = GUICtrlCreateButton("button 3", 160, 200, 70, 20) $buttons[3] = GUICtrlCreateButton("button 4", 180, 300, 70, 20) GUISetState(@SW_SHOW, $board) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $GUI_EVENT_PRIMARYDOWN $aCur = GUIGetCursorInfo() Switch $aCur[4] Case $buttons[0] To $buttons[3] _drag($aCur[4], $board, $aCur) EndSwitch EndSwitch WEnd Func _drag($ControlID, $hParent, $aMpos) $aPos = ControlGetPos($hParent, "", $ControlID) If @error Then Return -1 $iXOffset = $aMpos[0] - $aPos[0] $iYOffset = $aMpos[1] - $aPos[1] While _IsPressed("01") $aMpos = GUIGetCursorInfo() GUICtrlSetPos($ControlID, $aMpos[0] - $iXOffset, $aMpos[1] - $iYOffset) WEnd EndFunc ;==>_drag My code: PredictText: Predict Text of an Edit Control Like Scite. Remote Gmail: Execute your Scripts through Gmail. StringRegExp:Share and learn RegExp.Run As System: A command line wrapper around PSEXEC.exe to execute your apps scripts as System (LSA). Database: An easier approach for _SQ_LITE beginners. MathsEx: A UDF for Fractions and LCM, GCF/HCF. FloatingText: An UDF for make your text floating. Clipboard Extendor: A clipboard monitoring tool. Custom ScrollBar: Scroll Bar made with GDI+, user can use bitmaps instead. RestrictEdit_SRE: Restrict text in an Edit Control through a Regular Expression. Link to comment Share on other sites More sharing options...
Quual Posted May 13, 2013 Share Posted May 13, 2013 (edited) Expanded sycam0inc's script for even more fun expandcollapse popup#include <Misc.au3> #include <GUIConstants.au3> Global $hGui = GUICreate('Super Simple IDE', 500, 500) Global $aCtrlInfo[7][3] = [['Button', '!b', 0], ['Checkbox', '!c', 0], ['Combo', '!o', 0], ['Edit', '!e', 0], ['Input', '!i', 0], ['List', '!l', 0], ['Radio', '!r', 0]] Global $aCtrls[1] = [0] Global $aDefaultPos[4] = [396,470,90,20] GUISetState(@SW_SHOW, $hGui) For $i = 0 To UBound($aCtrlInfo, 1) - 1 HotKeySet($aCtrlInfo[$i][1], '_add' & $aCtrlInfo[$i][0]) Next While 1 Local $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Local $sText, $sList, $aPos ;unset hotkeys For $i = 0 To UBound($aCtrlInfo, 1) - 1 HotKeySet($aCtrlInfo[$i][1]) Next ;compile list of controls For $i = 1 To $aCtrls[0] $sText = GUICtrlRead($aCtrls[$i]) If Not StringInStr('Button|Edit|Checkbox|Combo|Input|List|Radio', $sText) Then $sText = GUICtrlRead($aCtrls[$i], 1) $aPos = ControlGetPos($hGui, "", $aCtrls[$i]) $sList &= '$id' & $sText & ' = GUICtrlCreate' & StringRegExpReplace($sText, '\d+, '') & '("' & $sText & '", ' & $aPos[0] & ', ' & $aPos[1] & ', ' & $aPos[2] & ', ' & $aPos[3] & ')' & @CRLF Next MsgBox(0, '', $sList) Exit Case $GUI_EVENT_PRIMARYDOWN Local $aCur = GUIGetCursorInfo() Switch $aCur[4] Case $aCtrls[0] To $aCtrls[UBound($aCtrls) - 1] _drag($aCur[4], $hGui, $aCur, 5, 11) EndSwitch Case $GUI_EVENT_SECONDARYDOWN Local $aCur = GUIGetCursorInfo() Switch $aCur[4] Case $aCtrls[0] To $aCtrls[UBound($aCtrls) - 1] _resize($aCur[4], $hGui, $aCur, 2, 5) EndSwitch EndSwitch WEnd Func _drag($ControlID, $hParent, $aMpos, $iSnapGridX = 0, $iSnapGridY = 0) ;set iSnapGrid value = 1 to disable snap to grid If Not $iSnapGridX Then $iSnapGridX = 10 If $iSnapGridX and Not $iSnapGridY Then $iSnapGridY = $iSnapGridX $aPos = ControlGetPos($hParent, "", $ControlID) If @error Then Return -1 $iXOffset = $aMpos[0] - $aPos[0] $iYOffset = $aMpos[1] - $aPos[1] While _IsPressed("01") $aMpos = GUIGetCursorInfo() GUICtrlSetPos($ControlID, Round(($aMpos[0] - $iXOffset) / $iSnapGridX, 0) * $iSnapGridX, Round(($aMpos[1] - $iYOffset) / $iSnapGridY, 0) * $iSnapGridY) WEnd EndFunc Func _resize($ControlID, $hParent, $aMpos, $iSnapGridX = 0, $iSnapGridY = 0) If Not $iSnapGridX Then $iSnapGridX = 10 If $iSnapGridX and Not $iSnapGridY Then $iSnapGridY = $iSnapGridX $aPos = ControlGetPos($hParent, "", $ControlID) If @error Then Return -1 While _IsPressed("02") $aMpos = GUIGetCursorInfo() GUICtrlSetPos($ControlID, $aPos[0], $aPos[1], Round(($aMpos[0] - $aPos[0]) / $iSnapGridX, 0) * $iSnapGridX, Round(($aMpos[1] - $aPos[1]) / $iSnapGridY, 0) * $iSnapGridY) WEnd EndFunc Func _add($iType) $aCtrls[0] += 1 ReDim $aCtrls[$aCtrls[0] + 1] $aCtrlInfo[$iType][2] += 1 Switch $iType Case 0 $aCtrls[$aCtrls[0]] = GUICtrlCreateButton($aCtrlInfo[$iType][0] & $aCtrlInfo[$iType][2], $aDefaultPos[0], $aDefaultPos[1], $aDefaultPos[2], $aDefaultPos[3]) Case 1 $aCtrls[$aCtrls[0]] = GUICtrlCreateCheckbox($aCtrlInfo[$iType][0] & $aCtrlInfo[$iType][2], $aDefaultPos[0], $aDefaultPos[1], $aDefaultPos[2], $aDefaultPos[3]) Case 2 $aCtrls[$aCtrls[0]] = GUICtrlCreateCombo($aCtrlInfo[$iType][0] & $aCtrlInfo[$iType][2], $aDefaultPos[0], $aDefaultPos[1], $aDefaultPos[2], $aDefaultPos[3]) Case 3 $aCtrls[$aCtrls[0]] = GUICtrlCreateEdit($aCtrlInfo[$iType][0] & $aCtrlInfo[$iType][2], $aDefaultPos[0], $aDefaultPos[1], $aDefaultPos[2], $aDefaultPos[3]) Case 4 $aCtrls[$aCtrls[0]] = GUICtrlCreateInput($aCtrlInfo[$iType][0] & $aCtrlInfo[$iType][2], $aDefaultPos[0], $aDefaultPos[1], $aDefaultPos[2], $aDefaultPos[3]) Case 5 $aCtrls[$aCtrls[0]] = GUICtrlCreateList($aCtrlInfo[$iType][0] & $aCtrlInfo[$iType][2], $aDefaultPos[0], $aDefaultPos[1], $aDefaultPos[2], $aDefaultPos[3]) Case 6 $aCtrls[$aCtrls[0]] = GUICtrlCreateRadio($aCtrlInfo[$iType][0] & $aCtrlInfo[$iType][2], $aDefaultPos[0], $aDefaultPos[1], $aDefaultPos[2], $aDefaultPos[3]) EndSwitch EndFunc Func _addButton() _add(0) EndFunc Func _addCheckbox() _add(1) EndFunc Func _addCombo() _add(2) EndFunc Func _addEdit() _add(3) EndFunc Func _addInput() _add(4) EndFunc Func _addList() _add(5) EndFunc Func _addRadio() _add(6) EndFunc Edited May 13, 2013 by Quual Link to comment Share on other sites More sharing options...
MachinistProgrammer Posted May 14, 2013 Author Share Posted May 14, 2013 for technical reasons "(" = "[" (autoit) code goes here (/autoit) All my projects live on github Link to comment Share on other sites More sharing options...
MachinistProgrammer Posted May 14, 2013 Author Share Posted May 14, 2013 this is the project im working on it is almost done expandcollapse popup;#GUIBuilder++.au3#================================== ;File Name.......:GUIBuilder++.au3 ;Creator.........:sean.campbell7 ;Created with....:Created with ISN AutoIt Studio ;Version.........:0.91 BETA ;============================================= Opt("GUIResizeMode", 802) #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <editconstants.au3> #Include <GuiButton.au3> #include <array.au3> #include <misc.au3> #include <TabConstants.au3> $crc = 0 Global $guihandle = "$HGUI" $xx = 0 $au3 = "" $codescreen = GUICreate("compiled code", 350, 350, -1, -1, $WS_CAPTION, $WS_EX_TOPMOST) $code = GUICtrlCreateEdit("", 20, 20, 310, 240, 2048, -1) GUICtrlSetBkColor($code, 0xFFFFFF) $cc = GUICtrlCreateButton("Copy", 220, 280, 100, 30, -1, -1) $ok = GUICtrlCreateButton("Ok", 120, 280, 100, 30, -1, -1) $sc = GUICtrlCreateButton("Save as", 20, 280, 100, 30, -1, -1) Global $ctrldata[1][8], $rdm = 1, $copyobj[7] $toolbar = GUICreate("GUIBuilder++", @DesktopWidth -5, @DesktopWidth -300, 0, 0, 0x00010000 + 0x00020000) $d = GUICtrlCreateButton("Date", 50, 300, 50, 50, -1, -1) $pb = GUICtrlCreateButton("progress bar", 0, 300, 50, 50, -1, -1) $s = GUICtrlCreateButton("slider", 50, 250, 50, 50, -1, -1) $co = GUICtrlCreateButton("combo box", 0, 350, 50, 50, -1, -1) $li = GUICtrlCreateButton("listbox", 50, 400, 50, 50, -1, -1) $g = GUICtrlCreateButton("group", 0, 400, 50, 50, -1, -1) $t = GUICtrlCreateButton("treeview", 50, 350, 50, 50, -1, -1) $i = GUICtrlCreateButton("input", 0, 150, 50, 50, -1, -1) $l = GUICtrlCreateButton("Lable", 50, 100, 50, 50, -1, -1) $b = GUICtrlCreateButton("Button", 0, 100, 50, 50, -1, -1) $c = GUICtrlCreateButton("checkbox", 50, 150, 50, 50, -1, -1) $ic = GUICtrlCreateButton("icon", 0, 250, 50, 50, -1, -1) $im = GUICtrlCreateButton("image", 50, 200, 50, 50, -1, -1) $r = GUICtrlCreateButton("radiobox", 0, 200, 50, 50, -1, -1) $e = GUICtrlCreateButton("edit", 0, 450, 50, 50) $ca = GUICtrlCreateButton("calender", 50, 450, 50, 50) $prop = GUICtrlCreateButton("GUI properties", 0, 50, 100, 50) $iFile = GUICtrlCreateMenu("File") $iFile_Export = GUICtrlCreateMenuItem('E&xport' & @TAB & 'Ctrl + E',$iFile) GUISetState(@SW_SHOW, $toolbar) GUISetState(@SW_MAXIMIZE, $toolbar) Global $lao $GUIprop = GUICreate("Gui Properties", 350, 307, -1, -1, -1, $ws_ex_topmost + $WS_EX_TOOLWINDOW) $tab = GUICtrlCreatetab(20, 20, 310, 240, 1024, -1) GUICtrlCreateTabItem("General") $wintit = GUICtrlCreateInput("", 140, 110, 150, 22, -1, 512) $hgui = GUICtrlCreateInput("HGUI", 140, 80, 150, 22, -1, 512) GUICtrlCreateLabel("Window Title:", 40, 113, 80, 15, -1, -1) GUICtrlSetBkColor(-1, "-2") GUICtrlCreateLabel("Window handle:$", 40, 83, 96, 15, -1, -1) GUICtrlSetBkColor(-1, "-2") $guihig = GUICtrlCreateInput(0, 140, 180, 50, 20, 8192, 512) GUICtrlCreateUpdown(-1) $guiwid = GUICtrlCreateInput("0", 140, 150, 50, 20, 8192, 512) GUICtrlCreateUpdown(-1) GUICtrlCreateLabel("GUI Hight:", 40, 183, 59, 15, -1, -1) GUICtrlSetBkColor(-1, "-2") GUICtrlCreateLabel("Px", 200, 183, 50, 15, -1, -1) GUICtrlSetBkColor(-1, "-2") GUICtrlCreateLabel("GUI Width:", 40, 153, 59, 15, -1, -1) GUICtrlSetBkColor(-1, "-2") GUICtrlCreateLabel("Px", 200, 153, 50, 15, -1, -1) GUICtrlSetBkColor(-1, "-2") GUICtrlCreateTabItem("") GUICtrlCreateLabel("GUI Colour", 40, 213, 71, 15, -1, -1) GUICtrlSetBkColor(-1, "-2") $colour = GUICtrlCreateInput("0xF0F0F0", 140, 210, 75, 20, -1, 512) GUICtrlCreateButton("Colour", 220, 210, 50, 20, -1, -1) $gcl = GUICtrlCreateButton("Cancel", 180, 270, 100, 30, -1, -1) $gok = GUICtrlCreateButton("Ok", 80, 270, 100, 30, -1, -1) $ctrledit = GUICreate("Control editor", 230, 400, @DesktopWidth / 4 * 3, -1, $WS_CAPTION, $WS_EX_TOPMOST) $apply = GUICtrlCreateButton("apply", 15, 340, 100, 30) $compile = GUICtrlCreateButton("compile", 115, 340, 100, 30) GUICtrlCreateTab(10, 30, 210, 300, $TCS_VERTICAL) GUICtrlCreateTabItem("General") $xpos = GUICtrlCreateInput("", 60, 40, 40, 22, $ES_NUMBER) GUICtrlCreateUpdown($xpos) GUICtrlCreateLabel("X", 50, 42, 22, 22) $ypos = GUICtrlCreateInput("", 120, 40, 40, 22, $ES_NUMBER) GUICtrlCreateUpdown($ypos) GUICtrlCreateLabel("Y", 110, 42, 22, 22) $name = GUICtrlCreateInput("", 60, 100, 100, 22) GUICtrlCreateLabel("Data", 60, 85, 50, 22) GUICtrlCreateLabel("handle", 60, 125, 50, 22) $handle = GUICtrlCreateInput("", 60, 144, 100, 22) GUICtrlCreateTabItem("Apearance") $width1 = GUICtrlCreateInput("", 60, 40, 40, 22, $ES_NUMBER) GUICtrlCreateUpdown($width1) $hight1 = GUICtrlCreateInput("", 120, 40, 40, 22, $ES_NUMBER) GUICtrlCreateUpdown($hight1) GUICtrlCreateTabItem("Style") GUICtrlCreateTabItem("StyleEx") GUICtrlCreateTabItem("State") Global $key[1][2] GUISetState(@SW_SHOW, $ctrledit) $board = GUICreate("new window", 350, 350, -1, -1, $WS_OVERLAPPEDWINDOW, $WS_EX_TOPMOST + $WS_EX_TOOLWINDOW) $del = GUICtrlCreateDummy() $copy = GUICtrlCreateDummy() $paste = GUICtrlCreateDummy() Global $keys[3][2] $keys[0][1] = $del $keys[0][0] = "{del}" $keys[1][1] = $copy $keys[1][0] = "^c" $keys[2][1] = $paste $keys[2][0] = "^v" GUISetAccelerators($keys) GUISetState(@SW_SHOW, $board) While 1 $cMsg = GUIGetCursorInfo($board) $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $ok GUISetState(@SW_HIDE, $codescreen) GUISetState(@SW_SHOW, $board) $crc = 0 Case $prop $oo = WinGetClientSize($board) GUICtrlSetData($wintit, WinGetTitle($board)) GUICtrlSetData($guihig, $oo[1]) GUICtrlSetData($guiwid, $oo[0]) GUISetState(@SW_SHOW, $GUIprop) $xx = 1 Case $gok WinMove($board, "", @DesktopWidth / 2 - GUICtrlRead($guihig) / 2, @DesktopHeight / 2 - GUICtrlRead($guiwid) / 2, GUICtrlRead($guiwid) + 16, GUICtrlRead($guihig) + 34) WinSetTitle($board, "", GUICtrlRead($wintit)) $guihandle = "$" & GUICtrlRead($hgui) $xx = 0 GUISetState(@SW_Hide, $GUIprop) GUISetState(@SW_SHOW, $board) Case $gcl GUISetState(@SW_hide, $GUIprop) GUISetState(@SW_SHOW, $board) $xx = 0 Case $sc GUISetState(@SW_HIDE, $codescreen) GUISetState(@SW_HIDE, $board) GUISetState(@SW_HIDE, $ctrledit) $dat = FilesaveDialog("Save script", "", "Autoit 3 script files(*.au3)") If $dat <> "" Then FileWrite($dat & ".au3", $au3) endif $crc = 0 GUISetState(@SW_SHOW, $ctrledit) GUISetState(@SW_SHOW, $board) Case $iFile_Export _compile(0) GUISetState(@SW_HIDE, $codescreen) GUISetState(@SW_HIDE, $board) GUISetState(@SW_HIDE, $ctrledit) $dat = FilesaveDialog("Save script", "", "Autoit 3 script files(*.au3)") If $dat <> "" Then $id = FileOpen($dat & ".au3",2) FileWrite($id, $au3) endif GUISetState(@SW_SHOW, $ctrledit) GUISetState(@SW_SHOW, $board) Case $cc ClipPut($au3) Case $width1, $hight1 _itemsetsize(GUICtrlRead($width1), GUICtrlRead($hight1)) Case $xpos, $ypos _itemsetpos(GUICtrlRead($xpos), GUICtrlRead($ypos)) Case $name _itemsetname(GUICtrlRead($name)) Case $apply _itemsetname(GUICtrlRead($name)) _itemsetpos(GUICtrlRead($xpos), GUICtrlRead($ypos)) _itemsetsize(GUICtrlRead($width1), GUICtrlRead($hight1)) If GUICtrlRead($handle) <> "" Then For $i = 0 to UBound($ctrldata) - 1 If $ctrldata[$i][0] = $lao and $lao <> "" Then $ctrldata[$i][7] = "$" & GUICtrlRead($handle) EndIf Next EndIf Case $del _deleteitem($lao) Case $copy _copy() Case $paste _paste() Case -7, -11 If $cMsg[4] > 0 Then _guictrldrag($cMsg[4], $board) Case $b _createitem("button") Case $l _createitem("label") case $pb _createitem("progress") case $i _createitem("input") Case $e _createitem("edit") Case $c _createitem("checkbox") Case $r _createitem("radiobox") Case $s _createitem("slider") Case $ic _createitem("icon") case $im _createitem("image") Case $d _createitem("date") case $ca _createitem("calender") Case $co _createitem("combo") Case $li _createitem("listbox") case $t _createitem("tree") Case $g _createitem("group") Case $compile _compile() Case $GUI_EVENT_MINIMIZE GUISetState(@SW_HIDE, $board) GUISetState(@SW_HIDE, $ctrledit) GUISetState(@SW_HIDE, $codescreen) GUISetState(@SW_HIDE, $GUIprop) Case $GUI_EVENT_RESTORE GUISetState(@SW_show, $ctrledit) GUISetState(@SW_Show, $board) If $crc Then GUISetState(@SW_SHOW, $codescreen) If $xx Then GUISetState(@SW_SHOW, $GUIprop) EndSwitch WinSetOnTop($ctrledit, "", 1) WEnd Func _guictrldrag($control, $hgui) $cbutton = $control $lao = $control $cInfo = GUIGetCursorInfo($hGUI) $aPos = ControlGetPos($hGUI, "", $cButton) $iSubtractX = $cInfo[0] - $aPos[0] $iSubtractY = $cInfo[1] - $aPos[1] Sleep(200) $cInfo = GUIGetCursorInfo($hGUI) If $cInfo[2] = 1 Then $cInfo = GUIGetCursorInfo($hGUI) If $cInfo[4] = $cButton Then Do $cInfo = GUIGetCursorInfo($hGUI) ControlMove($hGUI, "", $cButton, $cInfo[0] - $iSubtractX, $cInfo[1] - $iSubtractY) For $i = 0 to UBound($ctrldata) - 1 If $ctrldata[$i][0] = $control and $control <> "" Then $ctrldata[$i][1] = $cInfo[0] - $iSubtractX $ctrldata[$i][2] = $cInfo[1] - $iSubtracty EndIf Next For $i = 0 to UBound($ctrldata) - 1 If $ctrldata[$i][0] = $lao and $lao <> "" Then GUICtrlSetData($xpos, $ctrldata[$i][1]) GUICtrlSetData($ypos, $ctrldata[$i][2]) GUICtrlSetData($width1, $ctrldata[$i][3]) GUICtrlSetData($hight1, $ctrldata[$i][4]) GUICtrlSetData($name, $ctrldata[$i][5]) GUICtrlSetData($handle, StringTrimLeft($ctrldata[$i][7], 1)) EndIf next Until Not $cInfo[2] EndIf Else return 0 EndIf Do Until GUIGetMsg() = 0 _itemsetpos(_round($cInfo[0] - $iSubtractX), _round($cInfo[1] - $iSubtractY)) EndFunc Func _createitem($type, $x = 0, $y = 0, $width = -1, $hight = -1) $rdm += 1 Switch $type Case "button" If $width = -1 then $width = 50 If $hight = -1 then $hight = 30 $ct = GUICtrlCreateButton("my text", $x, $y, $width, $hight) ReDim $ctrldata[$rdm + 1][8] $ctrldata[$rdm][0] = $ct $ctrldata[$rdm][1] = $x $ctrldata[$rdm][2] = $y $ctrldata[$rdm][3] = $width $ctrldata[$rdm][4] = $hight $ctrldata[$rdm][5] = "my text" Case "label" If $width = -1 then $width = 100 If $hight = -1 then $hight = 20 $ct = GUICtrlCreateLabel("my text", $x, $y, $width, $hight) ReDim $ctrldata[$rdm + 1][8] $ctrldata[$rdm][0] = $ct $ctrldata[$rdm][1] = $x $ctrldata[$rdm][2] = $y $ctrldata[$rdm][3] = $width $ctrldata[$rdm][4] = $hight $ctrldata[$rdm][5] = "my text" Case "input" If $width = -1 then $width = 100 If $hight = -1 then $hight = 20 $ct = GUICtrlCreateinput("my text", $x, $y, $width, $hight) ReDim $ctrldata[$rdm + 1][8] $ctrldata[$rdm][0] = $ct $ctrldata[$rdm][1] = $x $ctrldata[$rdm][2] = $y $ctrldata[$rdm][3] = $width $ctrldata[$rdm][4] = $hight $ctrldata[$rdm][5] = "my text" Case "Edit" If $width = -1 then $width = 150 If $hight = -1 then $hight = 150 $ct = GUICtrlCreateEdit("my text", $x, $y, $width, $hight) ReDim $ctrldata[$rdm + 1][8] $ctrldata[$rdm][0] = $ct $ctrldata[$rdm][1] = $x $ctrldata[$rdm][2] = $y $ctrldata[$rdm][3] = $width $ctrldata[$rdm][4] = $hight $ctrldata[$rdm][5] = "my text" Case "progress" If $width = -1 then $width = 100 If $hight = -1 then $hight = 20 $ct = GUICtrlCreateProgress($x, $y, $width, $hight) GUICtrlSetData(-1, 50) ReDim $ctrldata[$rdm + 1][8] $ctrldata[$rdm][0] = $ct $ctrldata[$rdm][1] = $x $ctrldata[$rdm][2] = $y $ctrldata[$rdm][3] = $width $ctrldata[$rdm][4] = $hight $ctrldata[$rdm][5] = 50 Case "checkbox" If $width = -1 then $width = 50 If $hight = -1 then $hight = 20 $ct = GUICtrlCreateCheckbox("my text", $x, $y, $width, $hight) ReDim $ctrldata[$rdm + 1][8] $ctrldata[$rdm][0] = $ct $ctrldata[$rdm][1] = $x $ctrldata[$rdm][2] = $y $ctrldata[$rdm][3] = $width $ctrldata[$rdm][4] = $hight $ctrldata[$rdm][5] = "my text" Case "radiobox" If $width = -1 then $width = 50 If $hight = -1 then $hight = 20 $ct = GUICtrlCreateRadio("my text", $x, $y, $width, $hight) ReDim $ctrldata[$rdm + 1][8] $ctrldata[$rdm][0] = $ct $ctrldata[$rdm][1] = $x $ctrldata[$rdm][2] = $y $ctrldata[$rdm][3] = $width $ctrldata[$rdm][4] = $hight $ctrldata[$rdm][5] = "my text" Case "slider" If $width = -1 then $width = 150 If $hight = -1 then $hight = 20 $ct = GUICtrlCreateSlider($x, $y, $width, $hight) ReDim $ctrldata[$rdm + 1][8] $ctrldata[$rdm][0] = $ct $ctrldata[$rdm][1] = $x $ctrldata[$rdm][2] = $y $ctrldata[$rdm][3] = $width $ctrldata[$rdm][4] = $hight $ctrldata[$rdm][5] = 0 Case "icon" If $width = -1 then $width = 50 If $hight = -1 then $hight = 50 $ct = GUICtrlCreateIcon(@scriptdir & "\dummy.ico", -1, $x, $y, $width, $hight) ReDim $ctrldata[$rdm + 1][8] $ctrldata[$rdm][0] = $ct $ctrldata[$rdm][1] = $x $ctrldata[$rdm][2] = $y $ctrldata[$rdm][3] = $width $ctrldata[$rdm][4] = $hight $ctrldata[$rdm][5] = "my text" Case "image" If $width = -1 then $width = 50 If $hight = -1 then $hight = 50 $ct = GUICtrlCreatePic(@scriptdir & "\dummy.bmp", $x, $y, $width, $hight) ReDim $ctrldata[$rdm + 1][8] $ctrldata[$rdm][0] = $ct $ctrldata[$rdm][1] = $x $ctrldata[$rdm][2] = $y $ctrldata[$rdm][3] = $width $ctrldata[$rdm][4] = $hight $ctrldata[$rdm][5] = "" Case "date" If $width = -1 then $width = 150 If $hight = -1 then $hight = 20 $ct = GUICtrlCreateDate("", $x, $y, $width, $hight) ReDim $ctrldata[$rdm + 1][8] $ctrldata[$rdm][0] = $ct $ctrldata[$rdm][1] = $x $ctrldata[$rdm][2] = $y $ctrldata[$rdm][3] = $width $ctrldata[$rdm][4] = $hight $ctrldata[$rdm][5] = "" Case "calender" If $width = -1 then $width = 180 If $hight = -1 then $hight = 164 $ct = GUICtrlCreateMonthCal("", $x, $y, $width, $hight) ReDim $ctrldata[$rdm + 1][8] $ctrldata[$rdm][0] = $ct $ctrldata[$rdm][1] = $x $ctrldata[$rdm][2] = $y $ctrldata[$rdm][3] = $width $ctrldata[$rdm][4] = $hight $ctrldata[$rdm][5] = "" Case "combo" If $width = -1 then $width = 50 If $hight = -1 then $hight = 30 $ct = GUICtrlCreateCombo("my text", $x, $y, $width, $hight) GUICtrlSetData(-1, "item1|item2|item3", "item1") ReDim $ctrldata[$rdm + 1][8] $ctrldata[$rdm][0] = $ct $ctrldata[$rdm][1] = $x $ctrldata[$rdm][2] = $y $ctrldata[$rdm][3] = $width $ctrldata[$rdm][4] = $hight $ctrldata[$rdm][5] = "item1|item2|item3" Case "listbox" If $width = -1 then $width = 150 If $hight = -1 then $hight = 150 $ct = GUICtrlCreatelist("my text", $x, $y, $width, $hight) ReDim $ctrldata[$rdm + 1][8] $ctrldata[$rdm][0] = $ct $ctrldata[$rdm][1] = $x $ctrldata[$rdm][2] = $y $ctrldata[$rdm][3] = $width $ctrldata[$rdm][4] = $hight $ctrldata[$rdm][5] = "my text" Case "tree" If $width = -1 then $width = 150 If $hight = -1 then $hight = 150 $ct = GUICtrlCreateTreeView("my text", $x, $y, $width, $hight) $td = GUICtrlCreateTreeViewItem("my text", $ct) GUICtrlCreateTreeViewItem("sub", $td) ReDim $ctrldata[$rdm + 1][8] $ctrldata[$rdm][0] = $ct $ctrldata[$rdm][1] = $x $ctrldata[$rdm][2] = $y $ctrldata[$rdm][3] = $width $ctrldata[$rdm][4] = $hight $ctrldata[$rdm][5] = "my text" Case "group" If $width = -1 then $width = 150 If $hight = -1 then $hight = 150 $ct = GUICtrlCreateGroup("my text", $x, $y, $width, $hight) ReDim $ctrldata[$rdm + 1][8] $ctrldata[$rdm][0] = $ct $ctrldata[$rdm][1] = $x $ctrldata[$rdm][2] = $y $ctrldata[$rdm][3] = $width $ctrldata[$rdm][4] = $hight $ctrldata[$rdm][5] = "my text" EndSwitch GUICtrlSetCursor($ct, 9) $ctrldata[$rdm][6] = $type $ctrldata[$rdm][7] = "$" & $type & $rdm - 1 $lao = $ct For $i = 0 to UBound($ctrldata) - 1 If $ctrldata[$i][0] = $lao and $lao <> "" Then GUICtrlSetData($xpos, $ctrldata[$i][1]) GUICtrlSetData($name, $ctrldata[$i][5]) GUICtrlSetData($width1, $ctrldata[$i][3]) GUICtrlSetData($hight1, $ctrldata[$i][4]) GUICtrlSetData($ypos, $ctrldata[$i][2]) GUICtrlSetData($handle, StringTrimLeft($ctrldata[$i][7], 1)) EndIf Next ControlFocus($board, "", GUICtrlGetHandle($ct)) EndFunc Func _deleteitem($item) GUICtrlDelete($item) For $i = 0 to UBound($ctrldata) - 1 If $ctrldata[$i][0] = $item and $item <> "" Then _ArrayDelete($ctrldata, $i) $lao = $ctrldata[$i - 1][0] GUICtrlSetData($xpos, $ctrldata[$i - 1][1]) GUICtrlSetData($name, $ctrldata[$i - 1][5]) GUICtrlSetData($width1, $ctrldata[$i - 1][3]) GUICtrlSetData($hight1, $ctrldata[$i - 1][4]) GUICtrlSetData($ypos, $ctrldata[$i - 1][2]) GUICtrlSetData($handle, StringTrimLeft($ctrldata[$i - 1][7], 1)) EndIf Next ControlFocus($board, "", $item) EndFunc Func _itemsetpos($x, $y, $item = $lao) GUICtrlSetPos($item, $x, $y) for $i = 0 to UBound($ctrldata) - 1 If $ctrldata[$i][0] = $item and $item <> "" Then $ctrldata[$i][1] = $x $ctrldata[$i][2] = $y GUICtrlSetData($xpos, $ctrldata[$i][1]) GUICtrlSetData($ypos, $ctrldata[$i][2]) EndIf Next EndFunc Func _itemsetname($name, $item = $lao) GUICtrlSetdata($item, $name) for $i = 0 to UBound($ctrldata) - 1 If $ctrldata[$i][0] = $item and $item <> "" Then $ctrldata[$i][5] = $name EndIf Next EndFunc Func _itemsetsize($x, $y, $item = $lao) for $i = 0 to UBound($ctrldata) - 1 If $ctrldata[$i][0] = $item and $item <> "" Then $ctrldata[$i][3] = $x $ctrldata[$i][4] = $y GUICtrlSetPos($item, $ctrldata[$i][1], $ctrldata[$i][2], $x, $y) EndIf Next EndFunc Func _round($number) If $number < 0 then Return 0 Global $n = $Number $ilen = StringLen($n) if StringTrimLeft($n, $ilen - 1) = 5 or StringTrimleft($n, $ilen - 1) = 0 Then Return $n if StringTrimLeft($n, $ilen - 1) > 5 Then Do $ilen = StringLen($n) if StringTrimLeft($n, $ilen - 1) <= 7 Then ;so that 7 will become 5 not 10 $n -= 1 ElseIf StringTrimLeft($n, $ilen - 1) >= 7 Then $n += 1 EndIf $ilen = StringLen($n) Until StringTrimLeft($n, $ilen - 1) = 5 or StringTrimleft($n, $ilen - 1) = 0 Else Do $ilen = StringLen($n) if StringTrimLeft($n, $ilen - 1) < 3 Then ;so that 3 will become 5 not 0 $n -= 1 ElseIf StringTrimLeft($n, $ilen - 1) >= 3 Then $n += 1 EndIf $ilen = StringLen($n) Until StringTrimLeft($n, $ilen - 1) = 5 or StringTrimleft($n, $ilen - 1) = 0 EndIf Return $n EndFunc Func _copy($item = $lao) For $i = 0 to UBound($ctrldata) - 1 If $ctrldata[$i][0] = $item and $item <> "" Then $copyobj[1] = $ctrldata[$i][1] $copyobj[2] = $ctrldata[$i][2] $copyobj[3] = $ctrldata[$i][3] $copyobj[4] = $ctrldata[$i][4] $copyobj[5] = $ctrldata[$i][5] $copyobj[6] = $ctrldata[$i][6] EndIf Next EndFunc Func _paste() If $copyobj[1] <> "" Then _createitem($copyobj[6], _round($cMsg[0]), _round($cMsg[1]), $copyobj[3], $copyobj[4]) _itemsetname($copyobj[5]) GUICtrlSetData($name, $copyobj[5]) EndIf EndFunc Func _compile($iflag=1) Global $au3 = ";created with guibuilder++" & @crlf & "#include <GUIConstantsEx.au3>" & @CRLF & "#include <WindowsConstants.au3>" & @CRLF $size = WinGetClientSize($board) $au3 &= $guihandle & " = GUICreate('" & WinGetTitle($board) & "'," & $size[0] & "," & $size[1] & ")" & @CRLF For $i = 0 To UBound($ctrldata) - 1 Switch $ctrldata[$i][6] Case "button" $au3 &= $ctrldata[$i][7] & " = GUICtrlCreateButton('" & $ctrldata[$i][5] & "'," & $ctrldata[$i][1] & "," & $ctrldata[$i][2] & "," & $ctrldata[$i][3] & "," & $ctrldata[$i][4] & ")" & @crlf Case "label" $au3 &= $ctrldata[$i][7] & " = GUICtrlCreateLabel('" & $ctrldata[$i][5] & "'," & $ctrldata[$i][1] & "," & $ctrldata[$i][2] & "," & $ctrldata[$i][3] & "," & $ctrldata[$i][4] & ")" & @crlf Case "input" $au3 &= $ctrldata[$i][7] & " = GUICtrlCreateInput('" & $ctrldata[$i][5] & "'," & $ctrldata[$i][1] & "," & $ctrldata[$i][2] & "," & $ctrldata[$i][3] & "," & $ctrldata[$i][4] & ")" & @crlf Case "Edit" $au3 &= $ctrldata[$i][7] & " = GUICtrlCreateEdit('" & $ctrldata[$i][5] & "'," & $ctrldata[$i][1] & "," & $ctrldata[$i][2] & "," & $ctrldata[$i][3] & "," & $ctrldata[$i][4] & ")" & @crlf Case "progress" $au3 &= $ctrldata[$i][7] & " = GUICtrlCreateProgress('" & $ctrldata[$i][5] & "'," & $ctrldata[$i][1] & "," & $ctrldata[$i][2] & "," & $ctrldata[$i][3] & "," & $ctrldata[$i][4] & ")" & @crlf Case "checkbox" $au3 &= $ctrldata[$i][7] & " = GUICtrlCreateCheckbox('jmn" & $ctrldata[$i][5] & "'," & $ctrldata[$i][1] & "," & $ctrldata[$i][2] & "," & $ctrldata[$i][3] & "," & $ctrldata[$i][4] & ")" & @crlf Case "radiobox" $au3 &= $ctrldata[$i][7] & " = GUICtrlCreateRadio('" & $ctrldata[$i][5] & "'," & $ctrldata[$i][1] & "," & $ctrldata[$i][2] & "," & $ctrldata[$i][3] & "," & $ctrldata[$i][4] & ")" & @crlf Case "slider" $au3 &= $ctrldata[$i][7] & " = GUICtrlCreateSlider('" & $ctrldata[$i][1] & "'," & $ctrldata[$i][2] & "," & $ctrldata[$i][3] & "," & $ctrldata[$i][4] & ")" & @crlf & "guictrlsetdata(-1," & $ctrldata[$i][5] & ")" & @crlf Case "icon" $au3 &= $ctrldata[$i][7] & " = GUICtrlCreateIcon('" & $ctrldata[$i][5] & "',-1," & $ctrldata[$i][1] & "," & $ctrldata[$i][2] & "," & $ctrldata[$i][3] & "," & $ctrldata[$i][4] & ")" & @crlf Case "image" $au3 &= $ctrldata[$i][7] & " = GUICtrlCreatePic('" & $ctrldata[$i][5] & "'," & $ctrldata[$i][1] & "," & $ctrldata[$i][2] & "," & $ctrldata[$i][3] & "," & $ctrldata[$i][4] & ")" & @crlf Case "date" $au3 &= $ctrldata[$i][7] & " = GUICtrlCreateDate('" & $ctrldata[$i][5] & "'," & $ctrldata[$i][1] & "," & $ctrldata[$i][2] & "," & $ctrldata[$i][3] & "," & $ctrldata[$i][4] & ")" & @crlf Case "calender" $au3 &= $ctrldata[$i][7] & " = GUICtrlCreateMonthCal('" & $ctrldata[$i][5] & "'," & $ctrldata[$i][1] & "," & $ctrldata[$i][2] & "," & $ctrldata[$i][3] & "," & $ctrldata[$i][4] & ")" & @crlf Case "combo" $au3 &= $ctrldata[$i][7] & " = GUICtrlCreateCombo('" & $ctrldata[$i][5] & "'," & $ctrldata[$i][1] & "," & $ctrldata[$i][2] & "," & $ctrldata[$i][3] & "," & $ctrldata[$i][4] & ")" & @crlf Case "listbox" $au3 &= $ctrldata[$i][7] & " = GUICtrlCreateList('" & $ctrldata[$i][5] & "'," & $ctrldata[$i][1] & "," & $ctrldata[$i][2] & "," & $ctrldata[$i][3] & "," & $ctrldata[$i][4] & ")" & @crlf Case "tree" $au3 &= $ctrldata[$i][7] & " = GUICtrlCreateTreeView('" & $ctrldata[$i][5] & "'," & $ctrldata[$i][1] & "," & $ctrldata[$i][2] & "," & $ctrldata[$i][3] & "," & $ctrldata[$i][4] & ")" & @crlf Case "group" $au3 &= $ctrldata[$i][7] & " = GUICtrlCreateGroup('" & $ctrldata[$i][5] & "'," & $ctrldata[$i][1] & "," & $ctrldata[$i][2] & "," & $ctrldata[$i][3] & "," & $ctrldata[$i][4] & ")" & @crlf EndSwitch next $au3 &= "GUISetState()" & @CRLF & "while 1" & @CRLF & @TAB & "Switch GUIGetMsg()" & @CRLF & @TAB & @TAB & "Case -3" & @CRLF & @TAB & "Exit" & @crlf & @TAB & "EndSwitch" & @CRLF & "WEnd" if $iflag Then GUICtrlSetData($code, $au3) GUISetState(@SW_SHOW, $codescreen) EndIf EndFunc mesale0077 1 All my projects live on github Link to comment Share on other sites More sharing options...
PhoenixXL Posted May 15, 2013 Share Posted May 15, 2013 you can make use of a For Next loop with control names rather than such a long Switch Statement. My code: PredictText: Predict Text of an Edit Control Like Scite. Remote Gmail: Execute your Scripts through Gmail. StringRegExp:Share and learn RegExp.Run As System: A command line wrapper around PSEXEC.exe to execute your apps scripts as System (LSA). Database: An easier approach for _SQ_LITE beginners. MathsEx: A UDF for Fractions and LCM, GCF/HCF. FloatingText: An UDF for make your text floating. Clipboard Extendor: A clipboard monitoring tool. Custom ScrollBar: Scroll Bar made with GDI+, user can use bitmaps instead. RestrictEdit_SRE: Restrict text in an Edit Control through a Regular Expression. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now