MsgBox - alle Parameter auf einen Blick

    • Offizieller Beitrag

    Hi,
    ich hab mal ein Proggi gebastelt, in dem über eine GUI alle möglichen Parameter für die MsgBox ausgewählt werden können.
    Schauts euch einfach an. Das erklärt mehr als tausend Worte :)

    Edit:
    Noch eine User-freundliche Erweiterung. ;)
    Die Parameter der gewählten Box werden in die Zwischenablage kopiert, inklusive aller möglichen Rückgabewerte, plus Erklärung der Rückgabewerte.
    Sieht dann so aus:

    [autoit]

    If MsgBox(262694, '', '') = 2/10/11 Then ; Abbrechen/Wiederholen/Weiter

    [/autoit]
    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    Opt("GUIOnEventMode", 1)
    Dim $ret, $sum, $i, $aRadio[21][2]
    $aRadio[0][1] = 0
    $aRadio[1][1] = 1
    $aRadio[2][1] = 2
    $aRadio[3][1] = 3
    $aRadio[4][1] = 4
    $aRadio[5][1] = 5
    $aRadio[6][1] = 6
    $aRadio[7][1] = 0
    $aRadio[8][1] = 16
    $aRadio[9][1] = 32
    $aRadio[10][1] = 48
    $aRadio[11][1] = 64
    $aRadio[12][1] = 0
    $aRadio[13][1] = 256
    $aRadio[14][1] = 512
    $aRadio[15][1] = 0
    $aRadio[16][1] = 4096
    $aRadio[17][1] = 8192
    $aRadio[18][1] = 0
    $aRadio[19][1] = 262144
    $aRadio[20][1] = 524288

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

    $Form1 = GUICreate("MsgBox - alle Parameter", 465, 398, -1, -1)
    GUISetOnEvent($GUI_EVENT_CLOSE, "AForm1Close")
    $grButton = GUICtrlCreateGroup("Button", 20, 8, 214, 193)
    $aRadio[0][0] = GUICtrlCreateRadio("0 OK", 28, 28, 179, 17)
    GUICtrlSetState(-1, $GUI_CHECKED)
    GUICtrlSetOnEvent(-1, "ARadio1Click")
    $aRadio[1][0] = GUICtrlCreateRadio("1 OK und Abbrechen", 28, 52, 185, 17)
    GUICtrlSetOnEvent(-1, "ARadio2Click")
    $aRadio[2][0] = GUICtrlCreateRadio("2 Abbrechen, Wiederholen, Ignorieren", 28, 76, 201, 17)
    GUICtrlSetOnEvent(-1, "ARadio3Click")
    $aRadio[3][0] = GUICtrlCreateRadio("3 Ja, Nein und Abbrechen", 28, 100, 183, 17)
    GUICtrlSetOnEvent(-1, "ARadio4Click")
    $aRadio[4][0] = GUICtrlCreateRadio("4 Ja und Nein", 28, 124, 177, 17)
    GUICtrlSetOnEvent(-1, "ARadio5Click")
    $aRadio[5][0] = GUICtrlCreateRadio("5 Wiederholen und Abbrechen", 28, 148, 182, 17)
    GUICtrlSetOnEvent(-1, "ARadio6Click")
    $aRadio[6][0] = GUICtrlCreateRadio("6 Abbrechen, Wiederholen, Weiter", 28, 172, 192, 17)
    GUICtrlSetOnEvent(-1, "ARadio7Click")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $grIcon = GUICtrlCreateGroup("Icon", 20, 208, 214, 142)
    $aRadio[7][0] = GUICtrlCreateRadio("0 kein Icon", 28, 228, 113, 17)
    GUICtrlSetState(-1, $GUI_CHECKED)
    GUICtrlSetOnEvent(-1, "ARadio8Click")
    $aRadio[8][0] = GUICtrlCreateRadio("16 Stopzeichen", 28, 252, 113, 17)
    GUICtrlSetOnEvent(-1, "ARadio9Click")
    $aRadio[9][0] = GUICtrlCreateRadio("32 Fragezeichen", 28, 276, 113, 17)
    GUICtrlSetOnEvent(-1, "ARadio10Click")
    $aRadio[10][0] = GUICtrlCreateRadio("48 Ausrufezeichen", 28, 300, 113, 17)
    GUICtrlSetOnEvent(-1, "ARadio11Click")
    $aRadio[11][0] = GUICtrlCreateRadio("64 i im Kreis (Infozeichen)", 28, 324, 154, 17)
    GUICtrlSetOnEvent(-1, "ARadio12Click")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $grDefault = GUICtrlCreateGroup("Default", 242, 8, 200, 94)
    $aRadio[12][0] = GUICtrlCreateRadio("0 Erster Button", 250, 29, 132, 17)
    GUICtrlSetState(-1, $GUI_CHECKED)
    GUICtrlSetOnEvent(-1, "ARadio13Click")
    $aRadio[13][0] = GUICtrlCreateRadio("256 Zweiter Button", 250, 53, 145, 17)
    GUICtrlSetOnEvent(-1, "ARadio14Click")
    GUICtrlSetState(-1, $GUI_DISABLE)
    $aRadio[14][0] = GUICtrlCreateRadio("512 Dritter Button", 250, 77, 114, 17)
    GUICtrlSetOnEvent(-1, "ARadio15Click")
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $grModal = GUICtrlCreateGroup("Modal", 242, 107, 200, 94)
    $aRadio[15][0] = GUICtrlCreateRadio("0 Anwendung", 250, 128, 162, 17)
    GUICtrlSetState(-1, $GUI_CHECKED)
    GUICtrlSetOnEvent(-1, "ARadio16Click")
    $aRadio[16][0] = GUICtrlCreateRadio("4096 System", 250, 152, 113, 17)
    GUICtrlSetOnEvent(-1, "ARadio17Click")
    $aRadio[17][0] = GUICtrlCreateRadio("8192 Task", 250, 176, 113, 17)
    GUICtrlSetOnEvent(-1, "ARadio18Click")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $grMisc = GUICtrlCreateGroup("Verschiedenes", 242, 208, 200, 94)
    $aRadio[18][0] = GUICtrlCreateRadio("0 nichts", 250, 227, 113, 17)
    GUICtrlSetState(-1, $GUI_CHECKED)
    GUICtrlSetOnEvent(-1, "ARadio19Click")
    $aRadio[19][0] = GUICtrlCreateRadio("262144 Attribut top-most", 250, 251, 154, 17)
    GUICtrlSetOnEvent(-1, "ARadio20Click")
    $aRadio[20][0] = GUICtrlCreateRadio("524288 Titel u. Text rechtsbündig", 250, 275, 185, 17)
    GUICtrlSetOnEvent(-1, "ARadio21Click")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $bShow = GUICtrlCreateButton("Zeige MsgBox", 20, 361, 214, 24, 0)
    GUICtrlSetOnEvent(-1, "bShowClick")
    $MsgBox = GUICtrlCreateInput("MsgBox(0, 'title', 'text')", 242, 328, 200, 21,$ES_CENTER)
    GUICtrlSetBkColor(-1, 32250)
    $bClip = GUICtrlCreateButton("Kopiere in Zwischenablage", 242, 361, 200, 24, 0)
    GUICtrlSetOnEvent(-1, "bClipClick")
    GUISetState(@SW_SHOW)

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

    While 1
    Sleep(100)
    WEnd

    Func AForm1Close()
    Exit
    EndFunc

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

    Func ARadio1Click()
    _Disable_2_3()
    _IsChecked()
    _TextBox()
    EndFunc

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

    Func ARadio2Click()
    _CodeSome()
    EndFunc

    Func ARadio3Click()
    _Enable_2_3()
    _IsChecked()
    _TextBox()
    EndFunc

    Func ARadio4Click()
    _CodeMost()
    EndFunc

    Func ARadio5Click()
    _CodeSome()
    EndFunc

    Func ARadio6Click()
    _CodeSome()
    EndFunc

    Func ARadio7Click()
    _CodeMost()
    EndFunc

    Func ARadio8Click()
    _CodeMost()
    EndFunc

    Func ARadio9Click()
    _CodeMost()
    EndFunc

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

    Func ARadio10Click()
    _CodeMost()
    EndFunc

    Func ARadio11Click()
    _CodeMost()
    EndFunc

    Func ARadio12Click()
    _CodeMost()
    EndFunc

    Func ARadio13Click()
    _CodeMost()
    EndFunc

    Func ARadio14Click()
    _CodeMost()
    EndFunc

    Func ARadio15Click()
    _CodeMost()
    EndFunc

    Func ARadio16Click()
    _CodeMost()
    EndFunc

    Func ARadio17Click()
    _CodeMost()
    EndFunc

    Func ARadio18Click()
    _CodeMost()
    EndFunc

    Func ARadio19Click()
    _CodeMost()
    EndFunc

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

    Func ARadio20Click()
    _CodeMost()
    EndFunc

    Func ARadio21Click()
    _CodeMost()
    EndFunc

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

    Func _CodeSome()
    _Enable_2_3()
    _Disable_3()
    _IsChecked()
    _TextBox()
    EndFunc

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

    Func _CodeMost()
    _IsChecked()
    _TextBox()
    _Enable_2_3()
    EndFunc

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

    Func _Disable_2_3()
    GUICtrlSetState($aRadio[13][0], BitOR($GUI_DISABLE, $GUI_UNCHECKED))
    GUICtrlSetState($aRadio[14][0], BitOR($GUI_DISABLE, $GUI_UNCHECKED))
    GUICtrlSetState($aRadio[12][0], $GUI_CHECKED)
    EndFunc

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

    Func _Disable_3()
    GUICtrlSetState($aRadio[14][0], BitOR($GUI_DISABLE, $GUI_UNCHECKED))
    GUICtrlSetState($aRadio[12][0], $GUI_CHECKED)
    EndFunc

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

    Func _Enable_2_3()
    GUICtrlSetState($aRadio[13][0], $GUI_ENABLE)
    GUICtrlSetState($aRadio[14][0], $GUI_ENABLE)
    EndFunc

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

    Func _Enable_3()
    GUICtrlSetState($aRadio[14][0], $GUI_ENABLE)
    EndFunc

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

    Func bShowClick()
    $ret = MsgBox($sum, "Titel", "Test MsgBox")
    $text1 = "gedrückter Button: "
    $text2 = "Rückgabewert: " & $ret
    Switch $ret
    Case 1
    MsgBox(0, $text1 & "OK", $text2)
    Case 2
    MsgBox(0, $text1 & "ABBRECHEN", $text2)
    Case 3
    MsgBox(0, $text1 & "ABBRECHEN", $text2)
    Case 4
    MsgBox(0, $text1 & "WIEDERHOLEN", $text2)
    Case 5
    MsgBox(0, $text1 & "IGNORIEREN", $text2)
    Case 6
    MsgBox(0, $text1 & "JA", $text2)
    Case 7
    MsgBox(0, $text1 & "NEIN", $text2)
    Case 10
    MsgBox(0, $text1 & "WIEDERHOLEN", $text2)
    Case 11
    MsgBox(0, $text1 & "WEITER", $text2)
    EndSwitch
    EndFunc

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

    Func bClipClick()
    For $i = 0 To 6
    If GUICtrlRead($aRadio[$i][0]) = 1 Then ExitLoop
    Next
    Switch $i
    Case 0
    ClipPut("MsgBox(" & $sum & ", '', '')")
    Case 1
    ClipPut("If MsgBox(" & $sum & ", '', '') = 1/2 Then ; OK/Abbrechen")
    Case 2
    ClipPut("If MsgBox(" & $sum & ", '', '') = 3/4/5 Then ; Abbrechen/Wiederholen/Ignorieren")
    Case 3
    ClipPut("If MsgBox(" & $sum & ", '', '') = 6/7/2 Then ; Ja/Nein/Abbrechen")
    Case 4
    ClipPut("If MsgBox(" & $sum & ", '', '') = 6/7 Then ; Ja/Nein")
    Case 5
    ClipPut("If MsgBox(" & $sum & ", '', '') = 4/2 Then ; Wiederholen/Abbrechen")
    Case 6
    ClipPut("If MsgBox(" & $sum & ", '', '') = 2/10/11 Then ; Abbrechen/Wiederholen/Weiter")
    EndSwitch
    _ToolTipMouseExit(ClipGet() & @LF & "wurde in die Zwischenablage kopiert.", 4000, -1, -1, "Zwischenablage", 1, 3)
    EndFunc

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

    Func _IsChecked()
    $sum = 0
    For $i = 0 To 20
    If GUICtrlRead($aRadio[$i][0]) = 1 Then $sum += $aRadio[$i][1]
    Next
    EndFunc

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

    Func _TextBox()
    GUICtrlSetData($MsgBox, "MsgBox(" & $sum & ", 'title', 'text')")
    EndFunc

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

    Func _ToolTipMouseExit($TEXT, $TIME=-1, $x=-1, $y=-1, $TITLE='', $ICON=0, $OPT='')
    If $TIME = -1 Then $TIME = 3000
    Local $start = TimerInit(), $pos0 = MouseGetPos()
    If ($x = -1) Or ($y = -1) Then
    ToolTip($TEXT, $pos0[0], $pos0[1], $TITLE, $ICON, $OPT)
    Else
    ToolTip($TEXT, $x, $y, $TITLE, $ICON, $OPT)
    EndIf
    Do
    Sleep(50)
    $pos = MouseGetPos()
    Until (TimerDiff($start) > $TIME) Or _
    (Abs($pos[0] - $pos0[0]) > 10 Or _
    Abs($pos[1] - $pos0[1]) > 10)
    ToolTip('')
    EndFunc ;_ToolTipMouseExit

    [/autoit]
  • BugFix
    Und ich habe immerhin auch das 'Scite-Fahrrad' dadurch kennengelernt....
    ALT-W kannte ich nämlich auch noch nicht.

    Und ich habe bemerkt, dass ich fast immer 4096 (+x) verwende, weil es oben bleibt. Aber es ist wohl besser

    'If MsgBox(262145, '', '') = 1/2 Then ; OK/Abbrechen' *

    zu verwenden, oder? (Konkrete Frage: Was bedeutet Modal:System)

    Grüße
    Carsten


    * Ist aus deinem Tool, hast Du's erkannt *lacht*