Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 3)

Модерирует : gyra, Maz

gyra (23-01-2020 10:51): AutoIT (Часть 4)  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

AZJIO



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_OutFile=Calculator.exe
#AutoIt3Wrapper_icon=Calculator.ico
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_UseAnsi=y
#AutoIt3Wrapper_Res_Comment=-
#AutoIt3Wrapper_Res_Description=Calculator.exe
#AutoIt3Wrapper_Res_Fileversion=0.6.0.0
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=n
#AutoIt3Wrapper_Res_LegalCopyright=AZJIO
#AutoIt3Wrapper_Res_Language=1049
#AutoIt3Wrapper_Run_AU3Check=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
 
;  @AZJIO 29.07.2010 (AutoIt3_v3.2.12.1+)
#NoTrayIcon
#include <BigNum.au3>
Opt("GUIResizeMode", 0x0322)
Global $aN[10], $MG='', $Oper='', $MS0='', $trOper=0, $RES='', $trRavno=0, $aM[10][3], $aCalcini, $Mtmp, $LngFile='', $BaseFile='', $MGST=''
Global $Ini=@ScriptDir&'\Calc.ini'
$tablo0=''
$s0=''
$HoldCh=0
 
; En
$LngTitle='CalculatorMR'
$LngRet='Return'
$LngErr='Error'
$LngAbout='About'
$LngVer='Version'
$LngSite='Site'
$LngHK='HotKey'
$LngHKMsg= 'Number = Number'&@CRLF&@CRLF&'"=" - Space, Enter'&@CRLF&'"/" - Shift+(, \'&@CRLF&'"5 function" - Shift+1...Shift+5'&@CRLF&'"Add in extended memory" - Ctrl+1...Ctrl+9'&@CRLF&'"Return from extended memory" - Alt+1...Alt+9'&@CRLF&'"Unfold/roll up panel" - End'&@CRLF&'"MS" - Up'&@CRLF&'"MR" - Down'&@CRLF&'"M+" - PageUp'&@CRLF&'"+/-" - PageDown'&@CRLF&'"CE" - Ctrl+Delete'&@CRLF&'"BS" - Ctrl+Backspace'&@CRLF&'"RE" - Pause'
$LngL='Read memory'
$LngRest='"Restart CalculatorMR"'
$LngMS='Add in memory'&@CRLF&'"Up"'
$LngMR='Return from memory'&@CRLF&'"Down"'
$LngMP='Add to memories'&@CRLF&'PageUp'
$LngCE='Clean'&@CRLF&'Ctrl+Delete'
$LngBS='Take away numeral on the right'&@CRLF&'Ctrl+BackSpace'
$LngRE='Return the previous number'&@CRLF&'Pause Break'
$LngEX='Extended memory'&@CRLF&'End'
$LngDelit='Divide'&@CRLF&'Shift+('
$LngYmno='Multiply'
$LngMinus='Subtract'
$LngPlus='Add'
$LngRavno='Calculate'&@CRLF&'Enter, Space'
$LngPT='Point'
$LngPM='Change sign'&@CRLF&'PageDown'
$LngAMEx='Add in cell'
$LngRMEx='Return from cell'
$LngSave= 'Save cells. When Exit'&@CRLF&'is saved automatically'
$LngDX='Reciprocal'&@CRLF&'Shift+1'
$LngX2='in square'&@CRLF&'Shift+2'
$LngXY='Exponentiate'&@CRLF&'Shift+3'
$LngKoren='Square root'&@CRLF&'Shift+4'
$LngPI='pi - 3,14'&@CRLF&'Shift+5'
$LngSl='Choose file'
$LngType='To choose a language file'
$LngNum='File of numbers'
$LngOpConf='Open file a cell to memories'
$LngCl='Clean all cells'
$LngInvF='Invalid format of the file'
$LngCrIni='Create'
$LngHold='Hold'
 
 
If FileExists($Ini) Then
    $file = FileOpen($Ini, 0)
    $Calcini = FileRead($file)
    FileClose($file)
    ;==============================
    ;UDF File.au3
    If StringInStr($Calcini, @LF) Then
        $aCalcini = StringSplit(StringStripCR($Calcini), @LF)
    ElseIf StringInStr($Calcini, @CR) Then
        $aCalcini = StringSplit($Calcini, @CR)
    Else
        If StringLen($Calcini) Then
            Dim $aCalcini[2] = [1, $Calcini]
        Else
            MsgBox(0, $LngErr, "Error Calc.ini")
        EndIf
    EndIf
Else
    Dim $aCalcini[11]=['','position*-1*-1*0**','','','','','','','','','']
EndIf
 
$aPos=StringSplit($aCalcini[1], '*')
If $aPos[4] = 1 Then
    $PosW=275+235
    $Chr='0x25C4'
Else
    $PosW=275
    $Chr='0x25BA'
EndIf
 
