Что нового

Генератор кнопок v.1.5

GUIMish

Знающий
Сообщения
122
Репутация
12
Эту программку я попробовал сделать для более легкого создания кнопок!
:smile:

Код:
;~ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
;~ Program Name:  Producer button v.1.5
;~ Author:        GUIMish
;~ Version:       1.5
;~ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>
#include <WinAPI.au3>
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <ProgressConstants.au3>

Opt('MustDeclareVars', 1)
	
Global $Window,  $Msg,  $ButtonChild
Global $TITLE, $L, $R, $NdSv, $Nno, $NdSn, $NSz, $Ndno, $NSl, $NSr, $OFile, $Open
Global $BTNPREVIEW, $BTNCOPY, $BTNEXIT
Global $LRC, $NStro, $hid, $mCOPY
Global $Button, $optFirst, $iFlag, $iCo, $iCod, $nad, $nnb, $nnt, $raz, $xy, $NSm,  $NSp
Global $filemenu, $mExit, $Set, $lang, $lrus, $leng, $help, $info
   Global $other, $clk, $ctk, $CC, $CL, $hChild
$Window = GUICreate("Producer button v.1.5", 350, 280, -1, -1, BitOR($WS_SYSMENU, $DS_CONTEXTHELP))

;~          -- Меню --------------------------------------------------
			$filemenu = GUICtrlCreateMenu ("Файл")
			$mCOPY = GUICtrlCreateMenuitem ("Получить код", $filemenu)
			$mExit = GUICtrlCreateMenuitem ( "Выход", $filemenu)

			$Set = GUICtrlCreateMenu ("Настройки")
			$lang = GUICtrlCreateMenu ( "Язык", $Set)
			$lrus = GUICtrlCreateMenuitem ( "Русский", $lang)
			$leng = GUICtrlCreateMenuitem ( "English", $lang)

			$help = GUICtrlCreateMenu ("Помощь")
			$info = GUICtrlCreateMenuitem ( "О Программе", $help)
;~ 			----------------------------------------------------------

   $nad = GUICtrlCreateLabel("Надпись:", 10, 7, 60)
   $TITLE = GUICtrlCreateInput("", 70, 5, 100, 20)
		 GUICtrlSetState(-1, $GUI_FOCUS)
		 
   
   
   
   $nnt = GUICtrlCreateGroup("Положение текста X", 180, 5, 150, 80)
   $Ndno = GUICtrlCreateRadio("Стандартно", 185, 20, 120, 20)
   GUICtrlSetState(-1, $GUI_CHECKED)
   $NSl = GUICtrlCreateRadio("Надпись Влево", 185, 40, 120, 20)
   $NSr = GUICtrlCreateRadio("Надпись Вправо", 185, 60, 120, 20)
   GUICtrlCreateGroup("", -99, -99, 1, 1)
   
   $nnb = GUICtrlCreateGroup("Положение текста Y", 180, 90, 150, 80)
   $Nno = GUICtrlCreateRadio("Стандартно", 185, 105, 80, 20)
   GUICtrlSetState(-1, $GUI_CHECKED)
   $NdSv = GUICtrlCreateRadio("Надпись вверху", 185, 125, 110, 20)
   $NdSn = GUICtrlCreateRadio("Надпись внизу", 185, 145, 100, 20)
   GUICtrlCreateGroup("", -99, -99, 1, 1)
   

   $other = GUICtrlCreateGroup("Остальное", 10, 35, 160, 57)
   $NStro = GUICtrlCreateCheckbox("Текст в несколько строк", 15, 46, 150, 25)
   $NSz = GUICtrlCreateCheckbox("Кнопка по умолчанию", 15, 67)
   GUICtrlCreateGroup("", -99, -99, 1, 1)
   
   
   $raz = GUICtrlCreateGroup("Размер:", 180, 175, 150, 50)
   GUISetFont(6, 300, 0)
   GUICtrlCreateLabel("X", 215, 187, 5)
   GUICtrlCreateLabel("Y", 270, 187)
   GUISetFont(8.5, 300, 0)
   $L = GUICtrlCreateInput("", 215, 195, 50, 20)
   $R = GUICtrlCreateInput("", 269, 195, 50, 20)
   GUICtrlCreateGroup("", -99, -99, 1, 1)
 

   $BTNPREVIEW = GUICtrlCreateButton("Пред... просмотр", 10, 140, 100)
   $BTNCOPY = GUICtrlCreateButton("Получить код", 10, 170, 100)
   $BTNEXIT = GUICtrlCreateButton("Выход", 10, 200, 100)
   


