Variabel bei GUI

  • Hallo^^ ich übe grade ein wenig mit Autoit Gui und sowas. komme grade nicht weiter.

    ich habe 4 Radiobuttons und für 2 davon eine Dropdown liste. jetzt möchte ich das wenn er zb Aus der dropdown liste das erste ausgewählt wird er eine funktion startet.

    hier das script:

    [autoit]

    #include <GuiConstantsEx.au3>
    #include <FF.au3>
    Opt('MustDeclareVars', 0)
    $gzeit1 = "10 Minuten"
    $gzeit2 = "20 Minuten"
    $gzeit3 = "30 Minuten"
    $fzeit1 = "1 Stunde"
    $fzeit2 = "2 Stunden"
    $fzeit3 = "3 Stunden"
    $fzeit4 = "4 Stunden"
    $fzeit5 = "5 Stunden"
    $fzeit6 = "6 Stunden"
    $fzeit7 = "7 Stunden"
    $fzeit8 = "8 Stunden"
    GUICreate("GUIÜbung",400,400)
    GUICtrlCreateLabel("label1",10,10)
    GuiCtrlCreateInput("Inputbox1",10,30,100)
    GuiCtrlCreateInput("Inputbox2",10,50,100)
    GuiCtrlCreateLabel("Button",10,80)
    $aus = GUICtrlCreateRadio("Aus",10,100,65)
    $func1 = GUICtrlCreateRadio("Funktion1",10,120,65)
    GUICtrlCreateCombo ("", 75, 120, 80)
    GUICtrlSetData(-1, $fzeit1, $fzeit1)
    GUICtrlSetData(-1, $fzeit2, $fzeit1)
    GUICtrlSetData(-1, $fzeit3, $fzeit1)
    GUICtrlSetData(-1, $fzeit4, $fzeit1)
    GUICtrlSetData(-1, $fzeit5, $fzeit1)
    GUICtrlSetData(-1, $fzeit6, $fzeit1)
    GUICtrlSetData(-1, $fzeit7, $fzeit1)
    GUICtrlSetData(-1, $fzeit8, $fzeit1)
    $func2 = GUICtrlCreateRadio("funktion2",10,140)
    $func3 = GUICtrlCreateRadio("funktion3",10,160)
    GUICtrlCreateCombo ("",75, 160, 80)
    GUICtrlSetData(-1, $gzeit1, $gzeit1)
    GUICtrlSetData(-1, $gzeit2, $gzeit1)
    GUICtrlSetData(-1, $gzeit3, $gzeit1)

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

    GUISetState(@SW_SHOW)
    while 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $aus
    aus ()
    Case $func1
    funktion1 ()
    Case $func2
    funktion2 ()
    Case $func3
    funktion3 ()
    EndSwitch
    WEnd

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

    func aus()
    Sleep(100)
    TrayTip("Pause", "The testgui is paused",0)
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $aus
    aus ()
    Case $func1
    funktion1 ()
    Case $func2
    funktion2 ()
    Case $func2
    funktion3 ()
    EndSwitch
    EndFunc

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

    func funktion1()
    Traytip("","",1)
    ;hier soll er jetzt schauen ob $fzeit1 -8 ausgewählt wird und daraus ne neue funktion geladen wird
    EndFunc

    [/autoit]

    hoffe ihr könnt helfen

  • Ich hätte dass so gemacht:

    Spoiler anzeigen
    [autoit]

    #include <GuiConstantsEx.au3>
    #include <FF.au3>
    Opt('MustDeclareVars', 0)
    $gzeit1 = "10 Minuten"
    $gzeit2 = "20 Minuten"
    $gzeit3 = "30 Minuten"
    $fzeit1 = "1 Stunde"
    $fzeit2 = "2 Stunden"
    $fzeit3 = "3 Stunden"
    $fzeit4 = "4 Stunden"
    $fzeit5 = "5 Stunden"
    $fzeit6 = "6 Stunden"
    $fzeit7 = "7 Stunden"
    $fzeit8 = "8 Stunden"
    GUICreate("GUIÜbung",400,400)
    GUICtrlCreateLabel("label1",10,10)
    GuiCtrlCreateInput("Inputbox1",10,30,100)
    GuiCtrlCreateInput("Inputbox2",10,50,100)
    GuiCtrlCreateLabel("Button",10,80)
    $aus = GUICtrlCreateRadio("Aus",10,100,65)
    $func1 = GUICtrlCreateRadio("Funktion1",10,120,65)
    $fzeit = GUICtrlCreateCombo ("", 75, 120, 80)
    GUICtrlSetData(-1, $fzeit1, $fzeit1)
    GUICtrlSetData(-1, $fzeit2, $fzeit1)
    GUICtrlSetData(-1, $fzeit3, $fzeit1)
    GUICtrlSetData(-1, $fzeit4, $fzeit1)
    GUICtrlSetData(-1, $fzeit5, $fzeit1)
    GUICtrlSetData(-1, $fzeit6, $fzeit1)
    GUICtrlSetData(-1, $fzeit7, $fzeit1)
    GUICtrlSetData(-1, $fzeit8, $fzeit1)
    $func2 = GUICtrlCreateRadio("funktion2",10,140)
    $func3 = GUICtrlCreateRadio("funktion3",10,160)
    $gzeit = GUICtrlCreateCombo ("",75, 160, 80)
    GUICtrlSetData(-1, $gzeit1, $gzeit1)
    GUICtrlSetData(-1, $gzeit2, $gzeit1)
    GUICtrlSetData(-1, $gzeit3, $gzeit1)
    $button1 = GUICtrlCreateButton("Abfrage",10,180)
    GUISetState(@SW_SHOW)
    while 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $aus
    aus ()
    Case $func1
    funktion1 ()
    Case $func2
    funktion2 ()
    Case $func3
    funktion3 ()
    Case $buttton1
    _Abfrage()
    EndSwitch
    WEnd

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

    func aus()
    Sleep(100)
    TrayTip("Pause", "The testgui is paused",0)
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $aus
    aus ()
    Case $func1
    funktion1 ()
    Case $func2
    funktion2 ()
    Case $func2
    funktion3 ()
    EndSwitch
    EndFunc

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

    func _Abfrage()
    Traytip("","",1)
    $read = GUICtrlRead($fzeit)
    If $read = "1 Stunde" then
    MsgBox(0,"",$read)
    ElseIf $read = "2 Stunden" then
    MsgBox(0,"",$read)
    ;...
    Endif
    EndFunc

    [/autoit]
  • ok danke für die hilfe. es hat geklapt

    Ich möchte kein anderes thema aufmachen desswegen frage ich hier:

    ich will in Firefox eine Dropdownliste auslesen, also so ein ding wo man was auswählen kann, (nicht eingeben)
    aber ich finde den befehl nicht. In dem Quelltext wird es input genannt. und das ganze ist mit html geschrieben. kann ich das überhaupt mit ff.au3 bewerkstelligen? wenn nicht, wie sonst?

    MfG

  • Hallo raydock,

    hier ein Beispiel mit 2 Combos:

    Spoiler anzeigen
    [autoit]

    ; *** Start added by AutoIt3Wrapper ***
    #include <GUIConstantsEx.au3>
    ; *** End added by AutoIt3Wrapper ***
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Add_Constants=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <Date.au3>

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

    $Form1 = GUICreate("2 Combos",200,150)
    $cbo1 = GUICtrlCreateCombo("",5,5,190)
    GUICtrlSetData($cbo1,"Täglich")
    GUICtrlSetData($cbo1,"Wöchentlich")
    GUICtrlSetData($cbo1,"Monatlich")
    GUICtrlSetData($cbo1,"Jährlich")
    $cbo2 = GUICtrlCreateCombo("",5,45,190)

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

    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    case $Gui_Event_Close
    Exit
    case $cbo1
    $sCbo1 = GUICtrlRead($cbo1)
    GUICtrlSetData($cbo2,"","")
    Switch $sCbo1
    Case "Täglich"
    $sCbo2 = ""
    for $i = 9 to 17
    $sCbo2 &= $i & " Uhr"
    If $i < 17 Then $sCbo2 &= "|"
    Next
    GUICtrlSetData($cbo2,$sCbo2,"9 Uhr")
    Case "Wöchentlich"
    $sCbo2 = ""
    for $i = 1 to 7
    $sCbo2 &= _Locale_DayName($i)
    If $i < 7 Then $sCbo2 &= "|"
    Next
    GUICtrlSetData($cbo2,$sCbo2,_Locale_DayName(1))
    case "Monatlich"
    $sCbo2 = ""
    for $i = 1 to 5
    $sCbo2 &= $i & ". Woche"
    If $i < 5 Then $sCbo2 &= "|"
    Next
    GUICtrlSetData($cbo2,$sCbo2,"1. Woche")
    case "Jährlich"
    $sCbo2 = ""
    for $i = 1 to 12
    $sCbo2 &= _Locale_MonthName($i)
    If $i < 12 Then $sCbo2 &= "|"
    Next
    GUICtrlSetData($cbo2,$sCbo2,_Locale_MonthName(@MON))
    EndSwitch
    EndSwitch
    WEnd

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

    Func _Locale_MonthName($Month, $Abbrev = False)
    ; ==========================================================================================
    ; Autor: Großvater (http://www.autoit.de)
    ; Parameter:
    ; $Month - Nummer des Monats (1 - 12)
    ; $Abbrev - abgekürzten Namen liefern:
    ; |0 : nein
    ; |1 : ja
    ; ==========================================================================================
    Local Const $LOCALE_USER_DEFAULT = 0x0400
    Local Const $LOCALE_SMONTHNAME = 0x37
    Local Const $LOCALE_LOCALE_SABBREVMONTHNAME = 0x43
    Local $LCType = $LOCALE_SMONTHNAME
    If $Abbrev Then $LCType = $LOCALE_LOCALE_SABBREVMONTHNAME
    If Not StringIsInt($Month) Or $Month < 1 Or $Month > 12 Then Return False
    Local $aResult = DllCall("Kernel32.dll", "Int", "GetLocaleInfoA", _
    "UInt", $LOCALE_USER_DEFAULT, _
    "UInt", $LCType + $Month, _
    "Str", "", _
    "Int", 255)
    If @error Or $aResult[0] = 0 Then Return False
    Return $aResult[3]
    EndFunc

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

    Func _Locale_DayName($WDay, $Abbrev = False)
    ; ==========================================================================================
    ; Autor: Großvater (http://www.autoit.de)
    ; Parameter:
    ; $WDay - Nummer des Wochentages (1 - 7) (!!! 1 ist Montag (s.u.) !!!)
    ; $Abbrev - abgekürzten Namen liefern:
    ; |0 : nein
    ; |1 : ja
    ; Anmerkungen:
    ; Zu meinem Erstaunen hat MS in WinNLS.h folgende Konstanten definiert:
    ; #define LOCALE_SDAYNAME1 0x0000002A // long name for Monday
    ; ...
    ; #define LOCALE_SDAYNAME7 0x00000030 // long name for Sunday
    ; Anders als beim Macro @WDAY gilt deshalb der Montag als Tag 1 und der Sonntag
    ; als Tag 7. Der passende Wert lässt sich per Aufruf der UDF-Funktion
    ; _DateToDayOfWeekISO()
    ; ermitteln.
    ; ==========================================================================================
    Local Const $LOCALE_USER_DEFAULT = 0x0400
    Local Const $LOCALE_SDAYNAME = 0x29
    Local Const $LOCALE_SABBREVDAYNAME = 0x30
    Local $LCType = $LOCALE_SDAYNAME
    If $Abbrev Then $LCType = $LOCALE_SABBREVDAYNAME
    If Not StringIsInt($WDay) Or $WDay < 1 Or $WDay > 7 Then Return False
    Local $aResult = DllCall("Kernel32.dll", "Int", "GetLocaleInfoA", _
    "UInt", $LOCALE_USER_DEFAULT, _
    "UInt", $LCType + $WDay, _
    "Str", "", _
    "Int", 255)
    If @error Or $aResult[0] = 0 Then Return False
    Return $aResult[3]
    EndFunc

    [/autoit]

    daran kannst du sehen wie einfach es ist auf die Veränderung einer Combo zu reagieren

    Ps.: das du in einer func eine 2. Endlosschleife machst, ist nicht nötig

    Edit: da hätte ich wohl meinen FF vor dem Posten refreshen sollen oder vor dem absenden etwas weiter nach unten scrollen

    mfg autoBert

  • Hi,
    hier so kannst du die Pizzanamen raussuchen.

    [autoit]

    #include <Array.au3>
    $sHTML = BinaryToString(InetRead("http://ff-au3-example.thorsten-willert.de/"))
    $aREt = StringRegExp($sHTML,"<option>(\w+)<\/option>",3)
    _ArrayDisplay($aREt)

    [/autoit]

    //Edit: Und für die Seite wo mann eingeloggt sein muss. Da brauchst du mir nur den HTML Code schicken und die Infos die die Rausgefitert haben willst dann bau ich dir was