$Gui = GUICreate($LngTitle, $PosW, 208, $aPos[2], $aPos[3])
 
$About = GUICtrlCreateButton("@", 217, 2, 18, 20)
GUICtrlSetTip(-1, $LngAbout)
 
$HotKey = GUICtrlCreateButton("?", 237, 2, 18, 20)
GUICtrlSetTip(-1, $LngHK)
 
$restart = GUICtrlCreateButton("R", 257, 2, 18, 20)
GUICtrlSetTip(-1, $LngRest)
 
$LRE = GUICtrlCreateLabel('', 15, 6, 203, 12,0xC)
GUICtrlSetColor (-1, 0x999999)
$MT = GUICtrlCreateLabel('', 17, 21, 203, 12,0xC)
GUICtrlSetColor (-1, 0x999999)
$Err = GUICtrlCreateLabel('', 220, 21, 35, 12,0xC)
GUICtrlSetColor (-1, 0xff0000)
GUICtrlSetFont (-1,8.5, 700)
$FileN= GUICtrlCreateLabel('Calc', 325, 3, 175, 15,0xC)
$tablo = GUICtrlCreateInput("", 13, 34, 245, 25,0x0002)
GUICtrlSetFont (-1,15, 400)
$LOper = GUICtrlCreateLabel('', 260, 34, 16, 25)
GUICtrlSetFont (-1,15, 400)
 
GUISetFont (15, 400)
$aN[0] = GUICtrlCreateButton("0", 70, 171, 30, 29)
;_bc()
$l=0
$v =0
For $i = 1 to 9
    If $l > 60 Then
        $l = 0
        $v -= 29
    EndIf
    $aN[$i] = GUICtrlCreateButton($i, 70+$l, 142+$v, 30, 29)
    $l += 30
    ;_bc()
Next
 
$PM = GUICtrlCreateButton("+/-", 101, 171, 30, 29)
GUICtrlSetBkColor (-1, 0 )
GUICtrlSetColor (-1, 0xffffff)
GUICtrlSetFont (-1,12, 400)
GUICtrlSetTip(-1, $LngPM)
$PT = GUICtrlCreateButton(".", 131, 171, 30, 29)
GUICtrlSetTip(-1, $LngPT)
_bc()
 
$Divide = GUICtrlCreateButton("/", 165, 85, 25, 25)
GUICtrlSetTip(-1, $LngDelit)
_bc2()
$Multiply = GUICtrlCreateButton("*", 165, 115, 25, 25)
GUICtrlSetTip(-1,$LngYmno)
_bc2()
$minus = GUICtrlCreateButton("-", 165, 145, 25, 25)
GUICtrlSetTip(-1, $LngMinus)
_bc2()
$plus = GUICtrlCreateButton("+", 165, 175, 25, 25)
GUICtrlSetTip(-1, $LngPlus)
_bc2()
$ravno = GUICtrlCreateButton("=", 195, 175, 25, 25)
GUICtrlSetTip(-1, $LngRavno)
_bc2()
 
GUISetFont (9, 700)
$MS = GUICtrlCreateButton("MS", 195, 85, 25, 25)
GUICtrlSetTip(-1, $LngMS)
GUICtrlSetBkColor (-1, 0xffffff )
GUICtrlSetColor (-1, 0xff0000)
$MR = GUICtrlCreateButton("MR", 195, 115, 25, 25)
GUICtrlSetTip(-1, $LngMR)
GUICtrlSetBkColor (-1, 0xffffff )
GUICtrlSetColor (-1, 0xff0000)
$MP = GUICtrlCreateButton("M+", 195, 145, 25, 25)
GUICtrlSetTip(-1, $LngMP)
GUICtrlSetBkColor (-1, 0xffffff )
GUICtrlSetColor (-1, 0xff0000)
$CE = GUICtrlCreateButton("CE", 225, 85, 25, 25)
GUICtrlSetTip(-1, $LngCE)
GUICtrlSetBkColor (-1, 0x00aa00)
GUICtrlSetColor (-1, 0xffffff)
$BS = GUICtrlCreateButton("BS", 225, 115, 25, 25)
GUICtrlSetTip(-1, $LngBS)
GUICtrlSetBkColor (-1, 0x00aa00)
GUICtrlSetColor (-1, 0xffffff)
$RE = GUICtrlCreateButton("RE", 225, 145, 25, 25)
GUICtrlSetTip(-1,$LngRE)
GUICtrlSetBkColor (-1, 0x00aa00)
GUICtrlSetColor (-1, 0xffffff)
$EX = GUICtrlCreateButton(ChrW($Chr) , 225, 175, 25, 25)
GUICtrlSetTip(-1, $LngEX)
GUICtrlSetFont (-1,-1, -1, -1, 'Arial')
 