GUISetState()

While 1
   $MSG = GUIGetMsg()
   Select
	  Case $MSG = $GUI_EVENT_CLOSE Or $MSG = $BTNEXIT Or $MSG = $mExit ; Пораметры выхода
		 ExitLoop
	  Case $MSG = $BTNPREVIEW ; Кнопка Превью
		 _ChildDlg($Window)
	  Case $MSG = $BTNCOPY 
		 _CopyCode($Window)
	  Case $MSG = $mCOPY 
		 _CopyCode($Window)
		 
;~ 	  - Остальное ---------------------------------
	  Case $MSG = $NStro ; В неколько строчек
		  GUICtrlSetState($optFirst, $BS_MULTILINE)
;~ 	  ---------------------------------------------
   
	  Case $MSG = $lrus
		 _LenRusCode($iCo)
	  Case $MSG = $leng
		 _LenEngCode($iCod)
	  Case $MSG = $info
		 _infoCode($Window)
						
    EndSelect
WEnd

Func _ChildDlg($hWnd = 0)
       Local $hChild, $Msg
   
    GUISetState(@SW_DISABLE, $hWnd)
    $hChild = GUICreate('Preview', 450, 400, -1, -1, BitOR($GUI_SS_DEFAULT_GUI,$WS_SIZEBOX,$WS_THICKFRAME), BitOR($WS_EX_TOOLWINDOW,$WS_EX_WINDOWEDGE), $hWnd)
    GUICtrlCreateButton("&X", -50, 0, 20)
    GUICtrlCreateButton(GUICtrlRead($TITLE), 100, 100, GUICtrlRead($L), GUICtrlRead($R), _SetFlag($iFlag))
   
    GUISetState()
   
    While 1
        $Msg = GUIGetMsg()
        Switch $Msg
            Case $GUI_EVENT_CLOSE
                ExitLoop
        EndSwitch
    WEnd
   
    GUISetState(@SW_ENABLE, $hWnd)
    GUIDelete($hChild)
 EndFunc
 
 
Func _CopyCode($hWnd = 0)
       Local $hChild, $Msg, $ButtonExit, $Code, $iCode, $clk, $ctk, $iLa, $iLo, $CC, $CL
   
    GUISetState(@SW_DISABLE, $hWnd)
    $hChild = GUICreate('Generating code', 430, 110, -1, -1, -1, -1, $hWnd)
    $Code = GUICtrlCreateEdit (_Code($iCode), 5, 5, 420, 100)

    GUISetState()
   
    While 1
        $Msg = GUIGetMsg()
        Switch $Msg
            Case $GUI_EVENT_CLOSE
                ExitLoop
        EndSwitch
    WEnd
   
    GUISetState(@SW_ENABLE, $hWnd)
    GUIDelete($hChild)
 EndFunc
 
 Func _infoCode($hWnd = 0) 
       Local $hChild, $Msg, $ButtonExit, $Code, $Ex
   
    GUISetState(@SW_DISABLE, $hWnd)
    $hChild = GUICreate('About', 210, 120, -1, -1, BitOR($WS_EX_MDICHILD, $WS_EX_APPWINDOW), -1, $hWnd)
    
	GUISetFont(15)
	GUICtrlCreateLabel ("Producer button", 5, 12)
	GUISetFont(8.5)
	$Ex = GUICtrlCreateButton("Button", 150, 10, 50, 30)
	GUISetFont(8)
	GUICtrlCreateLabel ("Program Name:    Producer button v.1.5", 5, 60, 200, 100)
	GUICtrlCreateLabel ("Author:                 GUIMish", 5, 70, 200, 100)
	GUICtrlCreateLabel ("Version:                1.5", 5, 80, 200, 100)
	
    GUISetState()
   
    While 1
        $Msg = GUIGetMsg()
        Switch $Msg
            Case $GUI_EVENT_CLOSE, $Ex
                ExitLoop
        EndSwitch
    WEnd
   
    GUISetState(@SW_ENABLE, $hWnd)
    GUIDelete($hChild)
 EndFunc
 
 Func _SetFlag($iFlag) 
	$iFlag = 0
	
	  Select
		 Case GUICtrlRead ($NdSv) = $GUI_CHECKED
		 $iFlag = $iFlag + $BS_TOP
		 Case GUICtrlRead ($NdSn) = $GUI_CHECKED
		 $iFlag = $iFlag + $BS_BOTTOM
	  EndSelect
	
	  Select
		 Case GUICtrlRead ($NSl) = $GUI_CHECKED
		 $iFlag = $iFlag + $BS_LEFT
		 Case GUICtrlRead ($NSr) = $GUI_CHECKED
		 $iFlag = $iFlag + $BS_RIGHT
	  EndSelect
	
	  Select
		 Case GUICtrlRead ($NStro) = $GUI_CHECKED
		 $iFlag = $iFlag + $BS_MULTILINE
		 Case GUICtrlRead ($NSz) = $GUI_CHECKED
		 $iFlag = $iFlag + $GUI_CHECKED
		 Case GUICtrlRead ($NSm) = $GUI_CHECKED
		 $iFlag = $iFlag + $WS_DLGFRAME
		 Case GUICtrlRead ($NSp) = $GUI_CHECKED
		 $iFlag = $iFlag + $BS_NOTIFY & $BS_DEFPUSHBUTTON
	  EndSelect
	
		Return $iFlag
	 EndFunc 
	 
	 
	 
