Hilfe bei Func in Gui

  • Ein Anfänger bittet um Hilfe...
    ich habe mir vor einer Zeit mit dankenswerter Hilfe des Forums eine Funktion zusammenbasteln können, die mir bis jetzt sehr hilfreich war. Diese Funktion möchte ich jetzt in eine Gui mit Checkboxen "verpacken", die dann unterschiedliche Dateien verschieben sollen (amb_fall.dat, stat_fall.dat, leist.dat,...). Diese Funktion(en) wird dann über einen Button ausgeführt.

    Leider komme ich nicht klar, wie ich diese Funktion(en) entsprechend den Checkboxen zuordnen soll......

    Vielleicht kann mir wer Unterstützung bzw. einen Tipp zukommen lassen. Das Finden nach Antworten im Forum war (zumindes mit meinen Suchbegriffen) leider nicht erfolgreich.

    Vielen Dank im Voraus

    Spoiler anzeigen


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

    #Region ### START Koda GUI section ### Form=f:\download\autoit\scripts\ish_export.kxf
    $Form1_1 = GUICreate("Form1", 368, 322, 193, 115)
    $ordner = GUICtrlCreateInput("Ordner auswählen", 16, 152, 257, 21)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $leist = GUICtrlCreateCheckbox("nt101 - Leistungen", 104, 40, 137, 17)
    $amb_fall = GUICtrlCreateCheckbox("amb_fall - amb. Fall", 104, 112, 137, 17)
    $fall = GUICtrlCreateCheckbox("fall - stat. Fall", 104, 88, 137, 17)
    $Button1 = GUICtrlCreateButton("Suche", 272, 152, 75, 25, 0)
    $Label1 = GUICtrlCreateLabel("EXPORT VON ISH-SCHNITTSTELLENDATEIEN", 56, 8, 240, 17)
    $ziel = GUICtrlCreateInput("Ziel suchen", 16, 192, 257, 21)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Button2 = GUICtrlCreateButton("Suche", 272, 192, 75, 25, 0)
    $intervall = GUICtrlCreateInput("600000", 16, 232, 81, 21)
    $Label2 = GUICtrlCreateLabel("Zeitintervall in Millisekunden - default 10 Minuten", 104, 232, 233, 17)
    $diag = GUICtrlCreateCheckbox("nt021 - Diagnosen", 104, 64, 137, 17)
    $Button3 = GUICtrlCreateButton("START", 128, 272, 75, 25, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    Case $Button1
    $dateien=FileSelectFolder("Pfad zu Dateien","")
    GUICtrlSetData($ordner,$dateien & "\")

    ;-------------------------------------
    Case $Button2
    $zielordner=FileSelectFolder("Pfad zu Dateien","")
    GUICtrlSetData($ziel,$zielordner & "\")

    ;-------------------------------------
    Case $Button3

    If GUICtrlRead($leist) = 1 then
    MsgBox("","test",GUICtrlRead($ziel))
    EndIf

    ;-------------------------------------
    If GUICtrlRead($diag) = 1 then
    MsgBox("","","ja, diag",2)
    EndIf
    ;-------------------------------------
    If GUICtrlRead($fall) = 1 then
    MsgBox("","","ja, stat fall",2)
    EndIf
    ;-------------------------------------
    If GUICtrlRead($amb_fall) = 1 then
    MsgBox("","","ja, amb fall",2)
    EndIf


    EndSwitch
    WEnd

    ;-------------------------------------
    $Path=GUICtrlRead($ordner)
    $Dest=GUICtrlRead($ziel)

    AdlibRegister("_copyfiles", 1440000) ; = 24 Minuten Wartezeit

    While True
    WEnd
    Func _copyfiles()
    $Search = FileFindFirstFile($Path & "AMB_FALL" & "*.dat")

    If $Search = -1 Then
    MsgBox(0, "Error", "Alle Dateien wurden Kopiert!")
    Exit
    EndIf

    For $i = 1 To 5
    $File = FileFindNextFile($Search)
    If @error Then ExitLoop
    FileMove($Path & $File, $Dest & $File)
    Next

    FileClose($Search)
    EndFunc

    Einmal editiert, zuletzt von superpati (20. Dezember 2010 um 15:06)

  • In Zukunft bitte AutoIt Quellcode in

    Code
    [autoit][/autoit]

    brackets setzen. ;)
    Ich bin mir nicht ganz sicher was die Checkboxen bewirken sollen, aber den Status einer Checkbox überprüfen kannst du mit

    [autoit]

    If GUICtrlRead($cCheck, $GUI_CHECKED) Then

    [/autoit]

    .
    Und nach das Then kommt was du im Falle einer "gecheckten" Checkbox machen willst.

  • Nakroma Das ist das was ich geschrieben habe in grün :rolleyes: .

    Zitat

    Am besten dazu noch BitAND benutzen, da es mehrere States auf einmal geben kann.


    Dieser Fall ist bei mir bisher so gut wie nie aufgetreten, aber ist ein guter Hinweis. Also müsste es so lauten:

    [autoit]

    If BitAND(GUICtrlRead($cCheck), $GUI_CHECKED) = $GUI_CHECKED Then

    [/autoit]

    PS: Mir ist gerade aufgefallen, dass ich in meinem ersten Post totalen Müll verzapft habe :pinch: . Aber so stimmt es jetzt :rolleyes: .