GUISetFont (8.5, 400)
$OpenConf = GUICtrlCreateButton('Open', 470, 20, 34, 18)
GUICtrlSetTip(-1,  $LngOpConf)
$Save = GUICtrlCreateButton('Save', 470, 40, 34, 18)
GUICtrlSetTip(-1,  $LngSave)
$Hold = GUICtrlCreateButton('Hold', 470, 60, 34, 18)
GUICtrlSetTip(-1,  $LngHold)
$OpenLng = GUICtrlCreateButton(' Lang', 470, 160, 34, 18)
GUICtrlSetTip(-1, $LngType)
$Clear = GUICtrlCreateButton(' Clear', 470, 180, 34, 18)
GUICtrlSetTip(-1, $LngCl)
 
$v =0
For $i = 1 to 9
    GUICtrlCreateLabel($i, 314, 23+$v, 17, 20)
    GUICtrlSetFont (-1,9, 700)
    $aM[$i][0] = GUICtrlCreateButton('>', 292, 20+$v, 17, 20)
    GUICtrlSetTip(-1, $LngAMEx&' '&$i&@CRLF&'Ctrl+'&$i)
GUICtrlSetBkColor (-1, 0xf01700)
GUICtrlSetColor (-1, 0xffffff)
GUICtrlSetFont (-1,11, 700)
    $aM[$i][1] = GUICtrlCreateButton('<', 275, 20+$v, 17, 20)
GUICtrlSetBkColor (-1, 0x00b300)
GUICtrlSetColor (-1, 0xffffff)
GUICtrlSetFont (-1,11, 700)
    GUICtrlSetTip(-1,  $LngRMEx&' '&$i&@CRLF&'Alt+'&$i)
    $aM[$i][2] = GUICtrlCreateInput('', 325, 20+$v, 140, 21)
    If Mod($i,2) = 0 Then GUICtrlSetBkColor(-1,0xf3f3f3)
    GUICtrlSetData($aM[$i][2],$aCalcini[$i+1])
    $v += 20
Next
 
GUISetFont (8.5, 700)
$dx = GUICtrlCreateButton("1/x", 10, 85, 28, 20)
GUICtrlSetTip(-1, $LngDX)
$x2 = GUICtrlCreateButton("x^2", 10, 105, 28, 20)
GUICtrlSetTip(-1, $LngX2)
$xy = GUICtrlCreateButton("x^y", 10, 125, 28, 20)
GUICtrlSetTip(-1, $LngXY)
$koren = GUICtrlCreateButton("V"&ChrW ('0x203E'), 10, 145, 28, 20)
GUICtrlSetFont (-1,-1, -1, -1, 'Arial')
GUICtrlSetTip(-1, $LngKoren)
 
; GUICtrlCreateGroup ("", 13, 53, 56, 25)
; $pi = GUICtrlCreateLabel("pi", 17, 61, 12, 14)
; GUICtrlSetTip(-1, $LngPI)
; $rad = GUICtrlCreateLabel("rad", 33, 61, 17, 14)
; $e= GUICtrlCreateLabel("e", 56, 61, 9, 14)
$pi = GUICtrlCreateButton("pi", 10, 165, 28, 20)
GUICtrlSetTip(-1, $LngPI)
 
If $aPos[6]<>'' And FileExists($aPos[6]) Then _OpenLng($aPos[6])
If $aPos[5]<>'' And FileExists($aPos[5]) Then _OpenConf($aPos[5])
 
Dim $AccelKeys[65][2]=[["1", $aN[1]], ["2", $aN[2]], ["3", $aN[3]], ["4", $aN[4]], ["5", $aN[5]], ["6", $aN[6]], ["7", $aN[7]], ["8", $aN[8]], ["9", $aN[9]], ["0", $aN[0]], ["{NUMPAD1}", $aN[1]], _
["{NUMPAD2}", $aN[2]], ["{NUMPAD3}", $aN[3]], ["{NUMPAD4}", $aN[4]], ["{NUMPAD5}", $aN[5]], ["{NUMPAD6}", $aN[6]], ["{NUMPAD7}", $aN[7]], ["{NUMPAD8}", $aN[8]], ["{NUMPAD9}", $aN[9]], ["{NUMPAD0}", $aN[0]], ["{NUMPADDIV}", _
$Divide], ["+{(}", $Divide], ["{\}", $Divide], ["{NUMPADMULT}", $Multiply], ["+{8}", $Multiply], ["{NUMPADSUB}", $minus], ["{-}", $minus], ["{NUMPADADD}", $plus], ["+{=}", $plus], ["{SPACE}", $ravno], ["{=}", $ravno], ["{Enter}", $ravno], _
["{UP}", $MS], ["{DOWN}", $MR], ["^{DEL}", $CE], ["{NUMPADDOT}", $PT], ["{.}", $PT], ["{PGDN}", $PM], ["{PGUP}", $MP], ["^{BS}", $BS], ["{PAUSE}", $RE], ["{END}", $EX], _
["+{1}", $dx], ["+{2}", $x2], ["+{3}", $xy], ["+{4}", $koren], ["+{5}", $pi], _
["^{1}", $aM[1][0]], ["^{2}", $aM[2][0]], ["^{3}", $aM[3][0]], ["^{4}", $aM[4][0]], ["^{5}", $aM[5][0]], ["^{6}", $aM[6][0]], ["^{7}", $aM[7][0]], ["^{8}", $aM[8][0]], ["^{9}", $aM[9][0]], _
["!{1}", $aM[1][1]], ["!{2}", $aM[2][1]], ["!{3}", $aM[3][1]], ["!{4}", $aM[4][1]], ["!{5}", $aM[5][1]], ["!{6}", $aM[6][1]], ["!{7}", $aM[7][1]], ["!{8}", $aM[8][1]], ["!{9}", $aM[9][1]]]
 
