Hilfe bei Radiobutton

  • Hi,

    irgendwie läuft es nicht so ganz richtig, was mache ich falsch ? Der Fehler hängt bestimmt an den Radiobutton ?

    Und wie kann ich, hier männl.,weibl. einen Buchstaben unterstreichen zur Tastatursteuerung ?

    Wer kann helfen ?

    Euer Ritzelrocker04

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

    #include <GUIConstants.au3>

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

    $GUI = GUICreate("iesis IdealGewichtsRechner v X.0", 401, 308, 193, 115)

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

    $tb_Groesse = GUICtrlCreateInput("Bitte geben Sie hier Ihre Körpergröße in cm ein !", 16, 16, 361, 28)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    GUICtrlSetState(-1, $GUI_FOCUS)

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

    $gb_Geschlecht = GUICtrlCreateGroup("Geschlecht", 16, 64, 193, 121)

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

    $rb_Maennlich = GUICtrlCreateRadio(" männlich", 32, 96, 113, 17)

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

    $rb_Weiblich = GUICtrlCreateRadio(" weiblich", 32, 152, 113, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)

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

    $lb_Ausgabe = GUICtrlCreateLabel("", 16, 208, 363, 32)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x800000)

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

    $bn_Rechnen = GUICtrlCreateButton("Idealgewicht berechnen", 16, 256, 217, 25, 0)
    GUICtrlSetState(-1,$GUI_DEFBUTTON)

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

    $bn_Close = GUICtrlCreateButton("Beenden", 256, 256, 121, 25, 0)

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

    $lb_Version = GUICtrlCreateLabel("V X.0 Build 2007-10-02", 16, 288, 116, 18)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0x808080)

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

    $lb_Author = GUICtrlCreateLabel("Design by Kiesi", 304, 288, 78, 18)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0x808080)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    If $nMsg <> 0 Then
    $_Eingabe = GUICtrlRead($tb_Groesse)
    $_Er = GUICtrlRead($rb_Maennlich)
    Select
    Case $nMsg = $bn_Rechnen
    If $_Eingabe < 100 Then
    GUICtrlSetData($lb_Ausgabe, "Bitte nur Zahlen von 100 bis 230 eingeben !")
    ElseIf $_Eingabe > 230 Then
    GUICtrlSetData($lb_Ausgabe, "Bitte nur Zahlen von 100 bis 230 eingeben !")
    Else
    If $_Er = 1 Then
    $_Ergebnis = ($_Eingabe - 100) * 0.9
    GUICtrlSetData($lb_Ausgabe, "Ihr Idealgewicht beträgt : " & $_Ergebnis & " kg ")
    GUICtrlCreateIcon("Er.ico", 0, 280, 112, 32, 32, BitOR($SS_NOTIFY,$WS_GROUP))
    Else
    $_Ergebnis = ($_Eingabe - 100) * 0.85
    GUICtrlSetData($lb_Ausgabe, "Ihr Idealgewicht beträgt : " & $_Ergebnis & " kg ")
    GUICtrlCreateIcon("Sie.ico", 0, 280, 112, 32, 32, BitOR($SS_NOTIFY,$WS_GROUP))
    EndIf
    EndIf
    Case $nMsg = $GUI_EVENT_CLOSE Or $nMsg = $bn_Close
    Exit
    ExitLoop
    EndSelect
    EndIf

    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • Bei mir Funktioniert es soweit, ich habe nur die Anweisungen vervollständigt

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

    $GUI = GUICreate("iesis IdealGewichtsRechner v X.0", 401, 308, 193, 115)

    $tb_Groesse = GUICtrlCreateInput("Bitte geben Sie hier Ihre Körpergröße in cm ein !", 16, 16, 361, 28)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    GUICtrlSetState(-1, $GUI_FOCUS)

    $gb_Geschlecht = GUICtrlCreateGroup("Geschlecht", 16, 64, 193, 121)

    $rb_Maennlich = GUICtrlCreateRadio(" männlich", 32, 96, 113, 17)

    $rb_Weiblich = GUICtrlCreateRadio(" weiblich", 32, 152, 113, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)

    $lb_Ausgabe = GUICtrlCreateLabel("", 16, 208, 363, 32)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x800000)

    $bn_Rechnen = GUICtrlCreateButton("Idealgewicht berechnen", 16, 256, 217, 25, 0)
    GUICtrlSetState(-1,$GUI_DEFBUTTON)

    $bn_Close = GUICtrlCreateButton("Beenden", 256, 256, 121, 25, 0)

    $lb_Version = GUICtrlCreateLabel("V X.0 Build 2007-10-02", 16, 288, 116, 18)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0x808080)

    $lb_Author = GUICtrlCreateLabel("Design by Kiesi", 304, 288, 78, 18)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0x808080)

    GUISetState(@SW_SHOW)

    While 1
    $nMsg = GUIGetMsg()
    If $nMsg <> 0 Then
    $_Eingabe = GUICtrlRead($tb_Groesse)
    $_Er = GUICtrlRead($rb_Maennlich)
    Select
    Case $nMsg = $bn_Rechnen
    If $_Eingabe < 100 Then
    GUICtrlSetData($lb_Ausgabe, "Bitte nur Zahlen von 100 bis 230 eingeben !")
    ElseIf $_Eingabe > 230 Then
    GUICtrlSetData($lb_Ausgabe, "Bitte nur Zahlen von 100 bis 230 eingeben !")
    Else
    If $_Er = 1 Then
    $_Ergebnis = ($_Eingabe - 100) * 0.9


    GUICtrlSetData($lb_Ausgabe, "Ihr Idealgewicht beträgt : " & $_Ergebnis & " kg ")
    GUICtrlCreateIcon("Er.ico", 0, 280, 112, 32,32, BitOR($SS_NOTIFY,$WS_GROUP))
    Else
    $_Ergebnis = ($_Eingabe - 100) * 0.85


    GUICtrlSetData($lb_Ausgabe, "Ihr Idealgewicht beträgt : " & $_Ergebnis & " kg ")
    GUICtrlCreateIcon("Sie.ico", 0, 280, 112, 32, 32, BitOR($SS_NOTIFY,$WS_GROUP))
    EndIf
    EndIf
    EndSelect
    EndIf
    WEnd

    [/autoit]

    Da ich lange nicht mehr mit AutoIt gearbeitet habe und nicht weiss, welche
    Möglichkeiten es gibt könnte dies eine relativ schlecht umgesetzte Methode
    sein.

    Erstelle die RadioButtons ohne Text, mach für z.B. Männlich ein

    Label "M" und ein zweites Label "ännchen". per GuiCtrlSetFont

    unterstreichst du einfach das Label M und erstellst ein HotKey für M

    der dann den RadioButton aktiviert.

    Ich hoffe ich hab das soweit richtig verstanden.

    edit: die einfachere Methode ist mit einem & Zeichen vor den gewünschten
    Buchstaben z.B.

    $rb_Maennlich = GUICtrlCreateRadio(" &männlich", 32, 96, 113, 17)

    Somit kannst du per Alt + m den Knopf aktivieren

    mfg ~Mirage

    2 Mal editiert, zuletzt von Mirage (6. Oktober 2007 um 00:32)

  • Hi,

    au ja ich glaube das ist ein Übertragungsfehler, Sorry!
    Also noch mal!

    Aber wenn das Script läuft und man das Geschlecht wechselt werden die jeweiligen Berechnungen richtig ausgeführt nur das passende Icon nicht?

    Der Aufwand für den unterstrichenen Buchstaben überrascht mich, das mit dem "&" hatte ich schon versucht nur ist diese Vorauswahl für den Nutzer ja nicht erkennbar?
    Ich dachte es geht einfacher!

    Danke Euer Ritzelrocker04

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

    #include <GUIConstants.au3>

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

    $GUI = GUICreate("iesis IdealGewichtsRechner v X.0", 401, 308, 193, 115)

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

    $tb_Groesse = GUICtrlCreateInput("Bitte geben Sie hier Ihre Körpergröße in cm ein !", 16, 16, 361, 28)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    GUICtrlSetState(-1, $GUI_FOCUS)

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

    $gb_Geschlecht = GUICtrlCreateGroup("Geschlecht", 16, 64, 193, 121)

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

    $rb_Maennlich = GUICtrlCreateRadio(" männlich", 32, 96, 113, 17)

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

    $rb_Weiblich = GUICtrlCreateRadio(" weiblich", 32, 152, 113, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)

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

    $lb_Ausgabe = GUICtrlCreateLabel("", 16, 208, 363, 32)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x800000)

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

    $bn_Rechnen = GUICtrlCreateButton("Idealgewicht berechnen", 16, 256, 217, 25, 0)
    GUICtrlSetState(-1,$GUI_DEFBUTTON)

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

    $bn_Close = GUICtrlCreateButton("Beenden", 256, 256, 121, 25, 0)

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

    $lb_Version = GUICtrlCreateLabel("V X.0 Build 2007-10-02", 16, 288, 116, 18)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0x808080)

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

    $lb_Author = GUICtrlCreateLabel("Design by Kiesi", 304, 288, 78, 18)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0x808080)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    If $nMsg <> 0 Then
    $_Eingabe = GUICtrlRead($tb_Groesse)
    $_Er = GUICtrlRead($rb_Maennlich)
    Select
    Case $nMsg = $bn_Rechnen
    If $_Eingabe < 100 Then
    GUICtrlSetData($lb_Ausgabe, "Bitte nur Zahlen von 100 bis 230 eingeben !")
    ElseIf $_Eingabe > 230 Then
    GUICtrlSetData($lb_Ausgabe, "Bitte nur Zahlen von 100 bis 230 eingeben !")
    Else
    If $_Er = 1 Then
    $_Ergebnis = ($_Eingabe - 100) * 0.9
    GUICtrlSetData($lb_Ausgabe, "Ihr Idealgewicht beträgt : " & $_Ergebnis & " kg ")
    GUICtrlCreateIcon("Er.ico", 0, 280, 112, 32, 32, BitOR($SS_NOTIFY,$WS_GROUP))
    Else
    $_Ergebnis = ($_Eingabe - 100) * 0.85
    GUICtrlSetData($lb_Ausgabe, "Ihr Idealgewicht beträgt : " & $_Ergebnis & " kg ")
    GUICtrlCreateIcon("Sie.ico", 0, 280, 112, 32, 32, BitOR($SS_NOTIFY,$WS_GROUP))
    EndIf
    EndIf
    Case $nMsg = $GUI_EVENT_CLOSE Or $nMsg = $bn_Close
    Exit
    ExitLoop
    EndSelect
    EndIf

    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • Also, wenn ich das so mache, dann werden bei mir die Buchstaben unterstrichen und die erste Box ist standardmäßig ausgewählt

    Spoiler anzeigen
    [autoit]

    $gb_Geschlecht = GUICtrlCreateGroup("Geschlecht", 16, 64, 193, 121)

    $rb_Maennlich = GUICtrlCreateRadio(" &männlich", 32, 96, 113, 17)
    GUICtrlSetState (-1, $GUI_CHECKED) ;Den ersten Radiobutton auswählen
    $rb_Weiblich = GUICtrlCreateRadio(" &weiblich", 32, 152, 113, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)

    [/autoit]

    //Edit: was meinst du mit ICon?

    Einmal editiert, zuletzt von progandy (6. Oktober 2007 um 16:27)

  • Hi progandy,
    Ich habe es so und die Buchstaben werden nur nach drücken der ALT-Taste sichtbar also versuch ichs mal mit -1.

    Bei der Mehrfachanweisung im If-Then Befehl sollen unterschiedliche Icons gezeigt werden Er.ico und Sie.ico. Nach dem 1. Start klappts prima doch bei einer weiteren Neuberechnung und Wahl eines anderen Geschlechtes will es nicht so richtig.

    Ich habe die Beiden mal markiert.

    Danke Euer Ritzelrocker04

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

    #include <GUIConstants.au3>

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

    $GUI = GUICreate("iesis IdealGewichtsRechner v X.0", 401, 308, 193, 115)

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

    $tb_Groesse = GUICtrlCreateInput("Bitte geben Sie hier Ihre Körpergröße in cm ein !", 16, 16, 361, 28)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    GUICtrlSetState(-1, $GUI_FOCUS)

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

    $gb_Geschlecht = GUICtrlCreateGroup("Geschlecht", 16, 64, 193, 121)

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

    $rb_Maennlich = GUICtrlCreateRadio(" &männlich", 32, 96, 113, 17)
    GUICtrlSetState($rb_Maennlich, $GUI_CHECKED)

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

    $rb_Weiblich = GUICtrlCreateRadio(" &weiblich", 32, 152, 113, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)

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

    $lb_Ausgabe = GUICtrlCreateLabel("", 16, 208, 363, 32)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x800000)

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

    $bn_Rechnen = GUICtrlCreateButton("Idealgewicht berechnen", 16, 256, 217, 25, 0)
    GUICtrlSetState(-1,$GUI_DEFBUTTON)

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

    $bn_Close = GUICtrlCreateButton("Beenden", 256, 256, 121, 25, 0)

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

    $lb_Version = GUICtrlCreateLabel("V X.0 Build 2007-10-02", 16, 288, 116, 18)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0x808080)

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

    $lb_Author = GUICtrlCreateLabel("Design by Kiesi", 304, 288, 78, 18)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0x808080)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    If $nMsg <> 0 Then
    $_Eingabe = GUICtrlRead($tb_Groesse)
    $_Er = GUICtrlRead($rb_Maennlich)
    Select
    Case $nMsg = $bn_Rechnen
    If $_Eingabe < 100 Then
    GUICtrlSetData($lb_Ausgabe, "Bitte nur Zahlen von 100 bis 230 eingeben !")
    ElseIf $_Eingabe > 230 Then
    GUICtrlSetData($lb_Ausgabe, "Bitte nur Zahlen von 100 bis 230 eingeben !")
    Else
    If $_Er = 1 Then
    $_Ergebnis = ($_Eingabe - 100) * 0.9
    GUICtrlSetData($lb_Ausgabe, "Ihr Idealgewicht beträgt : " & $_Ergebnis & " kg ")
    GUICtrlCreateIcon("Er.ico", 0, 280, 112, 32, 32, BitOR($SS_NOTIFY,$WS_GROUP)) ; ****** Er.ico
    Else
    $_Ergebnis = ($_Eingabe - 100) * 0.85
    GUICtrlSetData($lb_Ausgabe, "Ihr Idealgewicht beträgt : " & $_Ergebnis & " kg ")
    GUICtrlCreateIcon("Sie.ico", 0, 280, 112, 32, 32, BitOR($SS_NOTIFY,$WS_GROUP)) ; ****** Sie.ico
    EndIf
    EndIf
    Case $nMsg = $GUI_EVENT_CLOSE Or $nMsg = $bn_Close
    Exit
    ExitLoop
    EndSelect
    EndIf

    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • Dass man die Icons nicht sieht, liegt daran, dass sie immer neu erzeigt werden. Man sollte aber ein Icon erzeugen und das verändern mit SetImage:
    Hier nimmt das Iputfeld auch gleich nur noch Zahlen an.

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>
    Global $AutoItPath = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\AutoIt v3\AutoIt', 'InstallDir')
    ;Icons:
    $ic_er = "er.ico"
    $ic_sie = "sie.ico"
    ;If you dont have these Icons, uncomment the following 2 lines.
    ; $ic_er = $AutoItPath & "\icons\au3.ico"
    ; $ic_sie = $AutoItPath & "\icons\filetype3.ico"

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

    $GUI = GUICreate("iesis IdealGewichtsRechner v X.0", 401, 308, 193, 115)

    $tb_Groesse = GUICtrlCreateInput("Bitte geben Sie hier Ihre Körpergröße in cm ein !", 16, 16, 361, 28,$ES_NUMBER)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    GUICtrlSetState(-1, $GUI_FOCUS)

    $gb_Geschlecht = GUICtrlCreateGroup("Geschlecht", 16, 64, 193, 121)

    $rb_Maennlich = GUICtrlCreateRadio(" &männlich", 32, 96, 113, 17)
    GUICtrlSetState($rb_Maennlich, $GUI_CHECKED)

    $rb_Weiblich = GUICtrlCreateRadio(" &weiblich", 32, 152, 113, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)

    $lb_Ausgabe = GUICtrlCreateLabel("", 16, 208, 363, 32)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x800000)

    $bn_Rechnen = GUICtrlCreateButton("Idealgewicht berechnen", 16, 256, 217, 25, 0)
    GUICtrlSetState(-1,$GUI_DEFBUTTON)

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

    $icon = GUICtrlCreateIcon($ic_er, 0, 280, 112, 32, 32, BitOR($SS_NOTIFY,$WS_GROUP)) ; ****** Er.ico

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

    $bn_Close = GUICtrlCreateButton("Beenden", 256, 256, 121, 25, 0)

    $lb_Version = GUICtrlCreateLabel("V X.0 Build 2007-10-02", 16, 288, 116, 18)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0x808080)

    $lb_Author = GUICtrlCreateLabel("Design by Kiesi", 304, 288, 78, 18)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0x808080)

    GUISetState(@SW_SHOW)

    While 1
    $nMsg = GUIGetMsg()
    If $nMsg <> 0 Then
    $_Eingabe = GUICtrlRead($tb_Groesse)
    $_Er = GUICtrlRead($rb_Maennlich)
    Select
    Case $nMsg = $bn_Rechnen
    If $_Eingabe < 100 Then
    GUICtrlSetData($lb_Ausgabe, "Bitte nur Zahlen von 100 bis 230 eingeben !")
    ElseIf $_Eingabe > 230 Then
    GUICtrlSetData($lb_Ausgabe, "Bitte nur Zahlen von 100 bis 230 eingeben !")
    Else
    If $_Er = 1 Then
    $_Ergebnis = ($_Eingabe - 100) * 0.9
    GUICtrlSetData($lb_Ausgabe, "Ihr Idealgewicht beträgt : " & $_Ergebnis & " kg ")
    GUICtrlSetImage($icon ,$ic_er) ; ****** Er.ico
    Else
    $_Ergebnis = ($_Eingabe - 100) * 0.85
    GUICtrlSetData($lb_Ausgabe, "Ihr Idealgewicht beträgt : " & $_Ergebnis & " kg ")
    GUICtrlSetImage($icon ,$ic_sie) ; ****** Sie.ico
    EndIf
    EndIf
    Case $nMsg = $GUI_EVENT_CLOSE Or $nMsg = $bn_Close
    Exit
    ExitLoop
    Case $nMsg = $rb_Maennlich
    GUICtrlSetImage($icon ,$ic_er) ; ****** Er.ico
    Case $nMsg = $rb_Weiblich
    GUICtrlSetImage($icon ,$ic_sie) ; ****** Sie.ico
    EndSelect
    EndIf

    WEnd

    [/autoit]

    Einmal editiert, zuletzt von progandy (6. Oktober 2007 um 19:00)