Func _LenEngCode($iCod)
	$iCod = 0
	
	  GUICtrlSetData($filemenu, "File")
	  GUICtrlSetData($mExit, "Exit")
	  GUICtrlSetData($Set, "Settings")
	  GUICtrlSetData($lang, "Language")
	  GUICtrlSetData($help, "Help")
	  GUICtrlSetData($info, "About")
	  GUICtrlSetData($nad, "Inscription:")
	  GUICtrlSetData($other, "Other")
	  GUICtrlSetData($NStro, "Text in multiple lines")
	  
	  GUICtrlSetData($nnb, "Text position X")
	  GUICtrlSetData($nnt, "Text position Y")
	  GUICtrlSetData($Ndno, "Standard")
	  GUICtrlSetData($Nno, "Standard")
	  GUICtrlSetData($NSl, "Inscription Left")
	  GUICtrlSetData($NSr, "Inscription Right")
	  GUICtrlSetData($NdSv, "Inscription Top")
	  GUICtrlSetData($NdSn, "Inscription bottom")
	  GUICtrlSetData($NSz, "Button default")
	  GUICtrlSetData($NSm, "With a convex contour")
	  GUICtrlSetData($raz, "Size:")
	  	  
	  GUICtrlSetData($BTNPREVIEW, "Preview")
	  GUICtrlSetData($BTNCOPY, "Get the code")
	  GUICtrlSetData($mCOPY, "Get the code")
	  GUICtrlSetData($BTNEXIT, "Exit")
	  
   Return $iCod

	 EndFunc 
	 
	 Func _LenRusCode($iCo)
	$iCo = 0
   
	  GUICtrlSetData($filemenu, "Файл")
	  GUICtrlSetData($mExit, "Выход")
	  GUICtrlSetData($Set, "Настройки")
	  GUICtrlSetData($lang, "Язык")
	  GUICtrlSetData($help, "Помощь")
	  GUICtrlSetData($info, "О программе")
	  GUICtrlSetData($nad, "Надпись:")
	  GUICtrlSetData($other, "Остальное")
	  GUICtrlSetData($NStro, "Текст в несколько строк")
	  GUICtrlSetData($nnb, "Положение текста X")
	  GUICtrlSetData($nnt, "Положение текста Y")
	  GUICtrlSetData($Ndno, "Стандартно")
	  GUICtrlSetData($Nno, "Стандартно")
	  GUICtrlSetData($NSl, "Надпись Влево")
	  GUICtrlSetData($NSr, "Надпись Вправо")
	  GUICtrlSetData($NdSv, "Надпись Вверху")
	  GUICtrlSetData($NdSn, "Надпись Внизу")
	  GUICtrlSetData($NSz, "Кнопка по умолчанию")
	  GUICtrlSetData($NSm, "C выпуклым контуром")
	  GUICtrlSetData($raz, "Размер:")
	  
	  GUICtrlSetData($BTNPREVIEW, "Пред... просмотр")
	  GUICtrlSetData($BTNCOPY, "Получить код")
	  GUICtrlSetData($mCOPY, "Получить код")
	  GUICtrlSetData($BTNEXIT, "Выход")

		Return $iCo
	 EndFunc 
	 
    Func _Code($iCode) 
	  $iCode = "GUICtrlCreateButton(" & '"' & GUICtrlRead($TITLE) & '"' &  ", " & "left" & ", " & "top" & ", " & GUICtrlRead($L) & ", " & GUICtrlRead($R) & ", " &  _SetFlag($iFlag) & ")"& @CRLF & _
	  ";  ''left'' Координаты от левого края  = coordinates from the left edge" & @CRLF & _
	  ";  ''top'' Координаты от верхнего края  =  coordinates from the top edge"
	Return $iCode
 EndFunc
 

 