Dim $AccelKeys1[65][2]=[["+{1}", $dx], ["+{2}", $x2], ["+{3}", $xy], ["+{4}", $koren], ["+{5}", $pi]] ; для кнопки Hold
 
GUISetAccelerators($AccelKeys)
If $aPos[2]= '-1' Then _Save()
GUISetState(@SW_SHOW)
 
While 1
    $msg = GUIGetMsg()
    For $i = 1 to 9
        If $msg = $aM[$i][0] Then
            If $HoldCh=1 Then ContinueLoop
            $tablo0=GUICtrlRead ($tablo)
            If $tablo0<>'' Then
                GUICtrlSetColor ($Mtmp, 0x000000)
                GUICtrlSetData($aM[$i][2],$tablo0)
                GUICtrlSetColor ($aM[$i][2], 0xee0000)
                $Mtmp=$aM[$i][2]
            EndIf
        EndIf
    Next
    For $i = 1 to 9
        If $msg = $aM[$i][1] Then
            $tablo0=GUICtrlRead ($aM[$i][2])
            If $tablo0<>'' Then GUICtrlSetData($tablo,$tablo0)
        EndIf
    Next
    
    For $i = 0 to 9
        If $msg = $aN[$i] Then
        GUICtrlSetData($Err,'')
        $tablo0=GUICtrlRead ($tablo)
        If $i = 0 And ($tablo0='' Or $trOper=1 Or $trRavno=1) Then
            $s0='.'
        Else
            $s0=''
        EndIf
            If $trRavno=1 or $trOper=1 Then
                GUICtrlSetData($tablo,$i&$s0)
                $trRavno=0
                $trOper=0
                If GUICtrlRead ($LOper)='=' Then GUICtrlSetData($LOper,'')
            Else
                GUICtrlSetData($tablo,$tablo0&$i&$s0)
            EndIf
        EndIf
    Next
    Select
        Case $msg = $About
            _About()
        Case $msg = $HotKey
            MsgBox(0, $LngHK, $LngHKMsg)
        Case $msg = $Save
            _Save()
        Case $msg = $OpenLng
            $tmp = FileOpenDialog($LngSl, @WorkingDir, $LngType&" (*.lng)", 1, "", $Gui)
            If @error Then ContinueLoop
            _OpenLng($tmp)
        Case $msg = $OpenConf
            $tmp = FileOpenDialog($LngSl, @WorkingDir, $LngNum&" (*.ini)", "", "", $Gui)
            If @error Then ContinueLoop
            If StringRight($tmp, 4)<>'.ini' Then $tmp&='.ini'
            _OpenConf($tmp)
        Case $msg = $Clear
            If $HoldCh=1 Then ContinueLoop
            For $i = 1 to 9
                GUICtrlSetData($aM[$i][2],'')
            Next
        Case $msg = $Divide
            If GUICtrlRead ($LOper)='/' And Not($trRavno=1 or $trOper=1) Then _ravno()
            If GUICtrlRead ($tablo)<>'' Then
                GUICtrlSetData($LOper,'/')
                _Oper()
                $Oper=1
            EndIf
        Case $msg = $Multiply
            If GUICtrlRead ($LOper)='*' And Not($trRavno=1 or $trOper=1) Then _ravno()
            If GUICtrlRead ($tablo)<>'' Then
                GUICtrlSetData($LOper,'*')
                _Oper()
                $Oper=2
            EndIf
        Case $msg = $minus
            If GUICtrlRead ($LOper)='-' And Not($trRavno=1 or $trOper=1) Then _ravno()
            If GUICtrlRead ($tablo)<>'' Then
                GUICtrlSetData($LOper,'-')
                _Oper()
                $Oper=3
            EndIf
        Case $msg = $plus
            If GUICtrlRead ($LOper)='+' And Not($trRavno=1 or $trOper=1) Then _ravno()
            If GUICtrlRead ($tablo)<>'' Then
                GUICtrlSetData($LOper,'+')
                _Oper()
                $Oper=4
            EndIf
        Case $msg = $Hold
            If $HoldCh = 0 Then
                $HoldCh=1
                For $i = 1 to 9
                    GUICtrlSetState($aM[$i][0],128)
                    GUICtrlSetBkColor ($aM[$i][0], 0xbbbbbb)
                    GUICtrlSetStyle ($aM[$i][2],0x0800)
                    If Mod($i,2) = 0 Then
                        GUICtrlSetBkColor($aM[$i][2],0xfffbd7)
                    Else
                        GUICtrlSetBkColor($aM[$i][2],0xffffee)
                    EndIf
                Next
                GUISetAccelerators($AccelKeys1)
            Else
                $HoldCh=0
                For $i = 1 to 9
                    GUICtrlSetState($aM[$i][0],64)
                    GUICtrlSetBkColor ($aM[$i][0], 0xf01700)
                    GUICtrlSetStyle ($aM[$i][2],0)
                    If Mod($i,2) = 0 Then
                        GUICtrlSetBkColor($aM[$i][2],0xf3f3f3)
                    Else
                        GUICtrlSetBkColor($aM[$i][2],0xffffff)
                    EndIf
                Next
                GUISetAccelerators($AccelKeys)
            EndIf
        Case $msg = $ravno
            _ravno()
        Case $msg = $MS
            $MS0T=GUICtrlRead ($tablo)
            If $MS0T <>'' Then
                $MS0=$MS0T
                GUICtrlSetTip($MR, $LngL&' ' &$MS0)
                ;GUICtrlSetBkColor ($MS, 0xddffdd )
                GUICtrlSetData($MT,'M='&$MS0)
                _mig(0xffaaaa)
            EndIf
        Case $msg = $MR
            If $MS0 <>'' Then
                GUICtrlSetData($tablo,$MS0)
                _mig(0xaaffaa)
            EndIf
        Case $msg = $MP
            $tablo0=GUICtrlRead ($tablo)
            If $tablo0 <>'' Then
                $MS0+=$tablo0
                GUICtrlSetTip($MR, $LngL&' ' &$MS0)
                GUICtrlSetData($MT,'M='&$MS0)
                _mig(0xaaaaff)
            EndIf
        Case $msg = $CE
            GUICtrlSetData($Err,'')
            GUICtrlSetData($tablo,'')
            GUICtrlSetData($LOper,'')
            $trRavno=1
        Case $msg = $BS
            $tablo0=GUICtrlRead ($tablo)
            GUICtrlSetData($tablo,StringTrimRight ($tablo0, 1 ))
        Case $msg = $RE
            GUICtrlSetData($tablo,$RES)
        Case $msg = $EX
            $GuiPos = WinGetPos($Gui)
            If $GuiPos[2] > 250 And $GuiPos[2] < 300 Then
                WinMove($Gui, "", $GuiPos[0], $GuiPos[1], $GuiPos[2]+235, $GuiPos[3])
                GUICtrlSetData($EX,ChrW ('0x25C4'))
            Else
                WinMove($Gui, "", $GuiPos[0], $GuiPos[1], $GuiPos[2]-235, $GuiPos[3])
                GUICtrlSetData($EX,ChrW ('0x25BA'))
            EndIf
 
        Case $msg = $PM
            $tablo0=GUICtrlRead ($tablo)
            If $tablo0='' Then ContinueLoop
            If StringLeft($tablo0, 1 )='-'  Then
                $tablo0=StringTrimLeft($tablo0, 1 )
            Else
                $tablo0='-'&$tablo0
            EndIf
            GUICtrlSetData($tablo,$tablo0)
        Case $msg = $PT
            $tablo0=GUICtrlRead ($tablo)
            If $tablo0<>'' Then
                If $trRavno=1 Or $trOper=1 Then
                    GUICtrlSetData($tablo,'0.')
                    $trOper=0
                    $trRavno=0
                Else
                    If StringInStr($tablo0, '.')>0 Then ContinueLoop
                    GUICtrlSetData($tablo,$tablo0&'.')
                EndIf
            Else
                GUICtrlSetData($tablo,'0.')
                $trRavno=0
            EndIf
        Case $msg = $dx
            GUICtrlSetData($Err,'')
            $tablo0=GUICtrlRead ($tablo)
            If $tablo0='' Then ContinueLoop
            If $tablo0=0 Then
                _err()
                ContinueLoop
            EndIf
            GUICtrlSetData($tablo,1/$tablo0)
            $trRavno=1
            _re($tablo0)
        Case $msg = $x2
            GUICtrlSetData($Err,'')
            $tablo0=GUICtrlRead ($tablo)
            If $tablo0='' Then ContinueLoop
            GUICtrlSetData($tablo,Execute($tablo0)^2)
            $trRavno=1
            _re($tablo0)
        Case $msg = $xy
            GUICtrlSetData($Err,'')
            If GUICtrlRead ($tablo)='' Then ContinueLoop
                GUICtrlSetData($LOper,'^')
                _Oper()
                $Oper=5
        Case $msg = $koren
            GUICtrlSetData($Err,'')
            $tablo0=GUICtrlRead ($tablo)
            If $tablo0='' Then ContinueLoop
            If $tablo0<0 Then
                _err()
                ContinueLoop
            EndIf
            GUICtrlSetData($tablo,Sqrt($tablo0))
            $trRavno=1
            _re($tablo0)
        Case $msg = $pi
            GUICtrlSetData($Err,'')
            GUICtrlSetData($tablo,'3.141592653589793')
            $trRavno=1
            If GUICtrlRead ($tablo0)<>'' Then _re($tablo0)
        Case $msg = $restart
            _restart()
        Case $msg = -3
            _Save()
            Exit
    EndSelect
