Hi liebe Leute!
Ich habe vor einiger Zeit ein Skript erstellt ( Dienstplan ) ist für meine kleine und ein Projekt was ein wenig Aufwand mit sich gebracht hat, es geht um die Performance ich weiß das Autoit nicht der schnellste ist, ich möchte trotzdem alles rausholen was geht, ich Arbeite immer mal wieder an dem Projekt verbessern hier und da was nur zu einer Sache mit dem VSCROLL fällt mir nichts ein?
Bewegt man ihn hoch und runter braucht die Grafik Ewigkeiten um nach zu kommen sagen wir´s mal so es ist nicht schön anzusehen!
Schaut mal mein Code an vieleicht hat einer von euch ja Ideen!
Spoiler anzeigen
#include <Array.au3>
#include <Date.au3>
#include <GuiScrollBars.au3>
#include <GUIConstantsEx.au3>
#include <ScrollBarConstants.au3>
#include <WindowsConstants.au3>
#include <_ArrayMultiDisplay.au3>
#include <StaticConstants.au3>
#include <ProgressConstants.au3>
Opt('MustDeclareVars', 1)
Opt('GUIOnEventMode', 1)
Global $Form[5], $Benutzer, $xXx = 0, $vSG = 'F|F1|F2|F3|F4|Z|Z1|S|S1|S2|S3|SS|SK|Na|U|K'
Local $F0_SYS[9]
Local $Array_Tage[31][2]
Local $St_Array_Tag[31][12][2]
Local $aTmp[31][12][2]
Local $Trans = 0.2, $x, $y, $Set_CFS
Local $W_Tag[8] = ['', 'So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa']
Local $Ex_Datein[3] = [@DesktopDir & '\Dienstplan.lnk', @ScriptDir & '\Druckerbank.html', @ScriptDir & '\data\Schichten.ini']
Local $Monat[13] = ['', 'Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']
Local $Soll[12][2], $Ist[12], $Urlaub[12][2], $Soller[12], $Uebertrag[12][2], $Group[12], $R_Label[12][2], $Name[12][2], $Progress[12], $ProgressLabel[12], $Feiertage[7]
Local $Menue[8], $B_Menue[8][2] = [['A&nsicht Speichern', ''],['S&peicherabfrage', ''],['S&chichtsetzen', ''],['M&onat Einlesen', ''],['A&nsicht Leeren', ''],['', ''],['B&enden', 'GUI_Exit']]
$Form[0] = GUICreate('', 1010, 700, -1, -1)
GUISetBkColor(0xFFFACD, $Form[0]); W 0xFFFFFF; G 0xFFFACD
GUISetOnEvent(-3, 'GUI_Exit')
$F0_SYS[1] = GUICtrlCreateMenu(' M&enü ')
For $i = 0 To 7
$Menue[$i] = GUICtrlCreateMenuItem($B_Menue[$i][0], $F0_SYS[1])
GUICtrlSetOnEvent(-1, $B_Menue[$i][1])
Next
GUICtrlCreateLabel('Monat:', 10, 16, 43, 20)
GUICtrlSetFont(-1, 9, 900, 0, 'Verdana')
GUICtrlCreateLabel('Soll', 853, 78, 20, 15)
GUICtrlSetFont(-1, 8, 900, 0, 'Verdana')
GUICtrlSetTip(-1, 'Gesamter Monats Zeitraum ')
GUICtrlCreateLabel('Ist', 900, 78, 20, 15)
GUICtrlSetFont(-1, 8, 900, 0, 'Verdana')
GUICtrlSetTip(-1, 'Wieviel im Monat geleistet')
GUICtrlCreateLabel('+/-', 940, 78, 42, 15)
GUICtrlSetFont(-1, 8, 900, 0, 'Verdana')
GUICtrlSetTip(-1, 'Plus Minus Stunden Übertragen')
GUICtrlCreateLabel('Jahr :', 25, 53, 40, 20)
GUICtrlSetFont(-1, 9, 900, 0, 'Verdana')
$F0_SYS[2] = GUICtrlCreateCombo('', 60, 15, 105, 20)
GUICtrlSetFont(-1, 8, 900, 0, 'Verdana')
GUICtrlSetOnEvent(-1, 'W_Rechnung')
GUICtrlSetData($F0_SYS[2], _ArrayToString($Monat))
;$F0_SYS[3] = GUICtrlCreateLabel('0', -100, 0, 0, 0)
$F0_SYS[4] = GUICtrlCreateLabel(@YEAR, 75, 53, 40, 19)
GUICtrlSetFont(-1, 9, 900, 0, 'Verdana')
$F0_SYS[5] = GUICtrlCreateButton('-', 128, 52, 17, 17)
GUICtrlSetOnEvent(-1, 'W_Rechnung')
$F0_SYS[6] = GUICtrlCreateButton('+', 145, 52, 17, 17)
GUICtrlSetOnEvent(-1, 'W_Rechnung')
$F0_SYS[7] = GUICtrlCreateLabel('', 875, 44, 60, 25)
GUICtrlSetFont(-1, 8, 900, 0, 'Verdana')
GUICtrlSetColor(-1, 0x0000FF)
$F0_SYS[8] = GUICtrlCreateLabel('Feiertage:', 177, 17, 80, 20)
GUICtrlSetFont(-1, 8, 900, 0, 'Verdana')
GUICtrlSetColor(-1, 0x0000FF)
$x = 174
For $i = 0 To 30
$Array_Tage[$i][0] = GUICtrlCreateLabel(StringRight('0' & $i + 1, 2), $x + 1, 46, 19, 18, 0x01)
GUICtrlSetFont(-1, 8, 900, 0, 'Verdana')
$Array_Tage[$i][1] = GUICtrlCreateLabel('', ($x) + 1.5, 69, 19, 18, 0x01)
GUICtrlSetFont(-1, 8, 900, 0, 'Verdana')
$x += 21.5
Next
$Form[1] = GUICreate('', 1009, 579, 0, 100, 0x40000000, '', $Form[0])
GUISetBkColor(0xFFFACD, $Form[1]); W 0xFFFFFF; G 0xFFFACD
For $n = 0 To 1
$y = 20
If $n Then $y += 21
For $e = 0 To 11
$x = 176
For $i = 0 To 30
$St_Array_Tag[$i][$e][$n] = GUICtrlCreateInput('', $x, $y, 21, 20)
$aTmp[$i][$e][$n] = 0
$x += 22
Next
$y += 70
Next
Next
$x = 31
For $i = 0 To 11
$Soll[$i][0] = GUICtrlCreateInput('', 130, $x, 45, 19, 0x2000)
$Soll[$i][1] = GUICtrlCreateInput('', 858, ($x - 17), 45, 21, 0x0800)
$Name[$i][0] = GUICtrlCreateInput('', 9, ($x - 22), 120, 21)
$Name[$i][1] = GUICtrlCreateInput('', 9, ($x + 1), 120, 19)
$R_Label[$i][0] = GUICtrlCreateLabel('R=', 111, ($x + 24), 18, 12)
$R_Label[$i][1] = GUICtrlCreateLabel('R=', 880, ($x + 20), 20, 12)
$Uebertrag[$i][0] = GUICtrlCreateInput('', 130, ($x - 22), 45, 21)
$Uebertrag[$i][1] = GUICtrlCreateInput('', 950, ($x - 17), 45, 21, 0x0800)
$Urlaub[$i][0] = GUICtrlCreateInput('', 130, ($x + 20), 45, 18, 0x2000)
$Urlaub[$i][1] = GUICtrlCreateInput('', 904, ($x + 14), 45, 21, 0x0800)
$Ist[$i] = GUICtrlCreateInput('', 904, ($x - 17), 45, 21, 0x0800)
$Soller[$i] = GUICtrlCreateInput('', 950, ($x + 14), 45, 21, 0x0800)
$Group[$i] = GUICtrlCreateGroup('', 858, ($x + 11), 45, 25)
$Progress[$i] = GUICtrlCreateProgress(9, ($x + 21), 70, 19)
$ProgressLabel[$i] = GUICtrlCreateLabel(' 0%', 80, ($x + 24), 30, 20)
GUICtrlSetColor($ProgressLabel[$i], 0x0000FF)
$x += 70
Next
GUISetState()
;GUISetState(@SW_HIDE, $Form[1])
GUISwitch($Form[0])
GUICtrlSetResizing($Form[1], 802)
$x = 245
For $i = 0 To 6
$Feiertage[$i] = GUICtrlCreateLabel('', $x, 17, 70, 18)
GUICtrlSetColor(-1, 0x0000FF)
GUICtrlSetFont(-1, 8, 900, 0, 'Verdana')
GUICtrlSetOnEvent(-1, 'Set_Color_Feiertage')
$x += 75
Next
WinSetTrans($Form[0], '', 0)
_GUIScrollBars_Init($Form[1])
GUIRegisterMsg(0x0115, 'WM_VSCROLL')
GUISetState()
GUIRegisterMsg($WM_COMMAND, 'MY_WM_COMMAND')
;_ArrayMultiDisplay($St_Array_Tag)
$Form[2] = GUICreate('Feiertage', 370, 420, -1, -1)
GUISetOnEvent(-3, 'GUI_HIDE')
GUICtrlCreateLabel('Die zutreffenden Feiertage des jeweiligen Bundesland auswählen.', 25, 10, 390, 20)
GUICtrlSetColor(-1, 0x0000FF)
Local $Feiertage_SHOW[32], $Set_Feiertage = _Feiertage(GUICtrlRead($F0_SYS[4])), $L = 20, $H = 50
For $i = 0 To 31
If ($i = 16) Then
$L = 200
$H = 50
EndIf
$Feiertage_SHOW[$i] = GUICtrlCreateButton($Set_Feiertage[$i][1], $L, $H, 150, 20)
GUICtrlSetOnEvent(-1, '')
$H += 22
Next
GUISetState(@SW_HIDE, $Form[2])
#comments-start
$Benutzer = GUICreate('', 230, 130, -1, -1, @SW_DISABLE)
GUICtrlCreateLabel('Benutzer:', 20, 16, 80, 20)
Local $InputBenu = GUICtrlCreateInput('', 100, 16, 100, 19)
GUICtrlCreateLabel('Password:', 20, 48, 80, 15)
Local $InputPass = GUICtrlCreateInput('', 100, 48, 100, 19)
GUISetState()
#comments-end
Func W_Rechnung()
If Not GUICtrlRead($F0_SYS[2]) Then Return 1
Local $W_SYS[8], $IniAus, $StringSplit, $Time = TimerInit()
Switch @GUI_CtrlId
Case $F0_SYS[5]
GUICtrlSetData($F0_SYS[4], GUICtrlRead($F0_SYS[4]) - 1)
Case $F0_SYS[6]
GUICtrlSetData($F0_SYS[4], GUICtrlRead($F0_SYS[4]) + 1)
EndSwitch
$W_SYS[0] = GUICtrlRead($F0_SYS[4])
$W_SYS[1] = M_Zahl(GUICtrlRead($F0_SYS[2]))
$W_SYS[2] = _DateDaysInMonth($W_SYS[0], $W_SYS[1])
$W_SYS[3] = @ScriptDir & '\data\Feiertage' & $W_SYS[0] & '.ini'
;If Not FileExists($W_SYS[3]) Then Return GUISetState(@SW_SHOW, $Form[2])
GUICtrlSetData($F0_SYS[7], '')
If GUICtrlRead($Feiertage[0]) Then
For $i = 0 To 6
If Not GUICtrlRead($Feiertage[$i]) Then ContinueLoop
For $n = 0 To 1
For $e = 0 To 11
GUICtrlSetTip($St_Array_Tag[StringLeft(GUICtrlRead($Feiertage[$i]), 2) - 1][$e][$n], '')
Next
Next
GUICtrlSetData($Feiertage[$i], '')
Next
EndIf
If Not GUICtrlRead($Array_Tage[30][1]) Then
For $i = 28 To 30
For $e = 0 To 11
For $n = 0 To 1
GUICtrlSetState($St_Array_Tag[$i][$e][$n], $GUI_ENABLE)
Next
Next
Next
EndIf
For $i = 0 To 30
$W_SYS[4] = _DateToDayOfWeek($W_SYS[0], $W_SYS[1], GUICtrlRead($Array_Tage[$i][0]))
GUICtrlSetData($Array_Tage[$i][1], W_Tag($W_SYS[4]))
Switch $W_SYS[4]
Case 2 To 6
For $n = 0 To 1
For $e = 0 To 11
GUICtrlSetBkColor($St_Array_Tag[$i][$e][$n], 0xFFFFFF)
Next
Next
GUICtrlSetColor($Array_Tage[$i][0], 0x000000)
GUICtrlSetColor($Array_Tage[$i][1], 0x000000)
Case 1, 7
For $n = 0 To 1
For $e = 0 To 11
GUICtrlSetBkColor($St_Array_Tag[$i][$e][$n], 0xDADBE5)
Next
Next
GUICtrlSetColor($Array_Tage[$i][0], 0xff0000)
GUICtrlSetColor($Array_Tage[$i][1], 0xff0000)
$W_SYS[5] += 1
Case Else
For $n = 0 To 1
For $e = 0 To 11
GUICtrlSetBkColor($St_Array_Tag[$i][$e][$n], 0xFFFFFF)
GUICtrlSetState($St_Array_Tag[$i][$e][$n], $GUI_DISABLE)
Next
Next
GUICtrlSetColor($Array_Tage[$i][0], 0x000000)
EndSwitch
Next
$IniAus = IniReadSection($W_SYS[3], GUICtrlRead($F0_SYS[2]))
If IsArray($IniAus) Then
_ArraySort($IniAus, 0, 0, 0, 1)
For $i = 1 To UBound($IniAus) - 1
$StringSplit = StringSplit($IniAus[$i][1], '.')
For $n = 0 To 1
For $e = 0 To 11
GUICtrlSetTip($St_Array_Tag[$StringSplit[1] - 1][$e][$n], $IniAus[$i][1] & ' ist ein Feiertag', $IniAus[$i][0], 1)
Next
Next
$W_SYS[4] = _DateToDayOfWeek($StringSplit[3], $StringSplit[2], $StringSplit[1])
If ($W_SYS[4] <> 1 And $W_SYS[4] <> 7) Then $W_SYS[6] += 1
GUICtrlSetData($Feiertage[$i - 1], $IniAus[$i][1])
Next
EndIf
If (Schaltjahr($W_SYS[0])) Then GUICtrlSetData($F0_SYS[7], 'Schaltjahr')
$xXx = ($W_SYS[2] - $W_SYS[5] - $W_SYS[6])
ConsoleWrite('Nettoarbeitstage : ' & $xXx & ' Ende Time: ' & Round(TimerDiff($Time)) & @CRLF)
EndFunc ;==>W_Rechnung
Func Set_Color_Feiertage()
Local $Datum = GUICtrlRead(@GUI_CtrlId, 1)
If Not $Datum Then Return (0)
Local $StringSplit = StringSplit($Datum, '.')
If IsArray($StringSplit) Then
Local $Color, $Ta_Pr = _DateToDayOfWeek(GUICtrlRead($F0_SYS[4]), M_Zahl(GUICtrlRead($F0_SYS[2])), GUICtrlRead($Array_Tage[$StringSplit[1] - 1][0]))
If $Set_CFS Then
$Color = 0xFFFFFF
If ($Ta_Pr = 1) Or ($Ta_Pr = 7) Then $Color = 0xDADBE5
$Set_CFS = 0
Else
$Color = 0xaaafff
$Set_CFS = 1
EndIf
For $i = 0 To 11
For $n = 0 To 1
GUICtrlSetBkColor($St_Array_Tag[$StringSplit[1] - 1][$i][$n], $Color)
Next
Next
EndIf
EndFunc ;==>Set_Color_Feiertage
Func W_Tag($W_Tag_N)
Return $W_Tag[$W_Tag_N]
EndFunc ;==>W_Tag
Func M_Zahl($M_Zahl)
For $i = 1 To UBound($Monat) - 1
If ($M_Zahl = $Monat[$i]) Then Return $i
Next
EndFunc ;==>M_Zahl
Func Schaltjahr($JahresZahl)
Return (Mod($JahresZahl, 4) = 0 And Mod($JahresZahl, 100) <> 0 Or Mod($JahresZahl, 400) = 0)
EndFunc ;==>Schaltjahr
Func _Feiertage($year, $DateTyp = 1)
Dim $HDays[32][2], $Sy[32], $tmp
$Sy[0] = Mod($year, 19)
$Sy[1] = Int($year / 100)
$Sy[2] = Int($year / 400)
$Sy[3] = Mod((19 * $Sy[0] + (15 + $Sy[1] - $Sy[2] - Floor(Int((8 * $Sy[1] + 13) / 25)))), 30)
$Sy[4] = Mod((2 * Mod($year, 4) + 4 * Mod($year, 7) + 6 * $Sy[3] + (4 + $Sy[1] - $Sy[2])), 7)
If ($Sy[3] + $Sy[4] = 35) Then
$Sy[5] = 50
Else
If ($Sy[3] = 28 And $Sy[4] = 6 And $Sy[0] > 10) Then
$Sy[5] = 49
Else
$Sy[5] = 22 + $Sy[3] + $Sy[4]
EndIf
EndIf
If ($Sy[5] < 32) Then
$Sy[6] = $Sy[5]
$Sy[7] = '03'
Else
$Sy[6] = $Sy[5] - 31
$Sy[7] = '04'
EndIf
If ($Sy[6] < 10) Then $Sy[6] = '0' & $Sy[6]
If ($year < 1900) Then
$Sy[8] = Mod($year, 100)
If _DateIsLeapYear($year) Then
If $Sy[8] < 10 Then $Sy[8] = '0' & $Sy[8]
$Sy[9] = 20 & $Sy[8]
Else
If $Sy[8] < 10 Then $Sy[8] = '0' & $Sy[8]
$Sy[9] = 19 & $Sy[8]
EndIf
$Sy[10] = $Sy[9] & '/' & $Sy[7] & '/' & $Sy[6]
Else
$Sy[10] = $year & '/' & $Sy[7] & '/' & $Sy[6]
EndIf
$Sy[11] = _DateAdd('d', -52, $Sy[10])
$Sy[12] = _DateAdd('d', -48, $Sy[10])
$Sy[13] = _DateAdd('d', -47, $Sy[10])
$Sy[14] = _DateAdd('d', -46, $Sy[10])
$Sy[15] = _DateAdd('d', -3, $Sy[10])
$Sy[16] = _DateAdd('d', -2, $Sy[10])
$Sy[17] = _DateAdd('d', -1, $Sy[10])
$Sy[18] = $Sy[10]
$Sy[19] = _DateAdd('d', 1, $Sy[10])
$Sy[20] = _DateAdd('d', 39, $Sy[10])
$Sy[21] = _DateAdd('d', 49, $Sy[10])
$Sy[22] = _DateAdd('d', 50, $Sy[10])
$Sy[23] = _DateAdd('d', 60, $Sy[10])
For $i = 8 To 14
If (_DateToDayOfWeek($year, 5, $i) = 1) Then
If $i < 10 Then $i = '0' & $i
$Sy[24] = $year & '/05/' & $i
If ($Sy[24] = $Sy[21]) Then $Sy[24] = _DateAdd('d', -7, $year & '/05/' & $i)
ExitLoop
EndIf
Next
For $i = 1 To 7
If (_DateToDayOfWeek($year, 10, $i) = 1) Then
$i = '0' & $i
$Sy[25] = $year & '/10/' & $i
ExitLoop
EndIf
Next
For $i = 18 To 24
If (_DateToDayOfWeek($year, 12, $i) = 1) Then
$Sy[26] = $year & '/12/' & $i
$Sy[27] = _DateAdd('d', -7, $Sy[26])
$Sy[28] = _DateAdd('d', -14, $Sy[26])
$Sy[29] = _DateAdd('d', -21, $Sy[26])
$Sy[30] = _DateAdd('d', -28, $Sy[26])
$Sy[31] = _DateAdd('d', -32, $Sy[26])
ExitLoop
EndIf
Next
Dim $HDS[32] = [$year & '/01/01\Neujahr', $year & '/01/06\Heilige Drei Könige', $year & '/02/14\Valentinstag', $year & '/05/01\Maifeiertag', $year & '/10/03\Tag der Deutschen Einheit', _
$year & '/10/31\Reformationstag', $year & '/11/01\Allerheiligen', $year & '/12/24\Heiligabend', $year & '/12/25\1. Weihnachtsfeiertag', $year & '/12/26\2. Weihnachtsfeiertag', _
$year & '/12/31\Silvester', $Sy[11] & '\Weiberfastnacht', $Sy[12] & '\Rosenmontag', $Sy[13] & '\Fastnacht', $Sy[14] & '\Aschermittwoch', $Sy[15] & '\Gründonnerstag', _
$Sy[16] & '\Karfreitag', $Sy[17] & '\Ostersamstag', $Sy[18] & '\Ostersonntag', $Sy[19] & '\Ostermontag', $Sy[20] & '\Christi Himmelfahrt', $Sy[21] & '\Pfingstsonntag', _
$Sy[22] & '\Pfingstmontag', $Sy[24] & '\Muttertag', $Sy[23] & '\Fronleichnam', $Sy[25] & '\Erntedankfest', $Sy[31] & '\Buß- und Bettag', $Sy[30] & '\Totensonntag', _
$Sy[29] & '\1. Advent', $Sy[28] & '\2. Advent', $Sy[27] & '\3. Advent', $Sy[26] & '\4. Advent']
For $i = 0 To 31
$HDays[$i][0] = $HDS[$i]
If $DateTyp Then
$tmp = StringSplit($HDays[$i][0], '\', 2)
$HDays[$i][0] = StringMid($tmp[0], 9) & '.' & StringMid($tmp[0], 6, 2) & '.' & StringMid($tmp[0], 1, 4)
$HDays[$i][1] = $tmp[1]
Else
$HDays[$i][1] = StringTrimLeft($HDays[$i][0], 11)
$HDays[$i][0] = StringLeft($HDays[$i][0], 10)
EndIf
Next
Return $HDays
EndFunc ;==>_Feiertage
Func WM_VSCROLL($hWnd, $Msg, $wParam, $lParam)
Local $WM_SYS[6]
For $x = 0 To UBound($aSB_WindowInfo) - 1
If ($aSB_WindowInfo[$x][0] = $hWnd) Then
$WM_SYS[0] = $x
$WM_SYS[1] = $aSB_WindowInfo[$WM_SYS[0]][2] - 2.5
ExitLoop
EndIf
Next
If ($WM_SYS[0] = -1) Then Return 1
$WM_SYS[2] = _GUIScrollBars_GetScrollInfoEx($hWnd, $SB_VERT)
$WM_SYS[3] = DllStructGetData($WM_SYS[2], 'nPos')
$WM_SYS[4] = DllStructGetData($WM_SYS[2], 'nTrackPos')
Switch BitAND($wParam, 0x0000FFFF)
Case $SB_LINEUP
DllStructSetData($WM_SYS[2], 'nPos', $WM_SYS[3] - 1)
Case $SB_LINEDOWN
DllStructSetData($WM_SYS[2], 'nPos', $WM_SYS[3] + 1)
Case $SB_THUMBTRACK
DllStructSetData($WM_SYS[2], 'nPos', $WM_SYS[4])
EndSwitch
DllStructSetData($WM_SYS[2], 'fMask', $SIF_POS)
_GUIScrollBars_SetScrollInfo($hWnd, $SB_VERT, $WM_SYS[2])
$WM_SYS[5] = DllStructGetData($WM_SYS[2], 'nPos')
If ($WM_SYS[5] <> $WM_SYS[3]) Then _GUIScrollBars_ScrollWindow($hWnd, 0, $WM_SYS[1] * ($WM_SYS[3] - $WM_SYS[5]))
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_VSCROLL
Func MY_WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
;ConsoleWrite(BitShift($wParam, 16) & ' ' & BitAND($wParam, 0xFFFF) & ' ' & GUICtrlRead(BitAND($wParam, 0xFFFF), 1) & @CR)
Local $HiWord = BitShift($wParam, 16)
If ($HiWord = 1024 Or $HiWord = 6) Then
Local $GetSA, $Minus
Local $LoWord = BitAND($wParam, 0xFFFF)
Local $GetLoWord = StringUpper(GUICtrlRead($LoWord, 1))
If Not GUICtrlRead($F0_SYS[2]) Then Return GUICtrlSetData($LoWord, '')
GUICtrlSetData($LoWord, $GetLoWord)
For $n = 0 To 1
For $e = 0 To 11
For $i = 0 To 30
If ($St_Array_Tag[$i][$e][$n] = $LoWord) Then
GUICtrlSetData($Soll[$e][1], StringReplace(GUICtrlRead($Soll[$e][0]), ',', '.') / 5 * $xXx)
If StringIsDigit($GetLoWord) Or StringLen($GetLoWord) > 2 Then Return 1
If Not $GetLoWord Then
$GetLoWord = $aTmp[$i][$e][$n]
$aTmp[$i][$e][$n] = 0
$Minus = 1
Else
If Not StringInStr($vSG, $GetLoWord) Then Return 1
$GetSA = $aTmp[$i][$e][$n]
$aTmp[$i][$e][$n] = $GetLoWord
$Minus = 0
EndIf
$GetLoWord = B_in_Z($GetLoWord)
If $GetLoWord Then
If $Minus Then
_GUICtrlSetData($e, (GUICtrlRead($Ist[$e]) - $GetLoWord), GUICtrlRead($Soll[$e][1]))
Else
If $GetSA Then
_GUICtrlSetData($e, (GUICtrlRead($Ist[$e]) - B_in_Z($GetSA)) + $GetLoWord, GUICtrlRead($Soll[$e][1]))
Else
_GUICtrlSetData($e, (GUICtrlRead($Ist[$e]) + $GetLoWord), GUICtrlRead($Soll[$e][1]))
EndIf
EndIf
Else
If $Minus Then
_GUICtrlSetData($e, (GUICtrlRead($Ist[$e]) - (StringReplace(GUICtrlRead($Soll[$e][0]), ',', '.') / 5)), GUICtrlRead($Soll[$e][1]))
Else
If $GetSA Then
_GUICtrlSetData($e, ((GUICtrlRead($Ist[$e]) - B_in_Z($GetSA)) + (StringReplace(GUICtrlRead($Soll[$e][0]), ',', '.') / 5)), GUICtrlRead($Soll[$e][1]))
Else
_GUICtrlSetData($e, (GUICtrlRead($Ist[$e]) + (StringReplace(GUICtrlRead($Soll[$e][0]), ',', '.') / 5)), GUICtrlRead($Soll[$e][1]))
EndIf
EndIf
EndIf
Return 1
EndIf
Next
Next
Next
EndIf
Return $GUI_RUNDEFMSG
EndFunc ;==>MY_WM_COMMAND
Func B_in_Z($B_in_Z)
Local $Get_B_in_Z[17][2] = [['F', 8.3],['FS', 3.85],['F1', 5.75],['F2', 6.3],['F3', 8.3],['F4', 5.25],['Z', 8.3],['Z1', 8.3],['S', 8.3],['S1', 8.3],['S2', 6.8],['S3', 5.85],['SS', 3.85],['SK', 2.85],['Na', 9.3],['U', 0],['K', 0]]
For $i = 0 To 16
If ($Get_B_in_Z[$i][0] = $B_in_Z) Then Return $Get_B_in_Z[$i][1]
Next
EndFunc ;==>B_in_Z
Func _GUICtrlSetData(Const $sIndex, Const $sIst, Const $sSol)
GUICtrlSetData($Ist[$sIndex], $sIst)
GUICtrlSetData($Progress[$sIndex], ($sIst * 100) / $sSol)
Return GUICtrlSetData($ProgressLabel[$sIndex], ' ' & Round(($sIst * 100) / $sSol) & '%')
EndFunc ;==>_GUICtrlSetData
If (@OSArch = 'X86') Then $Trans = 10
For $i = 0 To 255 Step +$Trans
WinSetTrans($Form[0], '', $i)
Next
While True * Sleep(10)
WEnd
Func GUI_Control_HIDE()
GUISetState(@SW_HIDE, @GUI_WinHandle)
EndFunc ;==>GUI_Control_HIDE
Func GUI_HIDE()
GUISetState(@SW_HIDE, @GUI_WinHandle)
EndFunc ;==>GUI_HIDE
Func GUI_Control_Exit()
Exit
EndFunc ;==>GUI_Control_Exit
Func GUI_Exit()
Exit
EndFunc ;==>GUI_Exit
Lg Kleiner