;~  P.S.
;~ Это мой первый генератор
 
Автор
G

GUIMish

Знающий
Сообщения
122
Репутация
12
Код:
#include <StaticConstants.au3>
#include <WinAPI.au3>
#include <ComboConstants.au3>
#include <ProgressConstants.au3>


Внес все кода которые знаю "Что-бы все работало!"

А укрыватель кнопки "Button"
Номер строчки 177
Case $GUI_EVENT_CLOSE, $Ex

Спасибо за "Koda Form Designer"
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Вот, примерно в несколько миллиардов раз крутее чем KODA http://www.isnetwork.at.pn/
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Belfigor [?]
примерно в несколько миллиардов раз крутее чем KODA
Чем, внешним видом?
Мне кажется Koda превосходит по функционалу.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Возможностью запуска главного скрипта при редактировании вспомогательных без необходимости переключаться на другую вкладку. Автоматический ьекап, структурирование проекта и тд и тп.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Belfigor [?]
Возможностью запуска главного скрипта при редактировании вспомогательных без необходимости переключаться на другую вкладку. Автоматический ьекап, структурирование проекта и тд и тп.
Не понял, а какая связь с Koda? Мы же говорим про графический редактор GUI, у Koda это основное предназначение, и сравнивать другой функционал, по меньшей мере, некорректно.
 

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
OffTopic:
Вообще-то обсуждение не совсем корректно по отношению к автору темы
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
CreatoR сказал(а):
Belfigor [?]
Возможностью запуска главного скрипта при редактировании вспомогательных без необходимости переключаться на другую вкладку. Автоматический ьекап, структурирование проекта и тд и тп.
Не понял, а какая связь с Koda? Мы же говорим про графический редактор GUI, у Koda это основное предназначение, и сравнивать другой функционал, по меньшей мере, некорректно.
Я говорю про все в целом. Koda - позволяет редактировать gui, Sci-Te позволяет редактировать код. Быть может в отдельности они чем-то чуть чуть и превосходят ISN. Но возможность делать все выше перечисленное в одной программе, без необходимости постоянно переключаться между программами, копировать код из них туда обратно и еще вести проект структурировано, делает ISN в десятки если не сотни раз лучше чем Koda и Sci-Te. Я просто 1 раз увидев ISN, тут же забыл вообще о таких атавизмах как Sci-Te и тем более Koda
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Belfigor [?]
Я говорю про все в целом
Нет, ты говорил про сравнение с Koda.

возможность делать все выше перечисленное в одной программе, без необходимости постоянно переключаться между программами, копировать код из них туда обратно и еще вести проект структурировано, делает ISN в десятки если не сотни раз лучше чем Koda и Sci-Te
Опять же, сравнение не уместно, и SciTe тут совсем не при чём, тебе нравится ISN, отлично, это твой выбор, но не нужно акцентировать на это внимание как лучшую альтернативу такому инструменту как Koda.

И давай на этом закроем обсуждение, т.к это уже и вправду пошёл откровенный офтопик, если есть желание, далее можем обсудить это в ЛС, или создать новую тему в разделе Общение.
 
Верх