WEnd
 
Func _OpenLng($Path)
    $aLng = IniReadSection($Path, 'lng')
    If @error Then  
        $LngFile=''
        Return
    Else
        For $i = 1 To $aLng[0][0]
            If StringInStr($aLng[$i][1], '\r\n') <>0 Then $aLng[$i][1]=StringReplace($aLng[$i][1],'\r\n',@CRLF)
            Assign($aLng[$i][0],$aLng[$i][1])
        Next
        $LngFile=$Path
        GUICtrlSetTip($About, $LngAbout)
        GUICtrlSetTip($HotKey, $LngHK)
        GUICtrlSetTip($restart, $LngRest)
        GUICtrlSetTip($Divide, $LngDelit)
        GUICtrlSetTip($Multiply,$LngYmno)
        GUICtrlSetTip($minus, $LngMinus)
        GUICtrlSetTip($plus, $LngPlus)
        GUICtrlSetTip($ravno, $LngRavno)
        GUICtrlSetTip($MS, $LngMS)
        GUICtrlSetTip($MR, $LngMR)
        GUICtrlSetTip($MP, $LngMP)
        GUICtrlSetTip($CE, $LngCE)
        GUICtrlSetTip($BS, $LngBS)
        GUICtrlSetTip($RE,$LngRE)
        GUICtrlSetTip($EX, $LngEX)
        GUICtrlSetTip($Save,  $LngSave)
        GUICtrlSetTip($dx, $LngDX)
        GUICtrlSetTip($x2, $LngX2)
        GUICtrlSetTip($xy, $LngXY)
        GUICtrlSetTip($koren, $LngKoren)
        GUICtrlSetTip($pi, $LngPI)
        GUICtrlSetTip($OpenLng, $LngType)
        GUICtrlSetTip($Hold, $LngHold)
        GUICtrlSetTip($Clear , $LngCl)
        GUICtrlSetTip($OpenConf , $LngOpConf)
        For $i = 1 to 9
            GUICtrlSetTip($aM[$i][0], $LngAMEx&' '&$i&@CRLF&'Ctrl+'&$i)
            GUICtrlSetTip($aM[$i][1] ,  $LngRMEx&' '&$i&@CRLF&'Alt+'&$i)
        Next
    EndIf
