If Hilfe für Option

  • EDIT: Schaut Bitte auch mal unten bei meinem Edit nach, vllt kann mir ja da auch noch einer helfen ? =) !! / Post Nr. 8

    Sry was nun kommt, aber ich bin ein Anfänger hoch 10!

    Ich will mit 2 RadioButton eine Option einfügen mit der man entweder IExplorer nutzen kann oder halt Mozilla ( zum verstehen und kennen lernen )
    Bekomme aber immer nur jeweils das eine hin. Ich würde gerne wissen worin mein Fehler liegt, oder ob ich komplett falsch bin mit dem was ich mache!?!

    [autoit]

    Case $Button1
    If $IE = True Then
    Run(@ProgramFilesDir & '\Internet Explorer\iexplore.exe "http://google.de"')
    ElseIf $IE = False Then
    Run(@ProgramFilesDir & '\Mozilla Firefox\firefox.exe "http://www.google.de"')
    Else
    If $MZ = True Then
    Run(@ProgramFilesDir & '\Mozilla Firefox\firefox.exe "http://www.google.de"')
    ElseIf $MZ = False Then
    Run(@ProgramFilesDir & '\Internet Explorer\iexplore.exe "http://google.de"')
    EndIf
    EndIf

    [/autoit]

    4 Mal editiert, zuletzt von rayray99 (2. Juni 2009 um 01:25)

  • Wie gesagt, nur um es zu verstehen.
    =) auch nicht viel mehr als vorher^^

    [autoit]

    #include <GUIConstants.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 405, 115, 193, 115)
    $Button1 = GUICtrlCreateButton("google", 16, 8, 75, 25, 0)
    $Button2 = GUICtrlCreateButton("Button2", 16, 48, 75, 25, 0)
    $IE = GUICtrlCreateRadio("IE", 232, 16, 113, 17)
    $MZ = GUICtrlCreateRadio("MZ", 232, 48, 113, 17)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $Button1
    If $IE = True Then
    Run(@ProgramFilesDir & '\Internet Explorer\iexplore.exe "http://google.de"')
    ElseIf $IE = False Then
    Run(@ProgramFilesDir & '\Mozilla Firefox\firefox.exe "http://www.google.de"')
    Else
    If $MZ = True Then
    Run(@ProgramFilesDir & '\Mozilla Firefox\firefox.exe "http://www.google.de"')
    ElseIf $MZ = False Then
    Run(@ProgramFilesDir & '\Internet Explorer\iexplore.exe "http://google.de"')
    EndIf
    EndIf
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]
  • Ich verstehe dich und dein Script nicht so richtig.
    Ich versuche aber jetzt einfach mal richtig hineinzuinterpretieren ;)
    .. und Achtung: Bin auch totaler Newbie in Sachen Programmierung.

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>

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

    Global $radio0, $radio1, $button1

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

    GUI()

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

    While(1)
    $msgGUI = GUIGetMsg()
    Switch $msgGUI
    Case $GUI_EVENT_CLOSE
    Exit
    Case $button1
    _run()
    EndSwitch
    Sleep(1)
    WEnd

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

    Func GUI ()
    $GUI = GUICreate("Deine GUI", 300, 300)

    $radio0 = GUICtrlCreateRadio("I-Explorer", 15, 15, -1, -1)
    $radio1 = GUICtrlCreateRadio("Mozilla", 15, 35, -1, -1)
    $button1 = GUICtrlCreateButton("Your Button", 15, 55, -1, -1)

    GuiSetState(@SW_SHOW)
    EndFunc

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

    Func _run()
    Select
    Case BitAND(GUICtrlRead($radio0), $GUI_CHECKED) = $GUI_CHECKED
    Run(@ProgramFilesDir & '\Internet Explorer\iexplore.exe "http://google.de"')
    Case BitAND(GUICtrlRead($radio1), $GUI_CHECKED) = $GUI_CHECKED
    Run(@ProgramFilesDir & '\Mozilla Firefox\firefox.exe "http://www.google.de"')
    EndSelect
    EndFunc

    [/autoit]

    Du kannst jetzt eines der beiden radio anklicken.
    Wenn du dann auf Button klickst, wird das Gewählte geöffnet.
    Ich hoffe, dass es das, was du wolltest.

    Übrigens: Du hast mir mit deinem Thread mehr geholfen, als ich evtl. dir.
    Ich habe nämlich ein ähnliches Problem.
    Ich wusste nicht, wie das Programm radio abfrägt. Ohne dich hätte ich also
    BitAND(GUICtrlRead($radio0), $GUI_CHECKED) = $GUI_CHECKED nie herausgefunden. ;)
    Danke :D

    Edit1: Hab des vor deinem Post angefertigt - sry, dass es nicht ganz zu deinem passt ;)

    2 Mal editiert, zuletzt von seTTs (2. Juni 2009 um 00:15)

  • HeHe kein ding nur leider muss ich gestehen das ich das mit If haben wollt, wenn das überhaupt geht Oo.
    Da ich mit func etc nicht gern was mache im moment...Taste mich lieber leicht heran.
    ( Falls wer arrays nutzt, MÄP, kann ich nicht ein stück...leider!


    Ich warte einfach mal ab!


    PS: Danke ;) )
    Edit: Jedem dem seinen seTTs *g*

  • Kein Problem xD

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    Global $radio0, $radio1, $button1 ;Das hier ist ohne "Func" nicht nötig. - Kannst du eigentlich rauslöschen ;)

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

    $GUI = GUICreate("Deine GUI", 300, 300)
    $radio0 = GUICtrlCreateRadio("I-Explorer", 15, 15, -1, -1)
    $radio1 = GUICtrlCreateRadio("Mozilla", 15, 35, -1, -1)
    $button1 = GUICtrlCreateButton("Your Button", 15, 55, -1, -1)

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

    GuiSetState(@SW_SHOW)

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

    While(1)
    $msgGUI = GUIGetMsg()
    Switch $msgGUI
    Case $GUI_EVENT_CLOSE
    Exit
    Case $button1
    If BitAND(GUICtrlRead($radio0), $GUI_CHECKED) = $GUI_CHECKED Then
    Run(@ProgramFilesDir & '\Internet Explorer\iexplore.exe "http://google.de"')
    ElseIf BitAND(GUICtrlRead($radio1), $GUI_CHECKED) = $GUI_CHECKED Then
    Run(@ProgramFilesDir & '\Mozilla Firefox\firefox.exe "http://www.google.de"')
    EndIf
    EndSwitch
    Sleep(1)
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • Hallo rayray99,

    hier das überarbeitete Skript:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 405, 115, 193, 115)
    $Button1 = GUICtrlCreateButton("google", 16, 8, 75, 25, 0)
    $Button2 = GUICtrlCreateButton("Button2", 16, 48, 75, 25, 0)
    GUICtrlCreateGroup("Browser auswählen",205,5,180,70);Gruppe erzeugen
    $IE = GUICtrlCreateRadio("IE", 212, 16, 113, 17)
    $MZ = GUICtrlCreateRadio("MZ", 212, 48, 113, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1) ; Gruppe schliessen
    GUICtrlSetState($MZ,$GUI_CHECKED)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $Button1
    If BitAND(GUICtrlRead($IE),$GUI_CHECKED) = $GUI_CHECKED Then Run(@ProgramFilesDir & '\Internet Explorer\iexplore.exe "http://google.de"')
    If BitAND(GUICtrlRead($MZ),$GUI_CHECKED) = $GUI_CHECKED Then Run(@ProgramFilesDir & '\Mozilla Firefox\firefox.exe "http://www.google.de"')
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]

    Das wesentliche um RadioButtons abzufragen ist GuiCtrlRead, das BitAnd dient nur zur Sicherheit, falls später ein RadioButton noch einen weiteren Status erhalten sollte, z.B.: $GUI_DISABLE. Üblicherweise werden RadioButtons zu GROUPs zusammengefasst, hierbei ist wichtig, dass die Gruppe auch wieder beendet wird. Viel Spass damit

    mfg (Auto)Bert

  • Danke euch beiden!! Genau das isses was ich wollte =)

    @seTTs: Hab das von AutoBert genommen =)
    autoBert: Hab das von Dir genommen *g*

    Endlich kann ich so richtig loslegen....
    MfG *Ich*

    EDIT: Zusatzfrage: Wie kann ich des gleichzeitig machen, wenn keine eingabe des RadioButton erfolgt, automatisch IE aktiv ist?
    Bzw von vorn herein schon ein RadioButton Aktiv ist. Was mir lieber wäre.

    2 Mal editiert, zuletzt von rayray99 (2. Juni 2009 um 01:12)

  • Ich hätte auch seins genommen ;)

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 405, 115, 193, 115)
    $Button1 = GUICtrlCreateButton("google", 16, 8, 75, 25, 0)
    $Button2 = GUICtrlCreateButton("Button2", 16, 48, 75, 25, 0)
    GUICtrlCreateGroup("Browser auswählen",205,5,180,70);Gruppe erzeugen
    $IE = GUICtrlCreateRadio("IE", 212, 16, 113, 17)
    GUICtrlSetState($IE, $GUI_CHECKED)
    $MZ = GUICtrlCreateRadio("MZ", 212, 48, 113, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1) ; Gruppe schliessen
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $Button1
    If BitAND(GUICtrlRead($IE),$GUI_CHECKED) = $GUI_CHECKED Then Run(@ProgramFilesDir & '\Internet Explorer\iexplore.exe "http://google.de"')
    If BitAND(GUICtrlRead($MZ),$GUI_CHECKED) = $GUI_CHECKED Then Run(@ProgramFilesDir & '\Mozilla Firefox\firefox.exe "http://www.google.de"')
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

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

    Das wäre das, was du haben möchtest.
    Was lustig ist, du hast bereits ein aktives RadioButton in deinem Skript, nämlich das von Mozilla.

    Erreichen kannst du diesen Status durch:

    [autoit]

    GUICtrlSetState()

    [/autoit]


    Stark vereinfacht lässt sich sagen:
    GUICtrlSetState( $variable.von.deinem.gui.bestandteil , $der.zu.setzende.status)
    Also:

    [autoit]

    GUICtrlSetState($IE, $GUI_CHECKED)

    [/autoit]

    Einmal editiert, zuletzt von seTTs (2. Juni 2009 um 01:35)

  • Hallo rayray99,

    schön dass es dir gefällt, wenn du jetzt richtig loslegst kriegen wir sicher bald was von dir zu sehen.

    @seTTs,

    Zitat

    Was lustig ist, du hast bereichts ein aktives RadioButton bei deinem Skript, nämlich das von Mozilla.


    ich hab im Script Mozilla schon mal auf geCHECKED (=ausgewählt) gesetzt, aber du hast das Schema kapiert und den Wunsch von rayray99 erfüllt, wie ich gerade sehe. Und da ich die RadioButtons in einer GROUP zusammengefasst habe, kann immer nur einer aktiv sein, deshalb ist es üblich einen vorzubelegen. Anders verhält es sich bei normalen CheckBoxen, hier können mehrere geCHECKED sein.

    mfg (Auto)Bert

  • Wobei..
    Es müssen nicht immer Gruppen um die radios gewählt werden.
    Ich hab vorhin eine GUI ausprobiert, bei der ich keine Gruppe hatte aber trotzdem konnte nur eines der Radio gewählt werden.
    Die Gruppe wird erst dann nötig, wenn mehr als nur zwischen 2 radios ausgewählt werden muss/kann.
    [] radio 1 [x] radio3
    [x] radio 2 [] radio4

    Dann muss eine Gruppe um radio1 und 2 und eine zweite Gruppe um radio3 und 4 platziert werden.
    Oder? ^^