Autoit - Mehrere Checkboxen auslesen und status in variable/array packen

  • Hallo liebe gemeinde,

    hab mir fleißig ein eigenes programm gebastelt mit einer benutzeroberfläche.
    auf dieser kann der nutzer mit hilfe von checkboxen mehrere optionen wählen.
    verringern wir das mal der einfachkeit halber auf 3 checkboxden:

    [autoit]

    $checkbox1 = GUICtrlCreateCheckbox("nummer1", 40, 165)
    $checkbox2 = GUICtrlCreateCheckbox("nummer2", 40, 200)
    $checkbox3 = GUICtrlCreateCheckbox("nummer3", 40, 235)

    [/autoit]

    ausgewählt werden können diese beliebig, allerdings muss mindestens 1 checkbox ausgewählt sein
    bei null muss eine fehlermeldung kommen.

    was ich jetzt leider nicht hinbekomme und ich hab wirklich schon überall im forum gesucht, hier auch gute ansätze gefunden, aber ich konnte das enfach für mein programm nicht umsetzten. (weiß nicht obs an der falschen umsetzung liegt)

    ich möchte dieses Wissen welche checkbox/en ausgewählt sind in eine variable oder ein arry oder der gleichen packen
    hab das mal so gemacht und das funktioniert aber nicht:

    [autoit]

    if GUICtrlRead($checkbox1) = $GUI_CHECKED Then dim $checkbox1_status = 1
    if GUICtrlRead($checkbox2) = $GUI_CHECKED Then dim $checkbox2_status = 1
    if GUICtrlRead($checkbox3) = $GUI_CHECKED Then dim $checkbox3_status = 1

    [/autoit]


    später möchte ich dann nämlich sagen:

    [autoit]


    if $checkbox1_status = 1 then

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

    rechnung
    .
    .
    .

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

    else
    endif

    [/autoit]

    was mach ich falsch? ?(
    ich danke euch schon jetzt für eurer bemühen

    schönen gruß Inferior

    • Offizieller Beitrag

    Poste mal dein Script, mit Codefetzen ist schwer zu erraten wo es klemmt.

  • naja... soll ich das ganze schicken? ist ziemlich lang.. ich weiß es ist vllt sehr umständlich und man könnte es ziemlich vereinfachen und kürzen.. aber ich kenn mich noch nicht so gut aus, deshalb ist es eben ein wenig umständlich :(


    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEX.au3>
    #include <Constants.au3>
    #include <WindowsConstants.au3>
    #include <EditConstants.au3>
    #include <GuiToolTip.au3>
    #include <GuiEdit.au3>
    #include <GUIConstants.au3>
    #include <ListboxConstants.au3>
    #include <ButtonConstants.au3>
    #include <StaticConstants.au3>
    #include <MathEx.au3>
    #include <Array.au3>
    #include <GDIPlus.au3>

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

    ;----------------------- Kosten Keule -------------------------------------------------------------------

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

    Dim $holz_keule = 95
    Dim $lehm_keule = 75
    Dim $eisen_keule = 40
    Dim $g3de_keule = 40

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

    ;----------------------- Kosten Axt -------------------------------------------------------------------

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

    Dim $holz_axt = 130
    Dim $lehm_axt = 120
    Dim $eisen_axt = 170
    Dim $g3de_axt = 70

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

    ;----------------------- Kosten Teuto -------------------------------------------------------------------

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

    Dim $holz_teuto = 450
    Dim $lehm_teuto = 515
    Dim $eisen_teuto = 480
    Dim $g3de_teuto = 80

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

    ;----------------------- Kosten Speer -------------------------------------------------------------------

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

    Dim $holz_speer = 145
    Dim $lehm_speer = 70
    Dim $eisen_speer = 85
    Dim $g3de_speer = 40

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

    ;----------------------- Kosten Pala -------------------------------------------------------------------

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

    Dim $holz_pala = 370
    Dim $lehm_pala = 270
    Dim $eisen_pala = 290
    Dim $g3de_pala = 75

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

    ;----------------------- Kosten Kundi -------------------------------------------------------------------

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

    Dim $holz_kundi = 160
    Dim $lehm_kundi = 100
    Dim $eisen_kundi = 50
    Dim $g3de_kundi = 50

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

    ;----------------------- Kosten Ramme -------------------------------------------------------------------

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

    Dim $holz_ramme = 1000
    Dim $lehm_ramme = 300
    Dim $eisen_ramme = 350
    Dim $g3de_ramme = 70

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

    ;----------------------- Kosten Kata -------------------------------------------------------------------

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

    Dim $holz_kata = 900
    Dim $lehm_kata = 1200
    Dim $eisen_kata = 600
    Dim $g3de_kata = 60

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

    dim $keule_stat = 0
    ;----------------------- Menü -------------------------------------------------------------------

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

    $Main = GUICreate("Travian ResourceManager V0.8.9.7 beta - [Germane]", 445, 380)
    $MenuItem1 = GUICtrlCreateMenu("Über")
    $about = GUICtrlCreateMenuItem("Informationen", $MenuItem1)

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

    $Form1 = GUICreate("Informationen", 320, 153, 552, 264)
    $Label = GUICtrlCreateLabel("Travian ResourceManager V0.8.9.3 beta - [Germane]", 16, 20, 196, 17)
    $Labe2 = GUICtrlCreateLabel("Made bye Infected", 16, 40, 196, 17)
    $Labe3 = GUICtrlCreateLabel("http://infected.bplaced.net/", 16, 100, 196, 17)

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

    GUISetState(@SW_SHOW, $Main)

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

    ;------------------------ Oberfläche / text -------------------------------------------------------------------

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

    GUICtrlCreateLabel("Bitte Rohstoffmengen eingeben die zur Verfügung stehen:", 20, 25, 380, 20)
    GUICtrlSetFont(-1, 11, 400, 0, "MS Sans Serif")
    GUICtrlCreateLabel("Wählen Sie Truppen aus, die in die Berechnung einfließen:", 20, 120, 380, 40)
    GUICtrlSetFont(-1, 11, 400, 0, "MS Sans Serif")

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

    GUICtrlCreateLabel("Prozent:", 108, 150, 130, 15)
    GUICtrlCreateLabel("Prozent:", 248, 150, 270, 15)
    GUICtrlCreateLabel("Prozent:", 388, 150, 410, 15)
    GUICtrlCreateLabel("___________________________________________________________________________", 0, 290, 470, 15)
    GUICtrlSetColor(-1, 0xbebebe)
    GUICtrlCreateLabel("___________________________________________________________________________", 0, 90, 470, 15)
    GUICtrlSetColor(-1, 0xbebebe)
    GUICtrlCreateLabel("___________________________________________________________________________", 0, 0, 470, 15)
    GUICtrlSetColor(-1, 0xbebebe)

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

    ;------------------------ Rohstofficons -------------------------------------------------------------------

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

    GUICtrlCreatePic("Icons\h.gif", 27, 62, 16, 16)
    GUICtrlCreatePic("Icons\l.gif", 127, 62, 16, 16)
    GUICtrlCreatePic("Icons\e.gif", 227, 62, 16, 16)
    GUICtrlCreatePic("Icons\g.gif", 327, 62, 16, 16)

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

    ;------------------------ Rohstoffinputs -------------------------------------------------------------------

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

    $holz = GUICtrlCreateInput("", 45, 60, 70, 20, $ES_NUMBER)
    $lehm = GUICtrlCreateInput("", 145, 60, 70, 20, $ES_NUMBER)
    $eisen = GUICtrlCreateInput("", 245, 60, 70, 20, $ES_NUMBER)
    $g3de = GUICtrlCreateInput("", 345, 60, 70, 20, $ES_NUMBER)

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

    ;------------------------ Truppenicons -------------------------------------------------------------------

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

    GUICtrlCreatePic("Icons\1.gif", 20, 166, 16, 16)
    GUICtrlCreatePic("Icons\3.gif", 20, 202, 16, 16)
    GUICtrlCreatePic("Icons\6.gif", 20, 238, 16, 16)

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

    GUICtrlCreatePic("Icons\2.gif", 162, 166, 16, 16)
    GUICtrlCreatePic("Icons\5.gif", 162, 202, 16, 16)
    GUICtrlCreatePic("Icons\4.gif", 162, 238, 16, 16)

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

    GUICtrlCreatePic("Icons\7.gif", 298, 166, 16, 16)
    GUICtrlCreatePic("Icons\8.gif", 298, 202, 16, 16)

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

    ;------------------------ OK-Button -------------------------------------------------------------------

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

    $ok = GUICtrlCreateButton("Berechnen", 165, 320, 110, 30, 0)
    GUISetState(@SW_SHOW)

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

    ;------------------------ Toleranz -------------------------------------------------------------------

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

    Toleranz()

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

    Func Toleranz()

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

    GUICtrlCreateLabel("Toleranz:", 325, 323)
    GUICtrlCreateCombo("", 385, 320, 45, 20) ; create first item
    GUICtrlSetData(-1, " 0%| 5%|10%|25%|50%", "25%") ; add other item snd set a new default

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

    GUISetState()

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

    ; Run the GUI until the dialog is closed
    ;While 1
    ;$msg = GUIGetMsg()

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

    ;If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    ;WEnd
    EndFunc ;==>Toleranz

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

    ;------------------------ Prozent je Truppeneinheit -------------------------------------------------------------------

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

    Prozent()

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

    Func Prozent()

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

    $prozent_keule = GUICtrlCreateInput("0", 110, 165, 35, 20, $ES_NUMBER)
    $updown1 = GUICtrlCreateUpdown($prozent_keule)
    GUICtrlSetLimit(-1, 100, 0)

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

    $prozent_axt = GUICtrlCreateInput("0", 110, 200, 35, 20, $ES_NUMBER)
    $updown2 = GUICtrlCreateUpdown($prozent_axt)
    GUICtrlSetLimit(-1, 100, 0)

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

    $prozent_teuto = GUICtrlCreateInput("0", 110, 235, 35, 20, $ES_NUMBER)
    $updown3 = GUICtrlCreateUpdown($prozent_teuto)
    GUICtrlSetLimit(-1, 100, 0)

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

    $prozent_speer = GUICtrlCreateInput("0", 250, 165, 35, 20, $ES_NUMBER)
    $updown4 = GUICtrlCreateUpdown($prozent_speer)
    GUICtrlSetLimit(-1, 100, 0)

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

    $prozent_pala = GUICtrlCreateInput("0", 250, 200, 35, 20, $ES_NUMBER)
    $updown5 = GUICtrlCreateUpdown($prozent_pala)
    GUICtrlSetLimit(-1, 100, 0)

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

    $prozent_kundi = GUICtrlCreateInput("0", 250, 235, 35, 20, $ES_NUMBER)
    $updown7 = GUICtrlCreateUpdown($prozent_kundi)
    GUICtrlSetLimit(-1, 100, 0)

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

    $prozent_ramme = GUICtrlCreateInput("0", 390, 165, 35, 20, $ES_NUMBER)
    $updown6 = GUICtrlCreateUpdown($prozent_ramme)
    GUICtrlSetLimit(-1, 100, 0)

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

    $prozent_kata = GUICtrlCreateInput("0", 390, 200, 35, 20, $ES_NUMBER)
    $updown7 = GUICtrlCreateUpdown($prozent_kata)
    GUICtrlSetLimit(-1, 100, 0)

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

    GUISetState()

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

    $prozent_keule = GUICtrlRead($prozent_keule)
    $prozent_axt = GUICtrlRead($prozent_axt)
    $prozent_teuto = GUICtrlRead($prozent_teuto)

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

    $prozent_speer = GUICtrlRead($prozent_speer)
    $prozent_pala = GUICtrlRead($prozent_pala)
    $prozent_kundi = GUICtrlRead($prozent_kundi)

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

    $prozent_ramme = GUICtrlRead($prozent_ramme)
    $prozent_kata = GUICtrlRead($prozent_kata)

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

    $prozent = ($prozent_keule + $prozent_axt + $prozent_teuto + $prozent_speer + $prozent_pala + $prozent_ramme + $prozent_kata)
    $prozent_rest = 100 - $prozent

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

    GUICtrlCreateLabel("Unverteilt: " & $prozent_rest & "%", 355, 280)
    EndFunc ;==>Prozent

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

    ;------------------------ Auswahl Truppen -------------------------------------------------------------------

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

    TruppenAuswahl()

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

    Func TruppenAuswahl()

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

    $keule = GUICtrlCreateCheckbox("Keulen", 40, 165)
    $axt = GUICtrlCreateCheckbox("Äxte", 40, 200)
    $teuto = GUICtrlCreateCheckbox("Teutonen", 40, 235)

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

    $speer = GUICtrlCreateCheckbox("Speere", 182, 165)
    $pala = GUICtrlCreateCheckbox("Paladine", 182, 200)
    $kundi = GUICtrlCreateCheckbox("Kundi's", 182, 235)

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

    $ramme = GUICtrlCreateCheckbox("Rammen", 318, 165)
    $kata = GUICtrlCreateCheckbox("Katapulte", 318, 200)

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $ok
    EndSwitch

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

    if GUICtrlRead($axt) = $GUI_CHECKED Then $axtstat = 1
    ;If BitAND(GUICtrlRead($keule), $GUI_CHECKED) Then MsgBox(0, "", "keulen gewählt")
    #cs
    if GUICtrlRead($teuto) = $GUI_CHECKED Then dim $teoto_stat = 1
    if GUICtrlRead($speer) = $GUI_CHECKED Then dim $speer_stat = 1
    if GUICtrlRead($pala) = $GUI_CHECKED Then dim $pala_stat = 1
    if GUICtrlRead($kundi) = $GUI_CHECKED Then dim $kundi_stat = 1
    if GUICtrlRead($ramme) = $GUI_CHECKED Then dim $ramme_stat = 1
    if GUICtrlRead($kata) = $GUI_CHECKED Then dim $kata_stat = 1
    #ce
    WEnd

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

    While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then Exit
    if $msg = $ok Then ExitLoop
    WEnd
    EndFunc

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

    ;------------------------ Einlesen Resourcenangabe -------------------------------------------------------------------

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

    $holz = GUICtrlRead($holz)
    $lehm = GUICtrlRead($lehm)
    $eisen = GUICtrlRead($eisen)
    $g3de = GUICtrlRead($g3de)

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

    ;------------------------ Berechnung Keulen -------------------------------------------------------------------

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

    if $keule_stat = 1 then
    $holz_keule_ges = Floor($holz / $holz_keule)
    $lehm_keule_ges = Floor($lehm / $lehm_keule)
    $eisen_keule_ges = Floor($eisen / $eisen_keule)
    $g3de_keule_ges = Floor($g3de / $g3de_keule)

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

    $stringload_keule = StringSplit($holz_keule_ges & "," & $lehm_keule_ges & "," & $eisen_keule_ges & "," & $g3de_keule_ges, ",", 2)
    $nummberMin_keule = _MathEx_Min($stringload_keule)

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

    MsgBox(0, "Keulen", "Maximale Keulen: " & $nummberMin_keule)
    Else
    EndIf

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

    ;------------------------ Berechnung Äxte -------------------------------------------------------------------

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

    ; if $axtstat = 1 then

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

    $holz_axt_ges = Floor($holz / $holz_axt)
    $lehm_axt_ges = Floor($lehm / $lehm_axt)
    $eisen_axt_ges = Floor($eisen / $eisen_axt)
    $g3de_axt_ges = Floor($g3de / $g3de_axt)

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

    $stringload_axt = StringSplit($holz_axt_ges & "," & $lehm_axt_ges & "," & $eisen_axt_ges & "," & $g3de_axt_ges, ",", 2)
    $nummberMin_axt = _MathEx_Min($stringload_axt)

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

    MsgBox(0, "Äxte", "Maximale Äxte: " & $nummberMin_axt)
    ;Else
    #ce; EndIf

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

    ;------------------------ Berechnung Teutonen -------------------------------------------------------------------

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

    ; if $axtstat = 1 then

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

    $holz_teuto_ges = Floor($holz / $holz_teuto)
    $lehm_teuto_ges = Floor($lehm / $lehm_teuto)
    $eisen_teuto_ges = Floor($eisen / $eisen_teuto)
    $g3de_teuto_ges = Floor($g3de / $g3de_teuto)

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

    $stringload_teuto = StringSplit($holz_teuto_ges & "," & $lehm_teuto_ges & "," & $eisen_teuto_ges & "," & $g3de_teuto_ges, ",", 2)
    $nummberMin_teuto = _MathEx_Min($stringload_teuto)

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

    MsgBox(0, "Teutonen", "Maximale Teutonen: " & $nummberMin_teuto)
    ;Else
    ; EndIf

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

    ;------------------------ Berechnung Speere -------------------------------------------------------------------

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

    ;if $speerstat = 1 then

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

    $holz_speer_ges = Floor($holz / $holz_speer)
    $lehm_speer_ges = Floor($lehm / $lehm_speer)
    $eisen_speer_ges = Floor($eisen / $eisen_speer)
    $g3de_speer_ges = Floor($g3de / $g3de_speer)

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

    $stringload_speer = StringSplit($holz_speer_ges & "," & $lehm_speer_ges & "," & $eisen_speer_ges & "," & $g3de_speer_ges, ",", 2)
    $nummberMin_speer = _MathEx_Min($stringload_speer)

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

    MsgBox(0, "Speere", "Maximale Speere: " & $nummberMin_speer)
    ;Else
    ;EndIf

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

    ;------------------------ Berechnung Paladine -------------------------------------------------------------------

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

    ; if $axtstat = 1 then

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

    $holz_pala_ges = Floor($holz / $holz_pala)
    $lehm_pala_ges = Floor($lehm / $lehm_pala)
    $eisen_pala_ges = Floor($eisen / $eisen_pala)
    $g3de_pala_ges = Floor($g3de / $g3de_pala)

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

    $stringload_pala = StringSplit($holz_pala_ges & "," & $lehm_pala_ges & "," & $eisen_pala_ges & "," & $g3de_pala_ges, ",", 2)
    $nummberMin_pala = _MathEx_Min($stringload_pala)

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

    MsgBox(0, "Paladine", "Maximale Paladine: " & $nummberMin_pala)
    ;Else
    ; EndIf

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

    ;------------------------ Berechnung Kundschafter -------------------------------------------------------------------

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

    ; if $axtstat = 1 then

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

    $holz_kundi_ges = Floor($holz / $holz_kundi)
    $lehm_kundi_ges = Floor($lehm / $lehm_kundi)
    $eisen_kundi_ges = Floor($eisen / $eisen_kundi)
    $g3de_kundi_ges = Floor($g3de / $g3de_kundi)

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

    $stringload_kundi = StringSplit($holz_kundi_ges & "," & $lehm_kundi_ges & "," & $eisen_kundi_ges & "," & $g3de_kundi_ges, ",", 2)
    $nummberMin_kundi = _MathEx_Min($stringload_kundi)

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

    MsgBox(0, "Kundschafter", "Maximale Kundschafter: " & $nummberMin_kundi)
    ;Else
    ; EndIf

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

    ;------------------------ Berechnung Rammen -------------------------------------------------------------------

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

    ; if $axtstat = 1 then

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

    $holz_ramme_ges = Floor($holz / $holz_ramme)
    $lehm_ramme_ges = Floor($lehm / $lehm_ramme)
    $eisen_ramme_ges = Floor($eisen / $eisen_ramme)
    $g3de_ramme_ges = Floor($g3de / $g3de_ramme)

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

    $stringload_ramme = StringSplit($holz_ramme_ges & "," & $lehm_ramme_ges & "," & $eisen_ramme_ges & "," & $g3de_ramme_ges, ",", 2)
    $nummberMin_ramme = _MathEx_Min($stringload_ramme)

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

    MsgBox(0, "Rammen", "Maximale Rammen: " & $nummberMin_ramme)
    ;Else
    ; EndIf

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

    ;------------------------ Berechnung Kattapulte -------------------------------------------------------------------

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

    ; if $axtstat = 1 then

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

    $holz_kata_ges = Floor($holz / $holz_kata)
    $lehm_kata_ges = Floor($lehm / $lehm_kata)
    $eisen_kata_ges = Floor($eisen / $eisen_kata)
    $g3de_kata_ges = Floor($g3de / $g3de_kata)

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

    $stringload_kata = StringSplit($holz_kata_ges & "," & $lehm_kata_ges & "," & $eisen_kata_ges & "," & $g3de_kata_ges, ",", 2)
    $nummberMin_kata = _MathEx_Min($stringload_kata)

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

    MsgBox(0, "Kattapulte", "Maximale Kattapulte: " & $nummberMin_kata)
    ;Else
    ; EndIf

    [/autoit]
  • Wenn du das gecheckte reinpacken willst machs doch so :

    [autoit]

    Global $Check[1];Wie viele checkboxxen auch immer
    If GUICtrlRead($Checkbox1) = $GUI_CHECKED THen $Check[1] = 1

    [/autoit]

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

    • Offizieller Beitrag

    Hänge mal die Math_Ex.au3 an deinen Post mit an.

  • ah ok danke ich werds gleich mal ausprobieren :)

    hier die MathEx.au3 (die gefällt mir sehr gut, hab ich zum bestimmen der kleinsten zahl in einem string benutzt ;) )
    kann aber noch viel mehr ^^

    Spoiler anzeigen
    [autoit]


    ; #INDEX# =======================================================================================================================
    ; Titel..........: MathEx
    ; AutoIt Version.: 3.3.0.0 ++
    ; Sprache........: Deutsch
    ; Beschreibung...: Diese UDF ergänzt um einige mathematische Funktionen.
    ; Version........: 3.0.0.0
    ; ===============================================================================================================================

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

    ; #AUTHOR(S)# ===================================================================================================================
    ; Hauptentwickler: Matthias Gianfelice
    ; Mitentwickler..: BugFix, eukalyptus, Progandy, Deepred, AutoBert, Stilgar, L3viathan2142, Niko H.
    ;
    ; >> !! Danke an die ganze deutsche AutoIt Community !! <<
    ;
    ; ===============================================================================================================================

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

    ; #CURRENT# =====================================================================================================================
    ; _MathEx_Checksum
    ; _MathEx_IsDivisible
    ; _MathEx_IsPrime
    ; _MathEx_Pi
    ; _MathEx_Max
    ; _MathEx_Min
    ; _MathEx_CreatePrimes
    ; _MathEx_IsNumber
    ; _MathEx_Sqrt
    ; _MathEx_Mean
    ; _MathEx_Log
    ; _MathEx_IsEven
    ; _MathEx_PQ
    ; _MathEx_StandardDeviation
    ; _MathEx_GGT
    ; _MathEx_KGV
    ; _MathEx_Factorial
    ; _MathEx_Eul
    ; _MathEx_Point_Distance
    ; _MathEx_Point_InRectangle
    ; _MathEx_GraphInfo
    ; _MathEx_Point_OnLine
    ; _MathEx_Point_OnSegment
    ; ===============================================================================================================================

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _MathEx_Checksum
    ; Beschreibung...: Gibt die Quersumme einer Zahl zurück.
    ; Syntax.........: _MathEx_Checksum($number[, $modus=0])
    ; Parameter......: $number - Die Nummer, dessen Quersumme ermittelt werden soll
    ; $modus - Welche Quersumme zurückgegeben werden soll: 0: normal; 1:iterativ; 2:alternativ
    ; Rückgaben......: Erfolg - Die Quersumme
    ; Fehler - False, wenn $number oder $modus ungültig sind.
    ; Autor(en)......: BugFix <BugFix at autoit dot de>, Matthias Gianfelice <matthias at gianfelice dot de>
    ; ===============================================================================================================================
    Func _MathEx_Checksum($number, $modus = 0)
    Local $integer_number_mathex_checksum = Number($number)
    If Not _MathEx_IsNumber($integer_number_mathex_checksum) Or Not $integer_number_mathex_checksum > 0 Or Not IsInt($modus) Then Return False
    While StringLen($integer_number_mathex_checksum) > 1
    Local $array_number_mathex_checksum = StringSplit($integer_number_mathex_checksum, '', 2)
    $integer_number_mathex_checksum = 0
    If $modus = 2 Then
    Local $mul = -1
    For $i = UBound($array_number_mathex_checksum) - 1 To 1 Step -1
    $array_number_mathex_checksum[$i - 1] = $array_number_mathex_checksum[$i] + ($mul * $array_number_mathex_checksum[$i - 1])
    $mul *= -1
    Next
    Return $array_number_mathex_checksum[0]
    Else
    For $i = 0 To UBound($array_number_mathex_checksum) - 1
    $integer_number_mathex_checksum += $array_number_mathex_checksum[$i]
    Next
    If $modus = 0 Then ExitLoop
    EndIf
    WEnd
    Return $integer_number_mathex_checksum
    EndFunc ;==>_MathEx_Checksum

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _MathEx_IsDivisible
    ; Beschreibung...: Prüft, ob eine Zahl durch eine andere teilbar ist.
    ; Syntax.........: _MathEx_IsPrime($numdividend, $numdivisor)
    ; Parameter......: $numdividend - Der Dividend
    ; $numdivisor - Der Divisor
    ; Rückgaben......: Erfolg - Gibt 1 zurück, wenn der Dividend durch den Divisor teilbar ist, gibt 0 zurück, wenn nicht.
    ; Fehler - Gibt -1 zurück und setzt @error
    ; |0 - $numdividend und $numdivisor sind nicht teilbar
    ; |1 - $numdivisor ist 0
    ; Autor(en)......: eukalyptus <eukalyptus at autoit dot de>, Matthias Gianfelice <matthias at gianfelice dot de>
    ; ===============================================================================================================================
    Func _MathEx_IsDivisible($numdividend, $numdivisor)
    If Not _MathEx_IsNumber($numdividend) Or Not _MathEx_IsNumber($numdivisor) Then
    SetError(2)
    Return -1
    EndIf
    If $numdivisor = 0 Then
    SetError(1)
    Return -1
    EndIf
    If Not Mod($numdividend, $numdivisor) Then
    Return 1
    Else
    Return 0
    EndIf
    EndFunc ;==>_MathEx_IsDivisible

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _MathEx_IsPrime
    ; Beschreibung...: Prüft, ob eine Zahl eine Primzahl ist.
    ; Syntax.........: _MathEx_IsPrime($number[, $one_prime])
    ; Parameter......: $number - Die Nummer, die geprüft werden soll
    ; $one_prime - Auf 1 setzen, wenn 1 eine Primzahl sein soll.
    ; Rückgabe.......: Erfolg - Gibt 1 zurück, wenn die Zahl eine Primzahl ist, 0 wenn nicht
    ; Fehler - Gibt -1 zurück, wenn $number keine Zahl ist, oder $one_prime ungültig ist.
    ; Author ........: Progandy <Progandy at autoit dot de>, Matthias Gianfelice <matthias at gianfelice dot de>
    ; ===============================================================================================================================
    Func _MathEx_IsPrime($number, $one_prime = 0)
    If Not _MathEx_IsNumber($number) Or Not IsInt($one_prime) Or $one_prime > 1 Or $one_prime < 0 Then Return -1
    If $one_prime And $number = 1 Then Return 1
    If $number = 1 Then Return 0
    If $number = 2 Then Return 1
    If Mod($number, 2) = 0 Then Return 0
    For $i = 3 To Sqrt($number) Step 2
    If Mod($number, $i) = 0 Then Return 0
    Next
    Return 1
    EndFunc ;==>_MathEx_IsPrime

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _MathEx_Pi
    ; Beschreibung...: Gibt Pi relativ genau zurück
    ; Syntax.........: _MathEx_Pi()
    ; Rückgaben......: Erfolg - Gibt Pi zurück
    ; Autor(en)......: Stilgar <Stilgar at autoit dot de>, Deepred <Deepred at autoit dot de>,
    ; Matthias Gianfelice <matthias at gianfelice dot de>
    ; ===============================================================================================================================
    Func _MathEx_Pi()
    Return 4 * ATan(1)
    EndFunc ;==>_MathEx_Pi

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _MathEx_Max
    ; Beschreibung...: Gibt die größte Zahl in einem Array zurück.
    ; Syntax.........: _MathEx_Max($aNumbers[, $mode = 0])
    ; Parameter......: $aNumbers - 0-basiertes Array mit den Zahlen
    ; $mode - Was zurückgegeben werden soll:
    ; |0: Die größte Nummer
    ; |1: Die ID der größten Nummer im Array
    ; |2: Beides wird in einem Array zurückgegeben: 0 enthält die größte Nummer und 1 die ID.
    ; Rückgabe.......: Erfolg - Gibt einen String, eine Nummer oder ein Array zurück
    ; Fehler - Gibt -1 zurück und setzt @error
    ; |1 - $aNumbers ist kein Array oder $mode ist kein Integer
    ; |2 - Eine Nummer im Array ist keine Zahl, @extended enthält die Id
    ; Bemerkungen....: Wenn mehrere "größte" Zahlen enthalten sind, wird die erste zurückgegeben
    ; Autor(en)......: Matthias Gianfelice <matthias at gianfelice dot de>
    ; ===============================================================================================================================
    Func _MathEx_Max($aNumbers, $mode = 0)
    If Not IsArray($aNumbers) Or Not IsInt($mode) Then
    SetError(1)
    Return -1
    EndIf
    For $i = 0 To UBound($aNumbers) - 1
    If Not _MathEx_IsNumber($aNumbers[$i]) Then
    SetError(2, $i)
    Return -1
    EndIf
    Next
    Local $integer_mathex_maximal_nummer = 0
    For $i = 0 To UBound($aNumbers) - 1
    If Number($aNumbers[$i]) > $aNumbers[$integer_mathex_maximal_nummer] Then $integer_mathex_maximal_nummer = $i
    Next
    Switch $mode
    Case 0
    Return $aNumbers[$integer_mathex_maximal_nummer]
    Case 1
    Return $integer_mathex_maximal_nummer
    Case 2
    Local $array_mathex_number_final[2] = [$aNumbers[$integer_mathex_maximal_nummer], $integer_mathex_maximal_nummer]
    Return $array_mathex_number_final
    EndSwitch
    EndFunc ;==>_MathEx_Max

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _MathEx_Min
    ; Beschreibung...: Gibt die kleinste Zahl in einem Array zurück.
    ; Syntax.........: _MathEx_Min($aNumbers[, $mode = 0])
    ; Parameter......: $aNumbers - 0-basiertes Array mit den Zahlen
    ; $mode - Was zurückgegeben werden soll:
    ; |0: Die kleinste Nummer
    ; |1: Die ID der größten Nummer im Array
    ; |2: Beides wird in einem Array zurückgegeben: 0 enthält die kleinste Nummer und 1 die ID.
    ; Rückgabe.......: Erfolg - Gibt einen String, eine Nummer oder ein Array zurück
    ; Fehler - Gibt -1 zurück und setzt @error
    ; |1 - $aNumbers ist kein Array oder $mode ist kein Integer
    ; |2 - Eine Nummer im Array ist keine Zahl, @extended enthält die Id
    ; Bemerkungen....: Wenn mehrere "kleinste" Zahlen enthalten sind, wird die erste zurückgegeben
    ; Autor(en)......: Matthias Gianfelice <matthias at gianfelice dot de>
    ; ===============================================================================================================================
    Func _MathEx_Min($aNumbers, $mode = 0)
    If Not IsArray($aNumbers) Or Not IsInt($mode) Then
    SetError(1)
    Return -1
    EndIf
    For $i = 0 To UBound($aNumbers) - 1
    If Not _MathEx_IsNumber($aNumbers[$i]) Then
    SetError(2, $i)
    Return -1
    EndIf
    Next
    Local $integer_mathex_minimal_nummer = 0
    For $i = 0 To UBound($aNumbers) - 1
    If Number($aNumbers[$i]) < $aNumbers[$integer_mathex_minimal_nummer] Then $integer_mathex_minimal_nummer = $i
    Next
    Switch $mode
    Case 0
    Return $aNumbers[$integer_mathex_minimal_nummer]
    Case 1
    Return $integer_mathex_minimal_nummer
    Case 2
    Local $array_mathex_number_final[2] = [$aNumbers[$integer_mathex_minimal_nummer], $integer_mathex_minimal_nummer]
    Return $array_mathex_number_final
    EndSwitch
    EndFunc ;==>_MathEx_Min

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _MathEx_CreatePrimes
    ; Beschreibung...: Gibt ein Array voller Primzahlen zurück.
    ; Syntax.........: _MathEx_CreatePrimes($number)
    ; Parameter......: $number - Zwischen 2 und $number werden die Primzahlen gesucht
    ; Rückgaben......: Erfolg - Gibt ein Array zurück. Im 0ten Element steht die Anzahl an Zahlen, im Rest die Primzahlen selbst.
    ; Fehler - Gibt 0 zurück, wenn $number kein Integer ist oder kleiner als 2 ist
    ; Autor(en)......: AutoBert <AutoBert at autoit dot de>, Progandy <Progandy at autoit dot de>,
    ; Matthias Gianfelice <matthias at gianfelice dot de>
    ; ===============================================================================================================================
    Func _MathEx_CreatePrimes($number)
    If Not IsInt($number) Or $number < 2 Or $number > 16777215 Then Return 0
    $number += 3
    Local $array_mathex_gestrichen[$number - 2]
    For $i = 0 To $number - 3
    $array_mathex_gestrichen[$i] = False
    Next
    Local $i = 2
    While $i * $i <= $number
    If Not $array_mathex_gestrichen[$i] Then
    For $j = $i * $i To $number - 3 Step $i
    $array_mathex_gestrichen[$j] = True
    Next
    EndIf
    $i = $i + 1
    WEnd
    Local $integer_mathex_anzahl = 0
    For $i = 2 To $number - 3
    If Not $array_mathex_gestrichen[$i] Then $integer_mathex_anzahl += 1
    Next
    Local $array_mathex_primzahlen[$integer_mathex_anzahl + 1], $integer_mathex_aktuell = 1
    $array_mathex_primzahlen[0] = $integer_mathex_anzahl
    For $i = 2 To $number - 3
    If Not $array_mathex_gestrichen[$i] Then
    $array_mathex_primzahlen[$integer_mathex_aktuell] = $i
    $integer_mathex_aktuell += 1
    EndIf
    Next
    Return $array_mathex_primzahlen
    EndFunc ;==>_MathEx_CreatePrimes

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _MathEx_IsNumber
    ; Beschreibung...: Prüft, ob ein String gleich einer Nummer ist.
    ; Syntax.........: _MathEx_IsNumber($number)
    ; Parameter......: $number - Der String, der geprüft werden soll.
    ; Rückgaben......: Gibt 1 zurück, wenn der String eine Zahl ist, oder 0 wenn es nicht der Fall ist.
    ; Autor(en)......: Matthias Gianfelice <matthias at gianfelice dot de>
    ; ===============================================================================================================================
    Func _MathEx_IsNumber($number)
    If Not Number($number) = 0 Then
    Return 1
    ElseIf $number == "0" Or $number == 0 Then
    Return 1
    MsgBox(0, "", "")
    Else
    Return 0
    EndIf
    EndFunc ;==>_MathEx_IsNumber

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _MathEx_Sqrt
    ; Beschreibung...: Gibt die nte Wurzel von einer Zahl zurück.
    ; Syntax.........: _MathEx_Sqrt($number[, $sqrt=2])
    ; Parameter......: $number - Die Nummer, aus der die Wurzel gezogen werden soll
    ; $sqrt - Welche Wurzel gezogen werden soll
    ; Rückgaben......: Erfolg - Gibt die Wurzel zurück
    ; Fehler - Gibt -1 zurück und setzt @error:
    ; |1: $number oder $sqrt ist keine Nummer
    ; |2: $number ist negativ
    ; Autor(en)......: Matthias Gianfelice <matthias at gianfelice dot de>
    ; ===============================================================================================================================
    Func _MathEx_Sqrt($number, $sqrt = 2)
    If Not _MathEx_IsNumber($number) Or Not _MathEx_IsNumber($sqrt) Then
    SetError(1)
    Return -1
    EndIf
    If $number < 0 Then
    SetError(2)
    Return -1
    EndIf
    Return $number ^ (1 / $sqrt)
    EndFunc ;==>_MathEx_Sqrt

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _MathEx_Mean
    ; Beschreibung...: Gibt das Mittel einer Zahl zurück
    ; Syntax.........: _MathEx_Mean($aNumbers[, $modus=3])
    ; Parameter......: $aNumbers - Ein 0-basiertes Array mit allen Zahlen
    ; $modus - Welches Mittel verwendet werden soll (nach größe (HM <= GM <= AM <= QM))
    ; |1: harmonisches Mittel; 2: geometrisches Mittel; 3 (Standart): arithmetisches Mittel;
    ; |4: quadratisches Mittel
    ; Rückgaben......: Erfolg - Das jeweilige Mittel
    ; Fehler - Gibt False zurück und setzt @error:
    ; |1: $aNumbers ist kein Array oder $modus ist ungültig
    ; |2: Min. ein Arrayelement ist keine Zahl, in @extended steht die ID des jeweiligen
    ; Autor(en)......: Stilgar <Stilgar at autoit dot de>, Matthias Gianfelice <matthias at gianfelice dot de>
    ; ===============================================================================================================================
    Func _MathEx_Mean($aNumbers, $mode = 3)
    If Not IsArray($aNumbers) Or Not IsInt($mode) Or $mode < 1 Or $mode > 4 Then
    SetError(1)
    Return False
    EndIf
    For $i = 0 To UBound($aNumbers) - 1
    If Not _MathEx_IsNumber($aNumbers[$i]) Then
    SetError(2, $i)
    Return False
    EndIf
    Next
    Local $integer_mathex_ubound = UBound($aNumbers), $number_mathex_temp = 0
    Switch $mode
    Case 1 ; harmonisches Mittel
    For $i = 0 To $integer_mathex_ubound - 1
    $number_mathex_temp += 1 / $aNumbers[$i]
    Next
    $number_mathex_temp = $integer_mathex_ubound / $number_mathex_temp
    Case 2 ; geometrisches Mittel
    $number_mathex_temp = 1
    For $i = 0 To $integer_mathex_ubound - 1
    $number_mathex_temp = $number_mathex_temp * $aNumbers[$i]
    Next
    $number_mathex_temp = _MathEx_Sqrt($number_mathex_temp, $integer_mathex_ubound)
    If @error Then SetError(4, 0, "")
    Case 3 ; arithmetisches Mittel
    For $i = 0 To $integer_mathex_ubound - 1
    $number_mathex_temp += $aNumbers[$i]
    Next
    $number_mathex_temp = $number_mathex_temp / $integer_mathex_ubound
    Case 4 ; quadratisches Mittel
    For $i = 0 To $integer_mathex_ubound - 1
    $number_mathex_temp += $aNumbers[$i] ^ 2
    Next
    $number_mathex_temp = Sqrt($number_mathex_temp / 2)
    EndSwitch
    Return $number_mathex_temp
    EndFunc ;==>_MathEx_Mean

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _MathEx_Log
    ; Beschreibung...: Gibt den Logarithmus einer Zahl zurück
    ; Syntax.........: _MathEx_Log($nbasis, $nlog)
    ; Parameter......: $nbasis - Die Basis
    ; $nlog - Die Zahl
    ; Rückgaben......: Erfolg - Der Logarithmus zur Basis $nbasis von $nlog
    ; Fehler - Gibt False zurück, wenn eine der beiden Nummern keine Zahl ist.
    ; Autor(en)......: Matthias Gianfelice <matthias at gianfelice dot de>
    ; ===============================================================================================================================
    Func _MathEx_Log($nbasis, $nlog)
    If Not _MathEx_IsNumber($nbasis) Or Not _MathEx_IsNumber($nlog) Then Return False
    Return Log($nlog) / Log($nbasis)
    EndFunc ;==>_MathEx_Log

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _MathEx_IsEven
    ; Beschreibung...: Prüft, ob eine Zahl gerade ist
    ; Syntax.........: _MathEx_IsEven($number)
    ; Parameter......: $number - Die Nummer, die geprüft werden soll
    ; Rückgaben......: Erfolg - Gibt 1 zurück, wenn die Zahl gerade ist und 0, wenn nicht
    ; Fehler - Gibt -1 zurück, wenn $number keine Nummer ist
    ; Autor(en)......: Matthias Gianfelice <matthias at gianfelice dot de>
    ; ===============================================================================================================================
    Func _MathEx_IsEven($number)
    If Not _MathEx_IsNumber($number) Then Return -1
    If Mod($number, 2) = 0 Then
    Return 1
    Else
    Return 0
    EndIf
    EndFunc ;==>_MathEx_IsEven

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _MathEx_PQ
    ; Beschreibung...: Errechnet aus den Variablen p und q die quadratische Ergänzung
    ; Syntax.........: _MathEx_PQ($p, $q)
    ; Parameter......: $p - p
    ; $q - q
    ; Rückgaben......: Erfolg - Ein Array, dessen beide Elemente die Lösungen enthalten
    ; Fehler - False, falls die Wurzel negativ werden würde oder p bzw. q keine Zahlen sind
    ; Autor(en)......: Deepred <Deepred at autoit dot de>, L3viathan2142 <L3viathan2142 at autoit dot de>,
    ; Matthias Gianfelice <matthias at gianfelice dot de>
    ; ===============================================================================================================================
    Func _MathEx_PQ($p, $q)
    If Not _MathEx_IsNumber($p) Or Not _MathEx_IsNumber($q) Then Return False
    Local $number_mathex_sqrt = $p ^ 2 / 4 - $q, $number_mathex_other = $p / - 2
    If $number_mathex_sqrt < 0 Then Return False
    $number_mathex_sqrt = Sqrt($number_mathex_sqrt)
    Local $return_array[2] = [$number_mathex_other + $number_mathex_sqrt, $number_mathex_other - $number_mathex_sqrt]
    Return $return_array
    EndFunc ;==>_MathEx_PQ

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _MathEx_StandardDeviation
    ; Beschreibung...: Gibt die Standardabweichung übergebener Zahlen an
    ; Syntax.........: _MathEx_StandardDeviation($aNumbers)
    ; Parameter......: $aNumbers - Ein 0-basiertes Array mit allen Zahlen
    ; Rückgaben......: Erfolg - Die Standardabweichung
    ; Fehler - Gibt False zurück und setzt @error:
    ; |1: $aNumbers ist kein Array
    ; |2: Min. ein Arrayelement ist keine Zahl, in @extended steht die ID des jeweiligen
    ; Autor(en)......: Matthias Gianfelice <matthias at gianfelice dot de>
    ; ===============================================================================================================================
    Func _MathEx_StandardDeviation($aNumbers)
    If Not IsArray($aNumbers) Then
    SetError(1)
    Return False
    EndIf
    Local $integer_mathex_ubound = UBound($aNumbers), $number_mathex_temp = 0, $number_mathex_mittel = _MathEx_Mean($aNumbers)
    For $i = 0 To $integer_mathex_ubound - 1
    If Not _MathEx_IsNumber($aNumbers[$i]) Then
    SetError(2, $i)
    Return False
    EndIf
    $number_mathex_temp += ($aNumbers[$i] - $number_mathex_mittel) ^ 2
    Next
    Return Sqrt($number_mathex_temp / ($integer_mathex_ubound - 1))
    EndFunc ;==>_MathEx_StandardDeviation

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _MathEx_GGT
    ; Beschreibung...: Gibt den größten gemeinsamen Teiler von 2 Zahlen an (nach euklidischem Algorithmus)
    ; Syntax.........: _MathEx_GGT($numbera, $numberb)
    ; Parameter......: $numbera, $numberb - Zwei beliebige Zahlen
    ; Rückgabe.......: Erfolg - Gibt einen Integer zurück
    ; Fehler - Gibt False zurück, wenn es sich nicht um Zahlen handelt
    ; Autor(en)......: Niko H. <ChaosKeks at autoit dot de>, Matthias Gianfelice <matthias at gianfelice dot de>
    ; ===============================================================================================================================
    Func _MathEx_GGT($numbera, $numberb)
    If Not _MathEx_IsNumber($numbera) Or Not _MathEx_IsNumber($numberb) Then Return False
    If $numbera = 0 Or $numberb = 0 Then Return 1
    Local $number_mathex_rest1 = $numbera, $number_mathex_rest2 = $numberb, $number_mathex_temp
    Do
    $number_mathex_temp = Mod($number_mathex_rest1, $number_mathex_rest2)
    $number_mathex_rest1 = $number_mathex_rest2
    $number_mathex_rest2 = $number_mathex_temp
    Until $number_mathex_temp = 0
    Return $number_mathex_rest1
    EndFunc ;==>_MathEx_GGT

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _MathEx_KGV
    ; Beschreibung...: Gibt das kleinste gemeinsame Vielfache von 2 Zahlen an
    ; Syntax.........: _MathEx_kgV($numbera, $numberb)
    ; Parameter......: $numbera, $numberb - Zwei beliebige Zahlen
    ; Rückgabe.......: Erfolg - Gibt einen Integer zurück
    ; Fehler - Gibt False zurück, wenn es sich nicht um Zahlen handelt
    ; Autor(en)......: Niko H. <ChaosKeks at autoit dot de>, Matthias Gianfelice <matthias at gianfelice dot de>
    ; ===============================================================================================================================
    Func _MathEx_KGV($numbera, $numberb)
    Local $number_mathex_ggt = _MathEx_GGT($numbera, $numberb)
    If $number_mathex_ggt = False Then Return False
    Return $numbera * $numberb / $number_mathex_ggt
    EndFunc ;==>_MathEx_KGV

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _MathEx_Factorial
    ; Beschreibung...: Gibt eine beliebige Fakultät zurück
    ; Syntax.........: _MathEx_Factorial($number[, $mode = 0])
    ; Parameter......: $number - Eine beliebige natürliche Zahl
    ; $mode - Die gewünschte Fakultät:
    ; |0: Normale Fakultät
    ; |1: Primfakultät
    ; |2: Superfakultät (Vorsicht! Rekursiver Aufruf!)
    ; |3: Hyperfakultät
    ; Rückgabe.......: Erfolg - Gibt einen Integer zurück
    ; Fehler - Gibt False zurück, wenn $number oder $mode ungültig war
    ; Autor(en)......: Niko H. <ChaosKeks at autoit dot de>, Matthias Gianfelice <matthias at gianfelice dot de>
    ; ===============================================================================================================================
    Func _MathEx_Factorial($number, $mode = 0)
    If Not _MathEx_IsNumber($number) Or $number < 1 Or $mode < 0 Or $mode > 3 Or Not IsInt($mode) Then Return False
    Local $number_mathex_temp = 1
    Switch $mode
    Case 0
    For $i = 1 To $number
    $number_mathex_temp *= $i
    Next
    Case 1
    If $number = 1 Then Return 0
    For $i = 2 To $number
    If _MathEx_IsPrime($i) Then $number_mathex_temp *= $i
    Next
    Case 2
    For $i = 1 To $number
    $number_mathex_temp *= _MathEx_Factorial($i)
    Next
    Case 3
    For $i = 1 To $number
    $number_mathex_temp *= $i ^ $i
    Next
    EndSwitch
    Return $number_mathex_temp
    EndFunc ;==>_MathEx_Factorial

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _MathEx_Eul
    ; Beschreibung...: Gibt die eulersche Zahl nach einer vorgegebenen Genauigkeit an
    ; Syntax.........: _MathEx_Eul([$accuracy = 65])
    ; Parameter......: $accuracy - Die Genauigkeit (Zahl sollte einschließlich zwischen 1 und 65 liegen)
    ; Rückgabe.......: Erfolg - Gibt die eurlersche Zahl zurück
    ; Fehler - Gibt -1 zurück, wenn $accuracy ungültig war
    ; Autor(en)......: Niko H. <ChaosKeks at autoit dot de>, Matthias Gianfelice <matthias at gianfelice dot de>
    ; ===============================================================================================================================
    Func _MathEx_Eul($accuracy = 65)
    Local $number_mathex_eul = 1
    If Not IsInt($accuracy) Then Return -1
    If $accuracy < 1 Then $accuracy = 1
    If $accuracy > 65 Then $accuracy = 65
    For $i = 1 To $accuracy
    $number_mathex_eul += 1 / _MathEx_Factorial($i)
    Next
    Return $number_mathex_eul
    EndFunc ;==>_MathEx_Eul

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _MathEx_Point_Distance
    ; Beschreibung...: Ermittelt den Abstand zwischen zwei Punkten
    ; Syntax.........: _MathEx_Point_Distance($x1, $y1, $x2, $y2)
    ; Parameter......: $x1, $y1, $x2, $y2 - Die Koordinaten der Punkte
    ; Rückgabe.......: Erfolg - Gibt den Abstand zurück
    ; Fehler - Gibt -1 zurück, eine der Koordinaten ungültig war
    ; Autor(en)......: Matthias Gianfelice <matthias at gianfelice dot de>
    ; ===============================================================================================================================
    Func _MathEx_Point_Distance($x1, $y1, $x2, $y2)
    If Not _MathEx_IsNumber($x1) Or Not _MathEx_IsNumber($y1) Or Not _MathEx_IsNumber($x2) Or Not _MathEx_IsNumber($y2) Then Return -1
    Return Sqrt(($x1 - $x2) ^ 2 + ($y1 - $y2) ^ 2)
    EndFunc ;==>_MathEx_Point_Distance

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _MathEx_Point_InRectangle
    ; Beschreibung...: Ermittelt den Abstand zwischen zwei Punkten
    ; Syntax.........: _MathEx_Point_InRectangle($P1, $P2, $X)
    ; Parameter......: $P1, $P2 - Arrays mit den Koordinaten des linken oberen Punktes ($P1) und des rechten unteren ($P2)
    ; $X - Koordinaten des zu prüfenden Punkts
    ; => [0] enthält die x-Koordinate und [1] die y-Koordinate der entsprechenden Punkte
    ; Rückgabe.......: Erfolg - Gibt 1 zurück, wenn sich der Punkt im, 0 wenn er sich auf dem Rand und -1 wenn er sich außerhalb
    ; befindet
    ; Fehler - Gibt False zurück, wenn eine der Koordinaten ungültig war.
    ; Autor(en)......: Matthias Gianfelice <matthias at gianfelice dot de>
    ; ===============================================================================================================================
    Func _MathEx_Point_InRectangle($P1, $P2, $X)
    If Not IsArray($P1) Or Not IsArray($P2) Or Not IsArray($X) Then Return False
    If Not _MathEx_IsNumber($P1[0]) Or Not _MathEx_IsNumber($P1[1]) Or Not _MathEx_IsNumber($P2[0]) Or Not _MathEx_IsNumber($P2[1]) Then Return False
    If Not _MathEx_IsNumber($X[0]) Or Not _MathEx_IsNumber($X[1]) Then Return False
    If $P1[0] > $P2[0] Or $P1[1] < $P2[1] Then Return False
    Select
    Case $X[0] > $P1[0] And $X[0] < $P2[0] And $X[1] < $P1[1] And $X[1] > $P2[1]
    Return 1
    Case $X[0] = $P1[0] And $X[1] <= $P1[1] And $X[1] >= $P2[1]
    Return 0
    Case $X[0] = $P2[0] And $X[1] <= $P1[1] And $X[1] >= $P2[1]
    Return 0
    Case $X[1] = $P1[1] And $X[0] >= $P1[0] And $X[0] <= $P2[0]
    Return 0
    Case $X[1] = $P2[1] And $X[0] >= $P1[0] And $X[0] <= $P2[0]
    Return 0
    Case Else
    Return -1
    EndSelect
    EndFunc ;==>_MathEx_Point_InRectangle

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _MathEx_GraphInfo
    ; Beschreibung...: Liefert Steigung und y-Achsenabschnitt eines Graphen zurück
    ; Syntax.........: _MathEx_GraphInfo($P1, $P2)
    ; Parameter......: $P1, $P2 - Arrays mit den Koordinaten zweier Punkte, die auf der Geraden liegen. $P2 muss einen größeren
    ; x-Wert als $P1 haben!
    ; => [0] enthält die x-Koordinate und [1] die y-Koordinate der entsprechenden Punkte
    ; Rückgabe.......: Erfolg - Gibt ein Array zurück, dass folgende Elemente enthält:
    ; | [0] - Steigung
    ; | [1] - y-Achsenabschnitt
    ; Fehler - Gibt False zurück, wenn eine der Koordinaten ungültig war.
    ; Autor(en)......: Matthias Gianfelice <matthias at gianfelice dot de>
    ; ===============================================================================================================================
    Func _MathEx_GraphInfo($P1, $P2)
    If Not IsArray($P1) Or Not IsArray($P2) Then Return False
    If Not _MathEx_IsNumber($P1[0]) Or Not _MathEx_IsNumber($P1[1]) Or Not _MathEx_IsNumber($P2[0]) Or Not _MathEx_IsNumber($P2[1]) Then Return False
    If Not $P2[0] > $P1[0] Then Return False
    Local $array_mathex_return[2]
    $array_mathex_return[0] = ($P2[1] - $P1[1]) / ($P2[0] - $P1[0])
    $array_mathex_return[1] = $P1[1] - ($array_mathex_return[0] * $P1[0])
    Return $array_mathex_return
    EndFunc ;==>_MathEx_GraphInfo

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _MathEx_Point_OnLine
    ; Beschreibung...: Prüft, ob sich ein Punkt auf einer geraden befindet.
    ; Syntax.........: _MathEx_Point_OnLine($P1, $P2, $X)
    ; Parameter......: $P1, $P2 - Arrays mit den Koordinaten zweier auf der Geraden liegenden Punkte. $P2 muss einen größeren
    ; x-Wert als $P1 haben!
    ; $X - Koordinaten des zu prüfenden Punkts
    ; => [0] enthält die x-Koordinate und [1] die y-Koordinate der entsprechenden Punkte
    ; Rückgabe.......: Erfolg - Gibt 1 zurück, wenn sich der Punkt "über" der Geraden befindet, 0 wenn er sich auf der Geraden
    ; befindet und -1 wenn er sich "unter" der geraden befindet
    ; Fehler - Gibt False zurück, wenn eine der Koordinaten ungültig war.
    ; Autor(en)......: Matthias Gianfelice <matthias at gianfelice dot de>
    ; ===============================================================================================================================
    Func _MathEx_Point_OnLine($P1, $P2, $X)
    If Not IsArray($X) Then Return False
    Local $array_mathex_graphinfo = _MathEx_GraphInfo($P1, $P2)
    If $array_mathex_graphinfo == False Then Return False
    Local $number_mathex_term = $array_mathex_graphinfo[0] * $X[0] + $array_mathex_graphinfo[1]
    If $X[1] < $number_mathex_term Then
    Return -1
    ElseIf $X[1] > $number_mathex_term Then
    Return 1
    Else
    Return 0
    EndIf
    EndFunc ;==>_MathEx_Point_OnLine

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _MathEx_Point_OnSegment
    ; Beschreibung...: Prüft, ob sich ein Punkt auf einer Strecken befindet
    ; Syntax.........: _MathEx_Point_OnSegment($P1, $P2, $X)
    ; Parameter......: $P1, $P2 - Arrays mit den Koordinaten der zwei Endpunkte der Strecke. $P2 muss einen größeren x-Wert als $P1
    ; haben!
    ; $X - Koordinaten des zu prüfenden Punkts
    ; => [0] enthält die x-Koordinate und [1] die y-Koordinate der entsprechenden Punkte
    ; Rückgabe.......: Erfolg - Gibt 1 zurück, wenn sich der Punkt auf der Strecke befindet, 0 wenn nicht.
    ; Fehler - Gibt -1 zurück, wenn eine der Koordinaten ungültig war.
    ; Autor(en)......: Matthias Gianfelice <matthias at gianfelice dot de>
    ; ===============================================================================================================================
    Func _MathEx_Point_OnSegment($P1, $P2, $X)
    $number_mathex_online = _MathEx_Point_OnLine($P1, $P2, $X)
    If $number_mathex_online == False Then Return -1
    If Not $number_mathex_online = 0 Then Return 0
    If $X[0] >= $P1[0] And $X[0] <= $P2[0] Then
    Return 1
    Else
    Return 0
    EndIf
    EndFunc ;==>_MathEx_Point_OnSegment

    [/autoit]
  • Wenn du das gecheckte reinpacken willst machs doch so :

    [autoit]

    Global $Check[1];Wie viele checkboxxen auch immer
    If GUICtrlRead($Checkbox1) = $GUI_CHECKED THen $Check[1] = 1

    [/autoit]

    hmm also ich werd daraus nicht so schlau..
    ich muss doch auch definieren wo die checkboxen letztendlich sich befinden sollen (also längen- und breitenangabe)
    könntest du mir an hand meines scripts ein vereinfachtes beispiel zeigen?

  • Dein Script hängt bei Zeile 236 solange bis man es beendet in ner Schleife und der Button "Berechnen" hat keine Funktion.

    oh ja hast recht! hab das mal so abgeändert:

    [autoit]


    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $ok
    exitloop
    EndSwitch

    [/autoit]

    jetzt macht er zwar nach dem Button "Berechnen" weiter, jedoch rechnet er mir unten alles aus.
    ich möchte aber das er mir nur die werte ausrechnet bei denen ich auch einen hacken in die checkbox gemacht hab

  • Versuche es mal so, vll klappst ja, ich hatte Grade keine Lust mir die MatheEx.au3 runter zu laden.

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEX.au3>
    #include <EditConstants.au3>
    #include <MathEx.au3>

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

    ;----------------------- Kosten Keule -------------------------------------------------------------------

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

    Dim $holz_keule = 95
    Dim $lehm_keule = 75
    Dim $eisen_keule = 40
    Dim $g3de_keule = 40

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

    ;----------------------- Kosten Axt -------------------------------------------------------------------

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

    Dim $holz_axt = 130
    Dim $lehm_axt = 120
    Dim $eisen_axt = 170
    Dim $g3de_axt = 70

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

    ;----------------------- Kosten Teuto -------------------------------------------------------------------

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

    Dim $holz_teuto = 450
    Dim $lehm_teuto = 515
    Dim $eisen_teuto = 480
    Dim $g3de_teuto = 80

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

    ;----------------------- Kosten Speer -------------------------------------------------------------------

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

    Dim $holz_speer = 145
    Dim $lehm_speer = 70
    Dim $eisen_speer = 85
    Dim $g3de_speer = 40

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

    ;----------------------- Kosten Pala -------------------------------------------------------------------

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

    Dim $holz_pala = 370
    Dim $lehm_pala = 270
    Dim $eisen_pala = 290
    Dim $g3de_pala = 75

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

    ;----------------------- Kosten Kundi -------------------------------------------------------------------

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

    Dim $holz_kundi = 160
    Dim $lehm_kundi = 100
    Dim $eisen_kundi = 50
    Dim $g3de_kundi = 50

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

    ;----------------------- Kosten Ramme -------------------------------------------------------------------

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

    Dim $holz_ramme = 1000
    Dim $lehm_ramme = 300
    Dim $eisen_ramme = 350
    Dim $g3de_ramme = 70

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

    ;----------------------- Kosten Kata -------------------------------------------------------------------

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

    Dim $holz_kata = 900
    Dim $lehm_kata = 1200
    Dim $eisen_kata = 600
    Dim $g3de_kata = 60

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

    dim $keule_stat = 0
    ;----------------------- Menü -------------------------------------------------------------------

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

    $Main = GUICreate("Travian ResourceManager V0.8.9.7 beta - [Germane]", 445, 380)
    $MenuItem1 = GUICtrlCreateMenu("Über")
    $about = GUICtrlCreateMenuItem("Informationen", $MenuItem1)

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

    $Form1 = GUICreate("Informationen", 320, 153, 552, 264)
    $Label = GUICtrlCreateLabel("Travian ResourceManager V0.8.9.3 beta - [Germane]", 16, 20, 196, 17)
    $Labe2 = GUICtrlCreateLabel("Made bye Infected", 16, 40, 196, 17)
    $Labe3 = GUICtrlCreateLabel("http://infected.bplaced.net/", 16, 100, 196, 17)

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

    GUISetState(@SW_SHOW, $Main)

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

    ;------------------------ Oberfläche / text -------------------------------------------------------------------

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

    GUICtrlCreateLabel("Bitte Rohstoffmengen eingeben die zur Verfügung stehen:", 20, 25, 380, 20)
    GUICtrlSetFont(-1, 11, 400, 0, "MS Sans Serif")
    GUICtrlCreateLabel("Wählen Sie Truppen aus, die in die Berechnung einfließen:", 20, 120, 380, 40)
    GUICtrlSetFont(-1, 11, 400, 0, "MS Sans Serif")

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

    GUICtrlCreateLabel("Prozent:", 108, 150, 130, 15)
    GUICtrlCreateLabel("Prozent:", 248, 150, 270, 15)
    GUICtrlCreateLabel("Prozent:", 388, 150, 410, 15)
    GUICtrlCreateLabel("___________________________________________________________________________", 0, 290, 470, 15)
    GUICtrlSetColor(-1, 0xbebebe)
    GUICtrlCreateLabel("___________________________________________________________________________", 0, 90, 470, 15)
    GUICtrlSetColor(-1, 0xbebebe)
    GUICtrlCreateLabel("___________________________________________________________________________", 0, 0, 470, 15)
    GUICtrlSetColor(-1, 0xbebebe)

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

    ;------------------------ Rohstofficons -------------------------------------------------------------------

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

    GUICtrlCreatePic("Icons\h.gif", 27, 62, 16, 16)
    GUICtrlCreatePic("Icons\l.gif", 127, 62, 16, 16)
    GUICtrlCreatePic("Icons\e.gif", 227, 62, 16, 16)
    GUICtrlCreatePic("Icons\g.gif", 327, 62, 16, 16)

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

    ;------------------------ Rohstoffinputs -------------------------------------------------------------------

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

    $holz = GUICtrlCreateInput("", 45, 60, 70, 20, $ES_NUMBER)
    $lehm = GUICtrlCreateInput("", 145, 60, 70, 20, $ES_NUMBER)
    $eisen = GUICtrlCreateInput("", 245, 60, 70, 20, $ES_NUMBER)
    $g3de = GUICtrlCreateInput("", 345, 60, 70, 20, $ES_NUMBER)

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

    ;------------------------ Truppenicons -------------------------------------------------------------------

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

    GUICtrlCreatePic("Icons\1.gif", 20, 166, 16, 16)
    GUICtrlCreatePic("Icons\3.gif", 20, 202, 16, 16)
    GUICtrlCreatePic("Icons\6.gif", 20, 238, 16, 16)

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

    GUICtrlCreatePic("Icons\2.gif", 162, 166, 16, 16)
    GUICtrlCreatePic("Icons\5.gif", 162, 202, 16, 16)
    GUICtrlCreatePic("Icons\4.gif", 162, 238, 16, 16)

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

    GUICtrlCreatePic("Icons\7.gif", 298, 166, 16, 16)
    GUICtrlCreatePic("Icons\8.gif", 298, 202, 16, 16)

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

    ;------------------------ OK-Button -------------------------------------------------------------------

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

    $ok = GUICtrlCreateButton("Berechnen", 165, 320, 110, 30, 0)
    GUISetState(@SW_SHOW)

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

    ;------------------------ Toleranz -------------------------------------------------------------------

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

    Toleranz()

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

    Func Toleranz()

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

    GUICtrlCreateLabel("Toleranz:", 325, 323)
    GUICtrlCreateCombo("", 385, 320, 45, 20) ; create first item
    GUICtrlSetData(-1, " 0%| 5%|10%|25%|50%", "25%") ; add other item snd set a new default

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

    GUISetState()

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

    ; Run the GUI until the dialog is closed
    ;While 1
    ;$msg = GUIGetMsg()

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

    ;If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    ;WEnd
    EndFunc ;==>Toleranz

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

    ;------------------------ Prozent je Truppeneinheit -------------------------------------------------------------------

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

    Prozent()

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

    Func Prozent()

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

    $prozent_keule = GUICtrlCreateInput("0", 110, 165, 35, 20, $ES_NUMBER)
    $updown1 = GUICtrlCreateUpdown($prozent_keule)
    GUICtrlSetLimit(-1, 100, 0)

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

    $prozent_axt = GUICtrlCreateInput("0", 110, 200, 35, 20, $ES_NUMBER)
    $updown2 = GUICtrlCreateUpdown($prozent_axt)
    GUICtrlSetLimit(-1, 100, 0)

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

    $prozent_teuto = GUICtrlCreateInput("0", 110, 235, 35, 20, $ES_NUMBER)
    $updown3 = GUICtrlCreateUpdown($prozent_teuto)
    GUICtrlSetLimit(-1, 100, 0)

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

    $prozent_speer = GUICtrlCreateInput("0", 250, 165, 35, 20, $ES_NUMBER)
    $updown4 = GUICtrlCreateUpdown($prozent_speer)
    GUICtrlSetLimit(-1, 100, 0)

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

    $prozent_pala = GUICtrlCreateInput("0", 250, 200, 35, 20, $ES_NUMBER)
    $updown5 = GUICtrlCreateUpdown($prozent_pala)
    GUICtrlSetLimit(-1, 100, 0)

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

    $prozent_kundi = GUICtrlCreateInput("0", 250, 235, 35, 20, $ES_NUMBER)
    $updown7 = GUICtrlCreateUpdown($prozent_kundi)
    GUICtrlSetLimit(-1, 100, 0)

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

    $prozent_ramme = GUICtrlCreateInput("0", 390, 165, 35, 20, $ES_NUMBER)
    $updown6 = GUICtrlCreateUpdown($prozent_ramme)
    GUICtrlSetLimit(-1, 100, 0)

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

    $prozent_kata = GUICtrlCreateInput("0", 390, 200, 35, 20, $ES_NUMBER)
    $updown7 = GUICtrlCreateUpdown($prozent_kata)
    GUICtrlSetLimit(-1, 100, 0)

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

    GUISetState()

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

    $prozent_keule = GUICtrlRead($prozent_keule)
    $prozent_axt = GUICtrlRead($prozent_axt)
    $prozent_teuto = GUICtrlRead($prozent_teuto)

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

    $prozent_speer = GUICtrlRead($prozent_speer)
    $prozent_pala = GUICtrlRead($prozent_pala)
    $prozent_kundi = GUICtrlRead($prozent_kundi)

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

    $prozent_ramme = GUICtrlRead($prozent_ramme)
    $prozent_kata = GUICtrlRead($prozent_kata)

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

    $prozent = ($prozent_keule + $prozent_axt + $prozent_teuto + $prozent_speer + $prozent_pala + $prozent_ramme + $prozent_kata)
    $prozent_rest = 100 - $prozent

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

    GUICtrlCreateLabel("Unverteilt: " & $prozent_rest & "%", 355, 280)
    EndFunc ;==>Prozent

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

    ;------------------------ Auswahl Truppen -------------------------------------------------------------------

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

    TruppenAuswahl()

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

    Func TruppenAuswahl()
    Global $keule,$axt,$teuto,$speer,$pala,$kundi,$ramme,$kata
    $keule = GUICtrlCreateCheckbox("Keulen", 40, 165)
    $axt = GUICtrlCreateCheckbox("Äxte", 40, 200)
    $teuto = GUICtrlCreateCheckbox("Teutonen", 40, 235)

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

    $speer = GUICtrlCreateCheckbox("Speere", 182, 165)
    $pala = GUICtrlCreateCheckbox("Paladine", 182, 200)
    $kundi = GUICtrlCreateCheckbox("Kundi's", 182, 235)

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

    $ramme = GUICtrlCreateCheckbox("Rammen", 318, 165)
    $kata = GUICtrlCreateCheckbox("Katapulte", 318, 200)

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

    While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then Exit
    if $msg = $ok Then ExitLoop
    WEnd
    EndFunc

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

    ;------------------------ Einlesen Resourcenangabe -------------------------------------------------------------------

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

    $holz = GUICtrlRead($holz)
    $lehm = GUICtrlRead($lehm)
    $eisen = GUICtrlRead($eisen)
    $g3de = GUICtrlRead($g3de)

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

    ;------------------------ Berechnung Keulen -------------------------------------------------------------------

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

    if GUICTRLREAD($keule) = 1 then
    $holz_keule_ges = Floor($holz / $holz_keule)
    $lehm_keule_ges = Floor($lehm / $lehm_keule)
    $eisen_keule_ges = Floor($eisen / $eisen_keule)
    $g3de_keule_ges = Floor($g3de / $g3de_keule)

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

    $stringload_keule = StringSplit($holz_keule_ges & "," & $lehm_keule_ges & "," & $eisen_keule_ges & "," & $g3de_keule_ges, ",", 2)
    $nummberMin_keule = _MathEx_Min($stringload_keule)

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

    MsgBox(0, "Keulen", "Maximale Keulen: " & $nummberMin_keule)
    EndIf

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

    ;------------------------ Berechnung Äxte -------------------------------------------------------------------

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

    if GUICTRLREAD($Axt) = 1 then

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

    $holz_axt_ges = Floor($holz / $holz_axt)
    $lehm_axt_ges = Floor($lehm / $lehm_axt)
    $eisen_axt_ges = Floor($eisen / $eisen_axt)
    $g3de_axt_ges = Floor($g3de / $g3de_axt)

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

    $stringload_axt = StringSplit($holz_axt_ges & "," & $lehm_axt_ges & "," & $eisen_axt_ges & "," & $g3de_axt_ges, ",", 2)
    $nummberMin_axt = _MathEx_Min($stringload_axt)

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

    MsgBox(0, "Äxte", "Maximale Äxte: " & $nummberMin_axt)

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

    EndIf

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

    ;------------------------ Berechnung Teutonen -------------------------------------------------------------------

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

    if GUICTRLREAD($Teuto) = 1 then

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

    $holz_teuto_ges = Floor($holz / $holz_teuto)
    $lehm_teuto_ges = Floor($lehm / $lehm_teuto)
    $eisen_teuto_ges = Floor($eisen / $eisen_teuto)
    $g3de_teuto_ges = Floor($g3de / $g3de_teuto)

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

    $stringload_teuto = StringSplit($holz_teuto_ges & "," & $lehm_teuto_ges & "," & $eisen_teuto_ges & "," & $g3de_teuto_ges, ",", 2)
    $nummberMin_teuto = _MathEx_Min($stringload_teuto)

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

    MsgBox(0, "Teutonen", "Maximale Teutonen: " & $nummberMin_teuto)

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

    EndIf

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

    ;------------------------ Berechnung Speere -------------------------------------------------------------------

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

    if GUICTRLREAD($Speer) = 1 then

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

    $holz_speer_ges = Floor($holz / $holz_speer)
    $lehm_speer_ges = Floor($lehm / $lehm_speer)
    $eisen_speer_ges = Floor($eisen / $eisen_speer)
    $g3de_speer_ges = Floor($g3de / $g3de_speer)

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

    $stringload_speer = StringSplit($holz_speer_ges & "," & $lehm_speer_ges & "," & $eisen_speer_ges & "," & $g3de_speer_ges, ",", 2)
    $nummberMin_speer = _MathEx_Min($stringload_speer)

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

    MsgBox(0, "Speere", "Maximale Speere: " & $nummberMin_speer)

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

    EndIf

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

    ;------------------------ Berechnung Paladine -------------------------------------------------------------------

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

    if GUICTRLREAD($pala) = 1 then

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

    $holz_pala_ges = Floor($holz / $holz_pala)
    $lehm_pala_ges = Floor($lehm / $lehm_pala)
    $eisen_pala_ges = Floor($eisen / $eisen_pala)
    $g3de_pala_ges = Floor($g3de / $g3de_pala)

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

    $stringload_pala = StringSplit($holz_pala_ges & "," & $lehm_pala_ges & "," & $eisen_pala_ges & "," & $g3de_pala_ges, ",", 2)
    $nummberMin_pala = _MathEx_Min($stringload_pala)

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

    MsgBox(0, "Paladine", "Maximale Paladine: " & $nummberMin_pala)

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

    EndIf

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

    ;------------------------ Berechnung Kundschafter -------------------------------------------------------------------

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

    if GUICTRLREAD($kundi) = 1 then

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

    $holz_kundi_ges = Floor($holz / $holz_kundi)
    $lehm_kundi_ges = Floor($lehm / $lehm_kundi)
    $eisen_kundi_ges = Floor($eisen / $eisen_kundi)
    $g3de_kundi_ges = Floor($g3de / $g3de_kundi)

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

    $stringload_kundi = StringSplit($holz_kundi_ges & "," & $lehm_kundi_ges & "," & $eisen_kundi_ges & "," & $g3de_kundi_ges, ",", 2)
    $nummberMin_kundi = _MathEx_Min($stringload_kundi)

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

    MsgBox(0, "Kundschafter", "Maximale Kundschafter: " & $nummberMin_kundi)
    EndIf

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

    ;------------------------ Berechnung Rammen -------------------------------------------------------------------

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

    if GUICTRLREAD($ramme) = 1 then

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

    $holz_ramme_ges = Floor($holz / $holz_ramme)
    $lehm_ramme_ges = Floor($lehm / $lehm_ramme)
    $eisen_ramme_ges = Floor($eisen / $eisen_ramme)
    $g3de_ramme_ges = Floor($g3de / $g3de_ramme)

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

    $stringload_ramme = StringSplit($holz_ramme_ges & "," & $lehm_ramme_ges & "," & $eisen_ramme_ges & "," & $g3de_ramme_ges, ",", 2)
    $nummberMin_ramme = _MathEx_Min($stringload_ramme)

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

    MsgBox(0, "Rammen", "Maximale Rammen: " & $nummberMin_ramme)

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

    EndIf

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

    ;------------------------ Berechnung Kattapulte -------------------------------------------------------------------

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

    if GUICTRLREAD($kata) = 1 then

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

    $holz_kata_ges = Floor($holz / $holz_kata)
    $lehm_kata_ges = Floor($lehm / $lehm_kata)
    $eisen_kata_ges = Floor($eisen / $eisen_kata)
    $g3de_kata_ges = Floor($g3de / $g3de_kata)

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

    $stringload_kata = StringSplit($holz_kata_ges & "," & $lehm_kata_ges & "," & $eisen_kata_ges & "," & $g3de_kata_ges, ",", 2)
    $nummberMin_kata = _MathEx_Min($stringload_kata)

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

    MsgBox(0, "Kattapulte", "Maximale Kattapulte: " & $nummberMin_kata)
    EndIf

    [/autoit]

    Einmal editiert, zuletzt von Zeitriss (19. Juni 2010 um 14:28)

  • ich habs jetzt selbst hinbekommen. so ist mein aktuelles ergebnis:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEX.au3>
    #include <Constants.au3>
    #include <WindowsConstants.au3>
    #include <EditConstants.au3>
    #include <GuiToolTip.au3>
    #include <GuiEdit.au3>
    #include <GUIConstants.au3>
    #include <ListboxConstants.au3>
    #include <ButtonConstants.au3>
    #include <StaticConstants.au3>
    #include <MathEx.au3>
    #include <Array.au3>
    #include <GDIPlus.au3>

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

    ;----------------------- Kosten Keule -------------------------------------------------------------------

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

    Dim $holz_keule = 95
    Dim $lehm_keule = 75
    Dim $eisen_keule = 40
    Dim $g3de_keule = 40

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

    ;----------------------- Kosten Axt -------------------------------------------------------------------

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

    Dim $holz_axt = 130
    Dim $lehm_axt = 120
    Dim $eisen_axt = 170
    Dim $g3de_axt = 70

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

    ;----------------------- Kosten Teuto -------------------------------------------------------------------

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

    Dim $holz_teuto = 450
    Dim $lehm_teuto = 515
    Dim $eisen_teuto = 480
    Dim $g3de_teuto = 80

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

    ;----------------------- Kosten Speer -------------------------------------------------------------------

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

    Dim $holz_speer = 145
    Dim $lehm_speer = 70
    Dim $eisen_speer = 85
    Dim $g3de_speer = 40

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

    ;----------------------- Kosten Pala -------------------------------------------------------------------

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

    Dim $holz_pala = 370
    Dim $lehm_pala = 270
    Dim $eisen_pala = 290
    Dim $g3de_pala = 75

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

    ;----------------------- Kosten Kundi -------------------------------------------------------------------

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

    Dim $holz_kundi = 160
    Dim $lehm_kundi = 100
    Dim $eisen_kundi = 50
    Dim $g3de_kundi = 50

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

    ;----------------------- Kosten Ramme -------------------------------------------------------------------

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

    Dim $holz_ramme = 1000
    Dim $lehm_ramme = 300
    Dim $eisen_ramme = 350
    Dim $g3de_ramme = 70

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

    ;----------------------- Kosten Kata -------------------------------------------------------------------

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

    Dim $holz_kata = 900
    Dim $lehm_kata = 1200
    Dim $eisen_kata = 600
    Dim $g3de_kata = 60

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

    dim $keule_stat = 0
    ;----------------------- Menü -------------------------------------------------------------------

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

    $Main = GUICreate("Travian ResourceManager V0.12.9.2 beta - [Germane]", 445, 380)
    $MenuItem1 = GUICtrlCreateMenu("Über")
    $about = GUICtrlCreateMenuItem("Informationen", $MenuItem1)

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

    $Form1 = GUICreate("Informationen", 320, 153, 552, 264)
    $Label = GUICtrlCreateLabel("Travian ResourceManager V0.8.9.3 beta - [Germane]", 16, 20, 196, 17)
    $Labe2 = GUICtrlCreateLabel("Made bye Infected", 16, 40, 196, 17)
    $Labe3 = GUICtrlCreateLabel("http://infected.bplaced.net/", 16, 100, 196, 17)

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

    GUISetState(@SW_SHOW, $Main)

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

    ;------------------------ Oberfläche / text -------------------------------------------------------------------

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

    GUICtrlCreateLabel("Bitte Rohstoffmengen eingeben die zur Verfügung stehen:", 20, 25, 380, 20)
    GUICtrlSetFont(-1, 11, 400, 0, "MS Sans Serif")
    GUICtrlCreateLabel("Wählen Sie Truppen aus, die in die Berechnung einfließen:", 20, 120, 380, 40)
    GUICtrlSetFont(-1, 11, 400, 0, "MS Sans Serif")

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

    GUICtrlCreateLabel("Prozent:", 108, 150, 130, 15)
    GUICtrlCreateLabel("Prozent:", 248, 150, 270, 15)
    GUICtrlCreateLabel("Prozent:", 388, 150, 410, 15)
    GUICtrlCreateLabel("___________________________________________________________________________", 0, 290, 470, 15)
    GUICtrlSetColor(-1, 0xbebebe)
    GUICtrlCreateLabel("___________________________________________________________________________", 0, 90, 470, 15)
    GUICtrlSetColor(-1, 0xbebebe)
    GUICtrlCreateLabel("___________________________________________________________________________", 0, 0, 470, 15)
    GUICtrlSetColor(-1, 0xbebebe)

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

    ;------------------------ Rohstofficons -------------------------------------------------------------------

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

    GUICtrlCreatePic("Icons\h.gif", 27, 62, 16, 16)
    GUICtrlCreatePic("Icons\l.gif", 127, 62, 16, 16)
    GUICtrlCreatePic("Icons\e.gif", 227, 62, 16, 16)
    GUICtrlCreatePic("Icons\g.gif", 327, 62, 16, 16)

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

    ;------------------------ Rohstoffinputs -------------------------------------------------------------------

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

    $holz = GUICtrlCreateInput("", 45, 60, 70, 20, $ES_NUMBER)
    $lehm = GUICtrlCreateInput("", 145, 60, 70, 20, $ES_NUMBER)
    $eisen = GUICtrlCreateInput("", 245, 60, 70, 20, $ES_NUMBER)
    $g3de = GUICtrlCreateInput("", 345, 60, 70, 20, $ES_NUMBER)

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

    ;------------------------ Truppenicons -------------------------------------------------------------------

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

    GUICtrlCreatePic("Icons\1.gif", 20, 166, 16, 16)
    GUICtrlCreatePic("Icons\3.gif", 20, 202, 16, 16)
    GUICtrlCreatePic("Icons\6.gif", 20, 238, 16, 16)

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

    GUICtrlCreatePic("Icons\2.gif", 162, 166, 16, 16)
    GUICtrlCreatePic("Icons\5.gif", 162, 202, 16, 16)
    GUICtrlCreatePic("Icons\4.gif", 162, 238, 16, 16)

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

    GUICtrlCreatePic("Icons\7.gif", 298, 166, 16, 16)
    GUICtrlCreatePic("Icons\8.gif", 298, 202, 16, 16)

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

    ;------------------------ OK-Button -------------------------------------------------------------------

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

    $ok = GUICtrlCreateButton("Berechnen", 165, 320, 110, 30, 0)
    GUISetState(@SW_SHOW)

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

    ;------------------------ Toleranz -------------------------------------------------------------------

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

    Toleranz()

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

    Func Toleranz()

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

    GUICtrlCreateLabel("Toleranz:", 325, 323)
    GUICtrlCreateCombo("", 385, 320, 45, 20) ; create first item
    GUICtrlSetData(-1, " 0%| 5%|10%|25%|50%", "25%") ; add other item snd set a new default

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

    GUISetState()

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

    ; Run the GUI until the dialog is closed
    ;While 1
    ;$msg = GUIGetMsg()

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

    ;If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    ;WEnd
    EndFunc ;==>Toleranz

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

    ;------------------------ Prozent je Truppeneinheit -------------------------------------------------------------------

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

    Prozent()

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

    Func Prozent()

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

    $prozent_keule = GUICtrlCreateInput("0", 110, 165, 35, 20, $ES_NUMBER)
    $updown1 = GUICtrlCreateUpdown($prozent_keule)
    GUICtrlSetLimit(-1, 100, 0)

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

    $prozent_axt = GUICtrlCreateInput("0", 110, 200, 35, 20, $ES_NUMBER)
    $updown2 = GUICtrlCreateUpdown($prozent_axt)
    GUICtrlSetLimit(-1, 100, 0)

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

    $prozent_teuto = GUICtrlCreateInput("0", 110, 235, 35, 20, $ES_NUMBER)
    $updown3 = GUICtrlCreateUpdown($prozent_teuto)
    GUICtrlSetLimit(-1, 100, 0)

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

    $prozent_speer = GUICtrlCreateInput("0", 250, 165, 35, 20, $ES_NUMBER)
    $updown4 = GUICtrlCreateUpdown($prozent_speer)
    GUICtrlSetLimit(-1, 100, 0)

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

    $prozent_pala = GUICtrlCreateInput("0", 250, 200, 35, 20, $ES_NUMBER)
    $updown5 = GUICtrlCreateUpdown($prozent_pala)
    GUICtrlSetLimit(-1, 100, 0)

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

    $prozent_kundi = GUICtrlCreateInput("0", 250, 235, 35, 20, $ES_NUMBER)
    $updown7 = GUICtrlCreateUpdown($prozent_kundi)
    GUICtrlSetLimit(-1, 100, 0)

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

    $prozent_ramme = GUICtrlCreateInput("0", 390, 165, 35, 20, $ES_NUMBER)
    $updown6 = GUICtrlCreateUpdown($prozent_ramme)
    GUICtrlSetLimit(-1, 100, 0)

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

    $prozent_kata = GUICtrlCreateInput("0", 390, 200, 35, 20, $ES_NUMBER)
    $updown7 = GUICtrlCreateUpdown($prozent_kata)
    GUICtrlSetLimit(-1, 100, 0)

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

    GUISetState()

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

    $prozent_keule = GUICtrlRead($prozent_keule)
    $prozent_axt = GUICtrlRead($prozent_axt)
    $prozent_teuto = GUICtrlRead($prozent_teuto)

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

    $prozent_speer = GUICtrlRead($prozent_speer)
    $prozent_pala = GUICtrlRead($prozent_pala)
    $prozent_kundi = GUICtrlRead($prozent_kundi)

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

    $prozent_ramme = GUICtrlRead($prozent_ramme)
    $prozent_kata = GUICtrlRead($prozent_kata)

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

    $prozent = ($prozent_keule + $prozent_axt + $prozent_teuto + $prozent_speer + $prozent_pala + $prozent_ramme + $prozent_kata)
    $prozent_rest = 100 - $prozent

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

    GUICtrlCreateLabel("Unverteilt: " & $prozent_rest & "%", 355, 280)
    EndFunc ;==>Prozent

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

    ;------------------------ Checkboxen für Truppen -------------------------------------------------------------------

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

    $keule = GUICtrlCreateCheckbox("Keulen", 40, 165)
    $axt = GUICtrlCreateCheckbox("Äxte", 40, 200)
    $teuto = GUICtrlCreateCheckbox("Teutonen", 40, 235)

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

    $speer = GUICtrlCreateCheckbox("Speere", 182, 165)
    $pala = GUICtrlCreateCheckbox("Paladine", 182, 200)
    $kundi = GUICtrlCreateCheckbox("Kundi's", 182, 235)

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

    $ramme = GUICtrlCreateCheckbox("Rammen", 318, 165)
    $kata = GUICtrlCreateCheckbox("Katapulte", 318, 200)

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

    ;------------------------ Weiterschaltfunktion -------------------------------------------------------------------

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $ok
    ExitLoop
    Endswitch
    WEnd

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

    ;------------------------ Einlesen Resourcenangabe -------------------------------------------------------------------

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

    $holz = GUICtrlRead($holz)
    $lehm = GUICtrlRead($lehm)
    $eisen = GUICtrlRead($eisen)
    $g3de = GUICtrlRead($g3de)

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

    ;------------------------ Auswahl Truppen -------------------------------------------------------------------

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

    Truppenauswahl()

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

    Func Truppenauswahl()

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

    if GUICtrlRead($keule) = $GUI_CHECKED Then
    $holz_keule_ges = Floor($holz / $holz_keule)
    $lehm_keule_ges = Floor($lehm / $lehm_keule)
    $eisen_keule_ges = Floor($eisen / $eisen_keule)
    $g3de_keule_ges = Floor($g3de / $g3de_keule)

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

    $stringload_keule = StringSplit($holz_keule_ges & "," & $lehm_keule_ges & "," & $eisen_keule_ges & "," & $g3de_keule_ges, ",", 2)
    dim $nummberMin_keule = _MathEx_Min($stringload_keule)

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

    MsgBox(0, "Keulen", "Maximale Keulen: " & $nummberMin_keule)
    Else
    endif

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

    if GUICtrlRead($axt) = $GUI_CHECKED Then
    $holz_axt_ges = Floor($holz / $holz_axt)
    $lehm_axt_ges = Floor($lehm / $lehm_axt)
    $eisen_axt_ges = Floor($eisen / $eisen_axt)
    $g3de_axt_ges = Floor($g3de / $g3de_axt)

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

    $stringload_axt = StringSplit($holz_axt_ges & "," & $lehm_axt_ges & "," & $eisen_axt_ges & "," & $g3de_axt_ges, ",", 2)
    dim $nummberMin_axt = _MathEx_Min($stringload_axt)

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

    MsgBox(0, "Äxte", "Maximale Äxte: " & $nummberMin_axt)
    Else
    endif

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

    if GUICtrlRead($teuto) = $GUI_CHECKED Then
    $holz_teuto_ges = Floor($holz / $holz_teuto)
    $lehm_teuto_ges = Floor($lehm / $lehm_teuto)
    $eisen_teuto_ges = Floor($eisen / $eisen_teuto)
    $g3de_teuto_ges = Floor($g3de / $g3de_teuto)

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

    $stringload_teuto = StringSplit($holz_teuto_ges & "," & $lehm_teuto_ges & "," & $eisen_teuto_ges & "," & $g3de_teuto_ges, ",", 2)
    dim $nummberMin_teuto = _MathEx_Min($stringload_teuto)

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

    MsgBox(0, "Teutonen", "Maximale Teutonen: " & $nummberMin_teuto)
    Else
    endif

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

    if GUICtrlRead($speer) = $GUI_CHECKED Then
    $holz_speer_ges = Floor($holz / $holz_speer)
    $lehm_speer_ges = Floor($lehm / $lehm_speer)
    $eisen_speer_ges = Floor($eisen / $eisen_speer)
    $g3de_speer_ges = Floor($g3de / $g3de_speer)

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

    $stringload_speer = StringSplit($holz_speer_ges & "," & $lehm_speer_ges & "," & $eisen_speer_ges & "," & $g3de_speer_ges, ",", 2)
    dim $nummberMin_speer = _MathEx_Min($stringload_speer)

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

    MsgBox(0, "Speere", "Maximale Speere: " & $nummberMin_speer)
    Else
    endif

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

    if GUICtrlRead($pala) = $GUI_CHECKED Then
    $holz_pala_ges = Floor($holz / $holz_pala)
    $lehm_pala_ges = Floor($lehm / $lehm_pala)
    $eisen_pala_ges = Floor($eisen / $eisen_pala)
    $g3de_pala_ges = Floor($g3de / $g3de_pala)

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

    $stringload_pala = StringSplit($holz_pala_ges & "," & $lehm_pala_ges & "," & $eisen_pala_ges & "," & $g3de_pala_ges, ",", 2)
    dim $nummberMin_pala = _MathEx_Min($stringload_pala)

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

    MsgBox(0, "Paladine", "Maximale Paladine: " & $nummberMin_pala)
    Else
    endif

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

    if GUICtrlRead($kundi) = $GUI_CHECKED Then
    $holz_kundi_ges = Floor($holz / $holz_kundi)
    $lehm_kundi_ges = Floor($lehm / $lehm_kundi)
    $eisen_kundi_ges = Floor($eisen / $eisen_kundi)
    $g3de_kundi_ges = Floor($g3de / $g3de_kundi)

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

    $stringload_kundi = StringSplit($holz_kundi_ges & "," & $lehm_kundi_ges & "," & $eisen_kundi_ges & "," & $g3de_kundi_ges, ",", 2)
    dim $nummberMin_kundi = _MathEx_Min($stringload_kundi)

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

    MsgBox(0, "Kundschafter", "Maximale Kundschafter: " & $nummberMin_kundi)
    Else
    endif

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

    if GUICtrlRead($ramme) = $GUI_CHECKED Then
    $holz_ramme_ges = Floor($holz / $holz_ramme)
    $lehm_ramme_ges = Floor($lehm / $lehm_ramme)
    $eisen_ramme_ges = Floor($eisen / $eisen_ramme)
    $g3de_ramme_ges = Floor($g3de / $g3de_ramme)

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

    $stringload_ramme = StringSplit($holz_ramme_ges & "," & $lehm_ramme_ges & "," & $eisen_ramme_ges & "," & $g3de_ramme_ges, ",", 2)
    dim $nummberMin_ramme = _MathEx_Min($stringload_ramme)

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

    MsgBox(0, "Rammen", "Maximale Rammen: " & $nummberMin_ramme)
    Else
    endif

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

    if GUICtrlRead($kata) = $GUI_CHECKED Then
    $holz_kata_ges = Floor($holz / $holz_kata)
    $lehm_kata_ges = Floor($lehm / $lehm_kata)
    $eisen_kata_ges = Floor($eisen / $eisen_kata)
    $g3de_kata_ges = Floor($g3de / $g3de_kata)

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

    $stringload_kata = StringSplit($holz_kata_ges & "," & $lehm_kata_ges & "," & $eisen_kata_ges & "," & $g3de_kata_ges, ",", 2)
    dim $nummberMin_kata = _MathEx_Min($stringload_kata)

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

    MsgBox(0, "Kattapulte", "Maximale Kattapulte: " & $nummberMin_kata)
    Else
    endif
    EndFunc

    [/autoit]

    hat jemand ne idee wie man die inputs mit dem updown so hinbekommt, dass man auf die (in meinem fall) 8 inputs mit updown nur max. 100 punkte verteilen kann.

    also zb:

    [autoit]

    $prozent_ges = $prozent_keule + $prozent_axt + $prozent_teuto + $prozent_speer + $prozent_pala + $prozent_kundi + $prozent_ramme + $prozent_kata

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

    while 1
    if $prozent_ges < 100 then
    msgbox(0, "", "es wurden noch nicht alle prozente verteilt!")

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

    elseif $prozent_ges > 100 then
    msgbox(0, "", "es wurden zu viele prozente verteilt!")

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

    else
    exitloop
    WEnd

    [/autoit]

    funktioniert aber auf mein script bezogen noch nicht so :(

  • @auto_bert

    das ist kein bot das ist nur ein hilfstool um zu wissen was man am besten bauen sollte
    bauen musst du dennoch selbst..
    und auch das was du tun willst musst du eingeben.. du erhälst nur eine statistik was du von was bauen könntest
    dazu könnte man sich auch ne rießen lange exel-dabelle basteln..

    ich glaube nicht das es gegen die regeln ist

    ich möchte doch nur lokal einen "rechner" haben.. er macht ja nichts anderes als bestimmte werte durch andere zu teilen
    dazu könnte ich auch nen taschenrechner nehmen und das alles rechnen...

  • [autoit]

    If BitAnd(GUICtrlRead($Checkbox1),$GUI_CHECKED) THen
    ; Wenn die Checkbox angekreuzt ist führt er den Code aus
    ; ### Code ###
    EndIf

    [/autoit]


    Erstens gibt BitAnd nicht nur True oder False zurück (also ist die Abfrage schwachsinnig), zweitens gibt GUICtrlRead bei einer Checkbox nur zwei Werte zurück ($GUI_CHECKED und $GUI_UNCHECKED), da keine kombinierten States zurückgegeben werden z.B. $GUI_CHECKED + $GUI_UNCHECKED wird BitAND nicht benötigt.
    Das hier reicht völlig aus:

    Spoiler anzeigen
    [autoit]

    If GUICtrlRead($Check1) = $GUI_CHECKED Then
    MsgBox(0,"","Checkbox aktiv")
    Else
    MsgBox(0,"","Checkbox inaktiv")
    EndIf

    [/autoit]
    • Offizieller Beitrag

    Hier muss ich deutlich widersprechen.
    Zum einen gibt es (gerade bei Checkboxen) mehr als diese beiden Zustände, siehe Beispiel:

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>

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

    GUICreate('test', 200, 80)
    $hCheckbox = GUICtrlCreateCheckbox('Bitte testen...', 10, 10, 80, 20, $BS_AUTO3STATE)
    GUISetState()
    While True
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $hCheckbox
    MsgBox(0,0,GUICtrlRead($hCheckbox))
    EndSwitch
    WEnd

    [/autoit]

    Und zum anderen liefert die "If BitAnd"-Variante genau das richtige Ergebnis, denn es kommt entweder 0 "False" oder eben der mit BitAnd verknüpfte Wert heraus, was AutoIt als "True" interpretiert.

  • Man lernt nie aus :D. Danke Oscar den Stil kannte ich noch gar nicht. ^^

    Zitat

    denn es kommt entweder 0 "False" oder eben der mit BitAnd verknüpfte Wert heraus, was AutoIt als "True" interpretiert.


    Bei BitAND steht die 0 dann aber nicht für "False" im Sinne von falsch sondern für:

    [autoit]

    BitAND(2, 8)

    [/autoit]


    0010 = 2
    1000 = 8
    0000 = 0

    Anderes Beispiel:

    [autoit]

    BitAND(10, 8)

    [/autoit]


    1010 = 10
    1000 = 8
    1000 = 10