EndFunc
 
Func _ravno()
    $tablo0=GUICtrlRead ($tablo)
    $tablo0Tmp=$tablo0
    If $tablo0<>'' Then
        If StringInStr($tablo0, ',') Then $tablo0=StringReplace($tablo0, ',' , '.')
        If StringInStr($MG, ',') Then $MG=StringReplace($MG, ',' , '.')
        
        If StringInStr($tablo0, 'e+') Then $tablo0=_ConvNumP($tablo0)
        If StringInStr($MG, 'e+') Then $MG=_ConvNumP($MG)
 
        If StringInStr($tablo0, 'e-') Then $tablo0=_ConvNumM($tablo0)
        If StringInStr($MG, 'e-') Then $MG=_ConvNumM($MG)
        $rech=''
        Switch $Oper
            Case 1
                If GUICtrlRead ($LOper)<>'=' Then
                    $rech = _BigNum_Div($MG, $tablo0,'200')
                    $MGST=$tablo0
                Else
                    $rech = _BigNum_Div($tablo0, $MGST,'200')
                EndIf
            Case 2
               $rech = _BigNum_Mul($MG, $tablo0)
               If GUICtrlRead ($LOper)<>'=' Then $MG=$tablo0
            Case 3
                If GUICtrlRead ($LOper)<>'=' Then
                    $rech = _BigNum_Sub($MG, $tablo0)
                    $MGST=$tablo0
                Else
                    $rech = _BigNum_Sub($tablo0, $MGST)
                EndIf
               If GUICtrlRead ($LOper)<>'=' Then $MG=$tablo0
            Case 4
               $rech = _BigNum_Add($MG, $tablo0)
               If GUICtrlRead ($LOper)<>'=' Then $MG=$tablo0
            Case 5
                If GUICtrlRead ($LOper)<>'=' Then
                    $rech = $MG^$tablo0
                    $MGST=$tablo0
                Else
                    $rech = $tablo0^$MGST
                EndIf
            Case Else
               Return
        EndSwitch
        If StringInStr($rech, "1.#IN") Then
            _err()
            Return
        EndIf
