brauch Hilfe beim Code kürzen

  • Hallo zusammen,
    ich habe mir ein kleines Script gebastelt. Innerhalb einer Form möchte ich immer wiederkehrenden Code mit eine Schleife oder so was sparen. Leider haben meine Versuche keinen Erfolg gehabt. Könnt Ihr mir helfen ?
    muchas gracias
    ;(

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

    While 1
    $nMsg = GUIGetMsg()
    If $nMsg = $GUI_EVENT_CLOSE or $nMsg = $exititem Then
    Call ("_exit")
    EndIf
    If $nMsg = $bStart Then
    if $pause = False Then
    $oWMP.controls.stop()
    $pause = True
    Else
    $oWMP.controls.play()
    $pause = False
    EndIf
    EndIf
    if $nMsg =$bhome Then
    Call ("_homepage")
    EndIf
    If $nMsg = $sender0 Then
    Global $nbrx=0
    Call ("_send")
    EndIf
    .
    .
    .
    If $nMsg = $sender9 Then
    Global $nbrx=9
    Call ("_send")
    EndIf
    If $nMsg = $infoitem Then
    Call ("_hilfe")
    EndIf

    [/autoit]

    MfG
    UdoL :rock:

  • Spoiler anzeigen
    [autoit]


    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE, $exititem
    Call("_exit")
    Case $bStart
    If $pause = False Then
    $oWMP.controls.stop()
    $pause = True
    Else
    $oWMP.controls.play()
    $pause = False
    EndIf
    Case $bhome
    Call("_homepage")
    Case $sender0
    $nbrx = 0
    Call("_send")
    .
    .
    .
    Case $sender9
    $nbrx = 9
    Call("_send")

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

    Case $infoitem
    Call("_hilfe")
    EndSwitch
    WEnd

    [/autoit]

    Vermutlich könntest du die Funktion _send() noch so ausbauen, dass du die Variable $nbrx als Parameter übergeben kannst. Das würde noch in paar mehr Zeilen einsparen.

  • Sind $sender0 die Control-IDs von nacheinander erstellten GUI-Controls?
    Falls ja wäre eine etwas krude Methode einfach auszunutzen, dass die Control-IDs fortlaufend nummeriert werden:

    [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE, $exititem
    _exit()
    Case $bStart
    If $pause Then
    $oWMP.controls.play()
    $pause = False
    Else
    $oWMP.controls.stop()
    EndIf
    Case $bhome
    _homepage()
    Case $sender0 To $sender9
    $nbrx = $nMsg - $sender0
    _send()
    Case $infoitem
    _hilfe()
    EndSwitch
    WEnd

    [/autoit][autoit][/autoit][autoit][/autoit]
  • Jup funzt fast alles jetzt greift der Slider irgendwie ins Leere er bewegt sich zwar aber der Lautstärke verändert sich nicht.
    Aber was meinst Du mit krude Methode "dass die Control-IDs fortlaufend nummeriert werden" ?
    Ach ja dann müßt Ihr noch mir einen Tip geben, wie schliesse ich diesen Beitrag ?

    [autoit]


    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE, $exititem
    _exit()

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

    Case $bStart
    if $pause=False Then
    $oWMP.controls.play()
    $pause =True
    Else
    $oWMP.controls.stop()
    EndIf

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

    Case $bhome
    _homepage()

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

    Case $sender0 To $sender9
    $nbrx = $nMsg - $sender0
    _send()
    Case $infoitem
    _hilfe()

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

    Case $slider
    $oWMP.settings.volume = GUICtrlRead($slider)

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

    Case $iniview
    _iniview()
    ;GUISetState (@SW_HIDE,$form1)
    EndSwitch

    [/autoit]


    Vielen Dank

    MfG
    UdoL :rock:

    2 Mal editiert, zuletzt von UdoL (15. April 2015 um 19:07)

    • Offizieller Beitrag

    @UdoL, hier werden keine Startposts gelöscht, so etwas macht eine Thread absolut sinnfrei.
    Wenn das jeder machen würde, dann kann man gleich das Forum abschaffen.
    Aus dem Grund habe ich den Startpost wieder hergestellt.


    Zitat von UdoL


    Ach ja dann müßt Ihr noch mir einen Tip geben, wie schliesse ich diesen Beitrag ?

    Z.Z. kann man in Hilfe und Unterstützungs Forum keine Threads auf gelöst setzen, weil die Einstellungen versemmelt sind.
    Lasse einfach den Thread so, wie er ist.