KODA Integrierte ProgressBar

  • Heyhey :)

    Ich habe in meinem Script eine im Fenster eingebaute Progressbar, nun die Frage: Wie spreche ich diese an? Ich möchte, dass die Progressbar nach jedem "Do" in meinem Script um einen Wert erhöht der aus einer Variable errechnet wird.
    BSP: Variable ist 250, dann soll die Progressbar bei jedem durchgang 0.4 dazu bekommen. (100/250=0.4). 250 steht dabei als Variable $range da.

    Hier das Script:

    [autoit]


    #cs ----------------------------------------------------------------------------

    [/autoit][autoit][/autoit][autoit]

    AutoIt Version: 3.3.8.1
    Author: Heisenberg

    [/autoit][autoit][/autoit][autoit]

    Script Function:
    Calculating DBCs + simple Values

    [/autoit][autoit][/autoit][autoit]

    #ce ----------------------------------------------------------------------------

    [/autoit][autoit][/autoit][autoit]

    ; Script Start - Add your code below here

    [/autoit][autoit][/autoit][autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1_1 = GUICreate("DBC Calculator", 411, 299, 720, 352)
    $Group1 = GUICtrlCreateGroup("Rechner", 16, 8, 177, 105)
    $Input1 = GUICtrlCreateInput("Anfangswert", 24, 24, 73, 21)
    $Input2 = GUICtrlCreateInput("Endwert", 112, 24, 73, 21)
    $Input3 = GUICtrlCreateInput("Level", 56, 56, 105, 21)
    $Label1 = GUICtrlCreateLabel("Anstieg pro Level", 64, 88, 86, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("Excel DBC Creator", 216, 8, 177, 105)
    $Input4 = GUICtrlCreateInput("Anfangswert", 256, 24, 105, 21)
    $Input5 = GUICtrlCreateInput("Anstieg pro Level", 256, 56, 105, 21)
    $Input6 = GUICtrlCreateInput("DBC Reichweite", 256, 80, 105, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $asdf = GUICtrlCreateLabel("Free Space :D", 168, 208, 73, 17)
    $Progress1 = GUICtrlCreateProgress(16, 120, 382, 17)
    $start = GUICtrlCreateButton("Start", 272, 144, 75, 25)
    $calc = GUICtrlCreateButton("calc", 72, 144, 75, 25)
    $Button1 = GUICtrlCreateButton("Import", 184, 144, 51, 25)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit][autoit][/autoit][autoit]

    Local $Index = 0
    $i = 0

    [/autoit][autoit][/autoit][autoit]

    $AW = Number(GUICtrlRead($Input1))
    $EW = Number(GUICtrlRead($Input2))
    $Lv = Number(GUICtrlRead($Input3))

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    ;Rechner
    Case $calc
    $AW = Number(GUICtrlRead($Input1))
    $EW = Number(GUICtrlRead($Input2))
    $Lv = Number(GUICtrlRead($Input3))
    If $Lv <> 0 Then
    $sol = ($EW-$AW) /$Lv
    Else
    $sol = "Formfehler!"
    EndIf

    [/autoit][autoit][/autoit][autoit]

    GUICtrlSetData($Label1, $sol)

    [/autoit][autoit][/autoit][autoit]

    ;Paster
    Case $start
    Sleep(5000)
    $startwert=GUICtrlRead($Input4)
    $APL = GUICtrlRead($Input5)
    $range=GUICtrlRead($Input6)
    $Base = $startwert + $APL
    $progressbase = 100/$range
    Do
    ClipPut($Index & "," & $Base & ",")
    Sleep(10)
    $progressplus = 100/$range
    Sleep(10)
    $Base=$Base+$APL
    Sleep(10)
    $Index = $Index +1
    Sleep(10)
    GuiCtrlSetData($Progress1,$progressbase+$progressplus)
    $i=$i+1
    Send("^v")
    Sleep(10)
    Send("{DOWN}")
    Until $i = $range

    [/autoit][autoit][/autoit][autoit]

    ;Import
    Case $Button1
    $clip1 = GUICtrlRead($Input1)
    $clip2 = GUICtrlRead($Input3)
    $clip3 = GUICtrlRead($Label1)
    GUICtrlSetData($Input4, $clip1)
    GUICtrlSetData($Input6, $clip2)
    GUICtrlSetData($Input5, $clip3)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    EndSwitch
    WEnd

    [/autoit][autoit][/autoit][autoit][/autoit]

    Einmal editiert, zuletzt von was2 (19. Januar 2014 um 00:16)

  • Naja du musst den Wert schon auch erhöhen. Derzeit machst du folgendes:

    [autoit]

    $range = 250
    $progressbase = 100/250 ; = 0.4
    $progressplus = 0.4

    [/autoit]

    und du setzt in jedem Schleifendurchlauf immer den selben Wert, nämlich progressbase + progressplus, also 0.8.

    Korrekter wäre den aktuellen Wert der Progressbar auszulesen und zu diesem Wert das rangeplus zu addieren. Dann erhöht sich der Wert auch mit jedem Schleifendurchlauf um die gewünschten 0.4 Prozent.
    Wie liest man den Wert eines Controls aus? Das solltest du bereits wissen, da du genau das mit den Input controls schon machst.

    [autoit]


    guictrlsetdata($progressbar,guictrlread($progressbar)+$progressplus)

    [/autoit]

    Einmal editiert, zuletzt von misterspeed (18. Januar 2014 um 22:02)