; 1200  > 1.2e+003
        If StringLen($rech)>20 And Not(StringInStr($rech, 'e+') Or StringInStr($rech, 'e-')) Then
            If StringLen(Int($rech))>20 Then
                $exp=StringLen(Int($rech))-1
                If StringLen($exp)<3 Then $exp='0'&$exp
                If StringLen($exp)<3 Then $exp='0'&$exp
                $rech=StringMid($rech, 1, 1)&'.'&StringTrimLeft(StringTrimRight(Int($rech),5),1)&'e+'$exp
            Else
                If StringMid($rech, 1, 1)<>0 Then
                    $Npt = StringInStr($rech, '.')
                    $rech= Round($rech, 20-$Npt)
                Else
                    $aRech1=StringRegExp($rech, '(0\.)(0*)(\d+)',3)
                    $exp=StringLen($aRech1[1])+1
                    If StringLen($exp)<3 Then $exp='0'&$exp
                    If StringLen($exp)<3 Then $exp='0'&$exp
                    $rech=StringMid($aRech1[2], 1, 1)&'.'&StringTrimLeft($aRech1[2],1)
                    $rech= Round($rech, 15)&'e-'&$exp
                EndIf
            EndIf
        EndIf
; End 1200  > 1.2e+003
        If StringInStr($rech, "1.#IN") Then
            _err()
            Return
        EndIf
        GUICtrlSetData($tablo,$rech)
        GUICtrlSetData($LOper,'=')
        _re($tablo0Tmp)
    EndIf
    $trRavno=1
EndFunc
 
; 1.2e+003  > 1200
Func _ConvNumP($num)
    $exp='1'
        $aRech1=StringSplit($num, '+')
        For $i = 1 to Execute($aRech1[2])
            $exp&='0'
        Next
        $num = _BigNum_Mul(StringTrimRight($aRech1[1],1), $exp)
    Return $num
EndFunc
 
; 1.2e-003  > 0.0012
Func _ConvNumM($num)
    $exp='1'
        $aRech1=StringSplit($num, '-')
        For $i = 1 to $aRech1[2]
            $exp&='0'
        Next
        $num = _BigNum_Div(StringTrimRight($aRech1[1],1), $exp,'200')
    Return $num
EndFunc
 
Func _err()
    GUICtrlSetData($Err,' Error ')
    $trOper=1
    For $i = 1 to 4
        GUICtrlSetBkColor ($Err, 0xff0000 )
        GUICtrlSetColor ($Err, 0xffffff)
        Sleep(40)
        GUICtrlSetBkColor ($Err, -1 )
        GUICtrlSetColor ($Err, 0xff0000)
        Sleep(40)
    Next
EndFunc
 
Func _Save()
    $GuiPos = WinGetPos($Gui)
    If $GuiPos[2] > 250 And $GuiPos[2] < 300 Then
        $W=0
    Else
        $W=1
    EndIf
    $Save0=''
    $Save11=''
    $Save1=''
    If $BaseFile = $Ini Then $BaseFile =''
    If $GuiPos[0] < 0 Or $GuiPos[1]< 0 Then
        $GuiPos[0]=$aPos[2]
        $GuiPos[1]=$aPos[3]
    EndIf
    $Save0&='position*'&$GuiPos[0]&'*'&$GuiPos[1]&'*'&$W&'*'&$BaseFile&'*'&$LngFile&@CRLF
    For $i = 1 to 9
        $Save1&=GUICtrlRead ($aM[$i][2])&@CRLF
    Next
    If $BaseFile<>'' And FileExists($BaseFile) Then
        $file = FileOpen($BaseFile,2)
        FileWrite($file, $Save0&$Save1)
        FileClose($file)
    $file = FileOpen($Ini, 0)
    $Save11 = FileRead($file)
    FileClose($file)
    $Save11=StringRegExpReplace($Save11, '(?s)(.*?\r\n)(.*)', '\2')
        $file = FileOpen($Ini,2)
        FileWrite($file, $Save0&$Save11)
        FileClose($file)
    Else
        $file = FileOpen($Ini,2)
        FileWrite($file, $Save0&$Save1)
        FileClose($file)
    EndIf
EndFunc
 
