Probleme mit RadioBox-Zuordnung

  • Ich habe jetzt ein weiteres Problem:
    Wie kann ich es schaffen, dass sie Auswahl in einer RadioBox das gesamte Programm beeinflusst? Z. B. wenn ich die Radiobox auswähle, soll sich der "Datei öffnen..."-Dialog anpassen. Wenn ich die "verschlüsseln"-RadioBox auswähle, soll der "Datei öffnen..."-Dialog *.txt-Dateien öffnen (das mit dem *.txt-Filter hab' ich schon hingekriegt :D ). Wenn ich die "entschlüsseln"-RadioBox auswähle soll es *.cpt und *.txt-Dateien öffnen.
    Ich hab es schon mit einer

    [autoit]

    Case

    [/autoit]

    -Schleife in einer

    [autoit]

    Case

    [/autoit]

    -Schleife probiert. Und mit einem "If-clause", der Variablen setzt.
    Hta aber nicht funktioniert ;(

    [autoit]

    Case

    [/autoit]

    a la

    Spoiler anzeigen
    [autoit]


    While 1
    $msg=GuiGetMsg( )
    Select
    Case $msg=$EnschID
    Select
    Case;...
    Case;...
    EndSelect
    EndSelect
    WEnd
    Exit
    ;RadioBox schon erstellt, mit den richtigen Variablen ($VerschID, $EntschID

    [/autoit]


    Wo liegt mein Problem?
    Und wenn man keine

    [autoit]

    Case

    [/autoit]

    -Schleife in einer

    [autoit]

    Case

    [/autoit]

    -Schleife machen kann, wie umgehe ich das Problem?

    Mit frndl. Grüßen, Ihr Lieutnant Commander Data

    Widerstand ist Zwecklos!

    Meine Projekte: Kizzys Controller, 2nd Desktop und Versteckte Dateien Assistent
    Meine Downloadwebsite .

    Einmal editiert, zuletzt von Data (22. Mai 2010 um 12:51)

  • Ich versteh das nicht...
    Das müsste eigentlich so aussehen(ich benutz das Beispiel aus der Hilfe):

    [autoit]

    #include <GUIConstantsEx.au3>

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

    Opt('MustDeclareVars', 1)

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

    Example()

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

    Func Example()
    Local $radio1, $radio2, $msg
    GUICreate("My GUI radio") ; will create a dialog box that when displayed is centered

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

    $radio1 = GUICtrlCreateRadio("Radio 1", 10, 10, 120, 20) ; erstellt Radio-boxen
    $radio2 = GUICtrlCreateRadio("Radio 2", 10, 40, 120, 20)
    GUICtrlSetState($radio2, $GUI_CHECKED)

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

    GUISetState() ; will display an dialog box with 1 checkbox

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

    ; Run the GUI until the dialog is closed
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $radio1 And BitAND(GUICtrlRead($radio1), $GUI_CHECKED) = $GUI_CHECKED ; Wenn Radio1 ausgewählt wurde, wird der andere deaktiviert und eine MsgBox erscheint
    MsgBox(64, 'Info:', 'You clicked the Radio 1 and it is Checked.')
    Case $msg = $radio2 And BitAND(GUICtrlRead($radio2), $GUI_CHECKED) = $GUI_CHECKED; Wenn Radio1 ausgewählt wurde, wird der andere deaktiviert und eine MsgBox erscheint
    MsgBox(64, 'Info:', 'You clicked on Radio 2 and it is Checked.')
    EndSelect
    WEnd
    EndFunc ;==>Example

    [/autoit]

    So brauchst du keine Select...Case Schleife in einer Select...Case schleife

    Edit: du musst das mit

    [autoit]

    GUICtrlGetState

    [/autoit]

    abfragen

    Spoiler anzeigen

    Grundkenntnisse in: C++, JavaScript
    Sehr gute Kenntnisse: PHP, JAVA, C und näturlich AutoIt


    Klaviatur, Anhang UDF, GDI+ Mühle

    Zitat

    "Wenn einen um 20h der Pizzadienst anruft und fragt, ob man's nur vergessen hat und ob man das gleiche
    möchte wie immer -- dann sollte man sein Bestellverhalten evtl überdenken"

  • Das stell' ich mal mein mein Script Online:

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <GUIConstantsEx.au3>
    #include <string.au3>
    #include <file.au3>

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

    Opt( "TrayIconHide", 1)

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

    _Main()
    Func _Main()
    Local $VerschID, $EntschID, $msg

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

    $WinMain = GUICreate ( "Kizzys Encryption/Decryption Tool", 490, 420)
    $EditText = GuiCtrlCreateEdit('Bitte geben Sie Ihren zu verschlüsselnden Text ein.',5,5,380,350)
    $InputPass = GuiCtrlCreateInput('',5,360,100,20, 0x21)
    $InputLevel = GuiCtrlCreateInput("5", 110, 360, 52,20)
    $StartButton = GUICtrlCreateButton ( "Start", 167, 360, 220, 35)
    GUICtrlCreateLabel ( "Level", 122, 382)
    GUICtrlCreateLabel ( "Passwort", 32, 382)
    $filemenu = GuiCtrlCreateMenu ("Datei")
    $exititem = GuiCtrlCreateMenuitem ("Programm beenden",$filemenu,3)
    $helpmenu = GuiCtrlCreateMenu ("?")
    $hilfe = GuiCtrlCreateMenuitem ("Hilfe",$helpmenu)
    $aboutitem = GuiCtrlCreateMenuitem ("über",$helpmenu)
    $open=GUICtrlCreateMenuItem ( "öffnen...", $filemenu,0)
    $save=GUICtrlCreateMenuItem ("Sichern...", $filemenu,1)

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

    GuiCtrlCreateGroup("Modus", 395, 5, 90, 65)
    $VerschID = GuiCtrlCreateRadio("verschlüsseln", 400, 20, 80);ID 17
    GuiCtrlSetState(17, $GUI_CHECKED)
    $EntschID = GuiCtrlCreateRadio("entschlüsseln", 400, 45, 80);ID 18
    GUICtrlCreateGroup ("",-99,-99,1,1) ;close group

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

    GuiSetState()

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

    While 1

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

    $msg = GUIGetMsg()

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

    Select
    Case $MSG = $GUI_EVENT_CLOSE
    Exit

    Case $msg = $aboutitem
    Msgbox(64,"Über","Kizzys Encryption/Decryption Tool - RC4 Text-En-/Decrypter Version: 2.0" &@CRLF&@CRLF&@CRLF& "Copyright: ©2010-2020, Biermännsche PC-Manufakturen/Keziah Biermann" &@CRLF&@CRLF& "E-Mail: biermaennsche.pc.manufakturen@googlemail.com")
    Case $msg = $Hilfe
    MsgBox (0, "Hilfe", "Passwort: Das Passwort mit dem der Text Verschlüsselt wurde." & @CRLF & @CRLF & "Level: Das Level mit dem der Text verschlüsselt wurde. Das bei der Verschlüsselung verwandte Level muss auch zur Entschlüsselung verwendet werden. Wenn Sie mehr als 30.000 Zeichen entschlüsseln wollen, nutzen Sie bitte die ""Datei öffnen...""-Funktion im Datei-Menü.")
    Case $msg = $VerschID
    Select
    Case $msg = $open
    $OpenExplorer = FileOpenDialog ("Datei öffnen...", @MyDocumentsDir, "Einfaches Textdokument (*.txt)",1)
    $EncryptString = FileRead ( $OpenExplorer )
    GUICtrlSetData ( $EditText, ""&$EncryptString )
    Case $msg = $exititem
    ExitLoop

    Case $msg = $StartButton
    ;~~
    GuiCtrlSetState( $EditText,$GUI_DISABLE)
    GUICtrlSetState($InputPass,$GUI_DISABLE )
    GUICtrlSetState($InputLevel,$GUI_DISABLE )
    GUICtrlSetState($StartButton,$GUI_DISABLE )
    GUICtrlSetState($filemenu,$GUI_DISABLE )
    GUICtrlSetState( $helpmenu,$GUI_DISABLE)
    ; Stops you from changing anything
    ;~~
    $string = GuiCtrlRead($EditText)
    ; Saves the editbox for later
    ;~~
    GUICtrlSetData($EditText,'Bitte warten Sie, während Ihr verschlüsselter Text mit Ihrem Passwort '&@CRLF&'und RC4 verschlüsselt wird.')
    ; Friendly message
    ;~~
    GuiCtrlSetData($EditText,_StringEncrypt(1,$string,GuiCtrlRead($InputPass),GuiCtrlRead($InputLevel)))
    ; Calls the encryption. Sets the data of editbox with the encrypted string
    ;~~
    GuiCtrlSetState( $EditText,$GUI_ENABLE)
    GUICtrlSetState($InputPass,$GUI_ENABLE )
    GUICtrlSetState($InputLevel,$GUI_ENABLE )
    GUICtrlSetState($StartButton,$GUI_ENABLE )
    GUICtrlSetState($filemenu,$GUI_ENABLE )
    GUICtrlSetState( $helpmenu,$GUI_ENABLE)
    ; This turns the window back on
    Case $msg = $save
    $SaveExplorer = FileSaveDialog ("Datei sichern unter...", @MyDocumentsDir, "RC4-verschlüsselter Text (.cpt)", 16)
    FileDelete ( $SaveExplorer )
    _FileCreate ( $SaveExplorer&".cpt" )
    $SaveString = GUICtrlRead ( $EditText )
    $FileToSave=FileOpen ($SaveExplorer&".cpt",2)
    FileWrite ( $FileToSave, ""&$SaveString )
    FileClose ($FileToSave)
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    EndSelect

    Exit
    Case $msg = $EntschID
    Select
    Case $msg = $open
    $OpenExplorer = FileOpenDialog ("Datei öffnen...", @MyDocumentsDir, "RC4-verschlüselter Text (*.cpt), (*.txt)", 1)
    $DecryptString = FileRead ( $OpenExplorer )
    GUICtrlSetData ( $EditText, ""&$DecryptString )
    Case $msg = $exititem
    ExitLoop

    Case $msg = $StartButton
    ;~~
    GuiCtrlSetState( $EditText,$GUI_DISABLE)
    GUICtrlSetState($InputPass,$GUI_DISABLE )
    GUICtrlSetState($InputLevel,$GUI_DISABLE )
    GUICtrlSetState($StartButton,$GUI_DISABLE )
    GUICtrlSetState($filemenu,$GUI_DISABLE )
    GUICtrlSetState( $helpmenu,$GUI_DISABLE)
    ; Stops you from changing anything
    ;~~
    $string = GuiCtrlRead($EditText)
    ; Saves the editbox for later
    ;~~
    GUICtrlSetData($EditText,'Bitte warten Sie, während Ihr verschlüsselter Text mit Ihrem Passwort '&@CRLF&'und RC4 entschlüsselt wird.')
    ; Friendly message
    ;~~
    GuiCtrlSetData($EditText,_StringEncrypt(0,$string,GuiCtrlRead($InputPass),GuiCtrlRead($InputLevel)))
    ; Calls the encryption. Sets the data of editbox with the encrypted string
    ;~~
    GuiCtrlSetState( $EditText,$GUI_ENABLE)
    GUICtrlSetState($InputPass,$GUI_ENABLE )
    GUICtrlSetState($InputLevel,$GUI_ENABLE )
    GUICtrlSetState($StartButton,$GUI_ENABLE )
    GUICtrlSetState($filemenu,$GUI_ENABLE )
    GUICtrlSetState( $helpmenu,$GUI_ENABLE)
    ; This turns the window back on
    Case $msg = $save
    $SaveExplorer = FileSaveDialog ("Datei sichern unter...", @MyDocumentsDir, "Einfaches Textdokument (.txt)", 16)
    FileDelete ( $SaveExplorer )
    _FileCreate ( $SaveExplorer&".txt" )
    $SaveString = GUICtrlRead ( $EditText )
    $FileToSave=FileOpen ($SaveExplorer&".txt",2)
    FileWrite ( $FileToSave, ""&$SaveString )
    FileClose ($FileToSave)
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    EndSelect
    Exit

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

    Case $msg = $GUI_EVENT_CLOSE
    Exit
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    Exit
    EndSelect
    WEnd
    EndFunc ;==>_Main

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

    ;While 1
    ; $msg = GUIGetMsg()

    ; If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    ;Wend

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

    Widerstand ist Zwecklos!

    Meine Projekte: Kizzys Controller, 2nd Desktop und Versteckte Dateien Assistent
    Meine Downloadwebsite .

  • Schön geworden, aber benutz lieber

    [autoit]

    Switch $msg
    Case ;...

    [/autoit]

    Ach ja... Sollte da was passieren, wenn ich auf irgendeinen Knopf drücke? ^^

    Spoiler anzeigen

    Grundkenntnisse in: C++, JavaScript
    Sehr gute Kenntnisse: PHP, JAVA, C und näturlich AutoIt


    Klaviatur, Anhang UDF, GDI+ Mühle

    Zitat

    "Wenn einen um 20h der Pizzadienst anruft und fragt, ob man's nur vergessen hat und ob man das gleiche
    möchte wie immer -- dann sollte man sein Bestellverhalten evtl überdenken"

  • Dein Script ist unübersichtlich und verwirrend... :wacko:
    z.B.

    [autoit]

    Exit

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

    Case $msg = $GUI_EVENT_CLOSE
    Exit
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    Exit
    EndSelect

    [/autoit]


    Das ergibt nämlich irgendwie keinen Sinnn...
    Genauso wenig wie du zweimal mit verschiedenen Select Abfragen die selbe Variable abfragst... :D

  • Nein, aber so:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <string.au3>
    #include <file.au3>

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

    Opt( "TrayIconHide", 1)

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

    _Main()
    Func _Main()
    Local $VerschID, $EntschID, $msg, $option = 0

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

    $WinMain = GUICreate ( "Kizzys Encryption/Decryption Tool", 490, 420)
    $EditText = GuiCtrlCreateEdit('Bitte geben Sie Ihren zu verschlüsselnden Text ein.',5,5,380,350)
    $InputPass = GuiCtrlCreateInput('',5,360,100,20, 0x21)
    $InputLevel = GuiCtrlCreateInput("5", 110, 360, 52,20)
    $StartButton = GUICtrlCreateButton ( "Start", 167, 360, 220, 35)
    GUICtrlCreateLabel ( "Level", 122, 382)
    GUICtrlCreateLabel ( "Passwort", 32, 382)
    $filemenu = GuiCtrlCreateMenu ("Datei")
    $exititem = GuiCtrlCreateMenuitem ("Programm beenden",$filemenu,3)
    $helpmenu = GuiCtrlCreateMenu ("?")
    $hilfe = GuiCtrlCreateMenuitem ("Hilfe",$helpmenu)
    $aboutitem = GuiCtrlCreateMenuitem ("über",$helpmenu)
    $open=GUICtrlCreateMenuItem ( "öffnen...", $filemenu,0)
    $save=GUICtrlCreateMenuItem ("Sichern...", $filemenu,1)

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

    GuiCtrlCreateGroup("Modus", 395, 5, 90, 65)
    $VerschID = GuiCtrlCreateRadio("verschlüsseln", 400, 20, 80);ID 17
    GuiCtrlSetState(17, $GUI_CHECKED)
    $EntschID = GuiCtrlCreateRadio("entschlüsseln", 400, 45, 80);ID 18
    GUICtrlCreateGroup ("",-99,-99,1,1) ;close group

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

    GuiSetState()

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

    While 1

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

    $msg = GUIGetMsg()

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

    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit

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

    Case $msg = $aboutitem
    Msgbox(64,"Über","Kizzys Encryption/Decryption Tool - RC4 Text-En-/Decrypter Version: 2.0" &@CRLF&@CRLF&@CRLF& "Copyright: ©2010-2020, Biermännsche PC-Manufakturen/Keziah Biermann" &@CRLF&@CRLF& "E-Mail: biermaennsche.pc.manufakturen@googlemail.com")
    Case $msg = $Hilfe
    MsgBox (0, "Hilfe", "Passwort: Das Passwort mit dem der Text Verschlüsselt wurde." & @CRLF & @CRLF & "Level: Das Level mit dem der Text verschlüsselt wurde. Das bei der Verschlüsselung verwandte Level muss auch zur Entschlüsselung verwendet werden. Wenn Sie mehr als 30.000 Zeichen entschlüsseln wollen, nutzen Sie bitte die ""Datei öffnen...""-Funktion im Datei-Menü.")
    Case $msg = $open
    $OpenExplorer = FileOpenDialog ("Datei öffnen...", @MyDocumentsDir, "Einfaches Textdokument (*.txt)",1)
    $EncryptString = FileRead ( $OpenExplorer )
    GUICtrlSetData ( $EditText, ""&$EncryptString )
    Case $msg = $exititem
    ExitLoop

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

    Case $msg = $StartButton
    ;~~
    GuiCtrlSetState( $EditText,$GUI_DISABLE)
    GUICtrlSetState($InputPass,$GUI_DISABLE )
    GUICtrlSetState($InputLevel,$GUI_DISABLE )
    GUICtrlSetState($StartButton,$GUI_DISABLE )
    GUICtrlSetState($filemenu,$GUI_DISABLE )
    GUICtrlSetState( $helpmenu,$GUI_DISABLE)
    ; Stops you from changing anything
    ;~~
    $string = GuiCtrlRead($EditText)
    ; Saves the editbox for later
    ;~~
    GUICtrlSetData($EditText,'Bitte warten Sie, während Ihr verschlüsselter Text mit Ihrem Passwort '&@CRLF&'und RC4 verschlüsselt wird.')
    ; Friendly message
    ;~~
    If $option = 0 Then
    GuiCtrlSetData($EditText,_StringEncrypt(1,$string,GuiCtrlRead($InputPass),GuiCtrlRead($InputLevel)))
    Else
    GuiCtrlSetData($EditText,_StringEncrypt(0,$string,GuiCtrlRead($InputPass),GuiCtrlRead($InputLevel)))
    EndIf
    ; Calls the encryption. Sets the data of editbox with the encrypted string
    ;~~
    GuiCtrlSetState( $EditText,$GUI_ENABLE)
    GUICtrlSetState($InputPass,$GUI_ENABLE )
    GUICtrlSetState($InputLevel,$GUI_ENABLE )
    GUICtrlSetState($StartButton,$GUI_ENABLE )
    GUICtrlSetState($filemenu,$GUI_ENABLE )
    GUICtrlSetState( $helpmenu,$GUI_ENABLE)
    ; This turns the window back on
    Case $msg = $save
    $SaveExplorer = FileSaveDialog ("Datei sichern unter...", @MyDocumentsDir, "RC4-verschlüsselter Text (.cpt)", 16)
    FileDelete ( $SaveExplorer )
    _FileCreate ( $SaveExplorer&".cpt" )
    $SaveString = GUICtrlRead ( $EditText )
    $FileToSave=FileOpen ($SaveExplorer&".cpt",2)
    FileWrite ( $FileToSave, ""&$SaveString )
    FileClose ($FileToSave)
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $VerschID
    $option = 0

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

    Case $msg = $EntschID
    $option = 1

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

    EndSelect
    WEnd
    EndFunc ;==>_Main

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

    ;While 1
    ; $msg = GUIGetMsg()

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

    ; If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    ;Wend

    [/autoit]


    Edit: 500 Post ^^

    Spoiler anzeigen

    Grundkenntnisse in: C++, JavaScript
    Sehr gute Kenntnisse: PHP, JAVA, C und näturlich AutoIt


    Klaviatur, Anhang UDF, GDI+ Mühle

    Zitat

    "Wenn einen um 20h der Pizzadienst anruft und fragt, ob man's nur vergessen hat und ob man das gleiche
    möchte wie immer -- dann sollte man sein Bestellverhalten evtl überdenken"

  • Vielen Dank an euch beide.
    Ich bin wirklich gerührt ;( :D

    Habt ihr etwas dagegen, wenn ich eure Forumbezeichnungen im "Über" erwähne. (Mit freundlicher Unterstützung von: Cartan12, name22)

    Widerstand ist Zwecklos!

    Meine Projekte: Kizzys Controller, 2nd Desktop und Versteckte Dateien Assistent
    Meine Downloadwebsite .