Func _OpenConf($Path)
    $file = FileOpen($Path, 0)
    $Calcini = FileRead($file)
    FileClose($file)
    If Not(StringLeft($Calcini, 8)='position' or $Calcini='') Then
        MsgBox(0, $LngErr, $LngInvF)
        Return
    EndIf
    $aCalcini=''
    $filename=StringRegExpReplace($Path, '(^.*)\\(.*)\.(.*)$', '\2')
    ;==============================
    ;UDF File.au3
    If StringInStr($Calcini, @LF) Then
        $aCalcini = StringSplit(StringStripCR($Calcini), @LF)
    ElseIf StringInStr($Calcini, @CR) Then
        $aCalcini = StringSplit($Calcini, @CR)
    Else
        If StringLen($Calcini) Then
            Dim $aCalcini[2] = [1, $Calcini]
        Else
            If MsgBox(4, $LngErr, $LngCrIni&' '&$filename&'?')=6 Then
                $file = FileOpen($Path, 2+8)
                FileClose($file)
                $BaseFile=$Path
                _Save()
                _OpenConf($Path)
            EndIf
            Return
        EndIf
    EndIf
    GUICtrlSetColor ($Mtmp, 0x000000)
    For $i = 1 to 9
        GUICtrlSetData($aM[$i][2],$aCalcini[$i+1])
    Next
    $BaseFile=$Path
    GUICtrlSetData($FileN,$filename)
    GUICtrlSetTip($OpenConf, 'Current' &@CRLF&$filename&'.ini')
EndFunc
 
Func _mig($t)
    GUICtrlSetBkColor ($tablo, $t)
    Sleep(40)
    GUICtrlSetBkColor ($tablo, 0xffffff )
EndFunc
 
Func _re($t)
    $RES=$t
    GUICtrlSetTip($RE, $LngRet&' '&$RES)
    GUICtrlSetData($LRE,'RE='&$RES)
EndFunc
 
Func _bc()
    GUICtrlSetBkColor (-1, 0 )
    GUICtrlSetColor (-1, 0xffffff)
EndFunc
 
Func _bc2()
    GUICtrlSetBkColor (-1, 0x003C74)
    GUICtrlSetColor (-1, 0xffffff)
EndFunc
 
Func _Oper()
    $MG=GUICtrlRead ($tablo)
    _re($MG)
    $trOper=1
    ;GUICtrlSetData($tablo,'')
EndFunc
 
Func _restart()
    _Save()
    Local $sAutoIt_File = @TempDir & "\~Au3_ScriptRestart_TempFile.au3"
    Local $sRunLine, $sScript_Content, $hFile
 
    $sRunLine = @ScriptFullPath
    If Not @Compiled Then $sRunLine = @AutoItExe & ' /AutoIt3ExecuteScript ""' & $sRunLine & '""'
    If $CmdLine[0] > 0 Then $sRunLine &= ' ' & $CmdLineRaw
 
    $sScript_Content &= '#NoTrayIcon' & @CRLF & _
            'While ProcessExists(' & @AutoItPID & ')' & @CRLF & _
            '   Sleep(10)' & @CRLF & _
            'WEnd' & @CRLF & _
            'Run("' & $sRunLine & '")' & @CRLF & _
            'FileDelete(@ScriptFullPath)' & @CRLF
 
    $hFile = FileOpen($sAutoIt_File, 2)
    FileWrite($hFile, $sScript_Content)
    FileClose($hFile)
 
    Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & $sAutoIt_File & '"', @ScriptDir, @SW_HIDE)
    Sleep(1000)
    Exit
EndFunc   ;==>_restart
 
Func _About()
$GuiPos = WinGetPos($Gui)
GUISetState(@SW_HIDE, $Gui)
$font="Arial"
    $Gui1 = GUICreate($LngAbout, 270, 180,$GuiPos[0], $GuiPos[1], -1, 0x00000080)
    GUISetBkColor (0xf8c848)
    GUICtrlCreateLabel($LngTitle, 0, 20, 270, 23, 0x01)
    GUICtrlSetFont (-1,15, 600, -1, $font)
    GUICtrlSetColor(-1,0xa21a10)
    GUISetFont (9, 600, -1, $font)
    GUICtrlCreateLabel($LngVer&' 0.6  29.07.2010', 55, 100, 210, 17)
    GUICtrlCreateLabel($LngSite&':', 55, 115, 40, 17)
    $url=GUICtrlCreateLabel('http://azjio.ucoz.ru', 92, 115, 170, 17)
    GUICtrlSetCursor(-1, 0)
    GUICtrlSetColor(-1, 0x0000ff)
    GUICtrlCreateLabel('WebMoney: R939163939152', 55, 130, 210, 17)
    GUICtrlCreateLabel('Copyright AZJIO © 2010', 55, 145, 210, 17)
    GUISetState(@SW_SHOW, $Gui1)
$msg = $Gui1
    While 1
      $msg = GUIGetMsg()
      Select
        Case $msg = $url
            ShellExecute ('http://azjio.ucoz.ru')
        Case $msg = -3
            $msg = $Gui
            GUIDelete($Gui1)
            GUISetState(@SW_SHOW, $Gui)
            ExitLoop
        EndSelect
    WEnd
EndFunc

Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 01:28 15-07-2010 | Исправлено: AZJIO, 23:39 02-09-2010
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 3)
gyra (23-01-2020 10:51): AutoIT (Часть 4)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru