Wie führe ich Aktionen durch wenn im Eingabefeld ( GUICtrlCreateInput ) geklickt wird?

  • So hier erst mal das Beispiel:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=D:\Daten Archiv\PROJEKTE\AutoIt Scripts\Hauptfenster.kxf
    $Hauptfenster = GUICreate("Eingabefenster", 355, 192, 192, 124)
    $Rahmen_Eingabefeld = GUICtrlCreateGroup("Eingabe", 16, 32, 297, 65)
    $Eingabe_Feld = GUICtrlCreateInput("Text Eingeben", 32, 56, 129, 21)
    $OK_Button = GUICtrlCreateButton("OK", 176, 56, 57, 25)
    $Info_Button = GUICtrlCreateButton("Info", 240, 56, 57, 25)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Icon1 = GUICtrlCreateIcon("C:\Windows\System32\shell32.dll", -222, 16, 120, 32, 32)
    $Info_Text = GUICtrlCreateLabel("Information", 56, 120, 252, 25, $SS_CENTERIMAGE)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $msg = GUIGetMsg()
    Select

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

    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop

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

    Case $msg = $OK_Button
    ;Textabfrage und desse Speicherung anlegen
    ;Nur Alphanummerisch ==> Keine Sonderzeichen
    GUICtrlSetData ( $Info_Text, "Bitte den Text ohne Sonderzeichen eingeben!" )
    GUICtrlSetImage ( $Icon1, "C:\Windows\System32\shell32.dll", -78)

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

    Case $msg = $Info_Button
    GUICtrlSetData ( $Info_Text, "Informationen wurden aufgerufen." )
    GUICtrlSetImage ( $Icon1, "C:\Windows\System32\shell32.dll", -261)
    MsgBox ( 64, "Info und Hilfe", "TEXT" )

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

    EndSelect
    WEnd

    [/autoit]

    Also ich habe vor, wenn jetzt im << GUICtrlCreateInput >> Feld geklickt (linke Maustaste) wird, das der Inhalt ( "Text Eingeben" ) markiert werden soll. Ergo bei Eingabe in diesem Feld wird dann ja der Text gelöscht und dann das angezeigt, das gerade getippt wird.
    Die andere Aktion soll diese sein, das 2 weitere Befehle << GUICtrlSetData >> und << GUICtrlSetImage >> noch zusätzlich ausgeführt werden.

    Daher die Frage wie muss ich vorgehen damit ich dies bewerkstelligen kann?

    Einmal editiert, zuletzt von T'hul-Nok Razna (18. April 2010 um 23:17)

    • Offizieller Beitrag

    Für das Markieren, wie folgt. Das andere funktioniert doch, du verwendest nur in einem Fall einen nicht existierenden IconIndex.

    [autoit]

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    ExitLoop
    Case $GUI_EVENT_PRIMARYUP
    $pos = GUIGetCursorInfo()
    If $pos[4] = $Eingabe_Feld Then
    ControlSend($Hauptfenster, '', $Eingabe_Feld, '{Home}{ShiftDown}{End}{ShiftUp}')
    EndIf
    Case $OK_Button
    ;Textabfrage und desse Speicherung anlegen
    ;Nur Alphanummerisch ==> Keine Sonderzeichen
    GUICtrlSetData ( $Info_Text, "Bitte den Text ohne Sonderzeichen eingeben!" )
    GUICtrlSetImage ( $Icon1, "C:\Windows\System32\shell32.dll", -78)
    Case $Info_Button
    GUICtrlSetData ( $Info_Text, "Informationen wurden aufgerufen." )
    GUICtrlSetImage ( $Icon1, "C:\Windows\System32\shell32.dll", -261)
    MsgBox ( 64, "Info und Hilfe", "TEXT" )

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

    EndSwitch
    WEnd

    [/autoit]
  • ich hätte das jetzt mit Focus gemacht.

    funktioniert genauso ;)

    Spoiler anzeigen
    [autoit]

    #include <StaticConstants.au3>
    #include <GUIConstantsEx.au3>
    #Region ### START Koda GUI section ### Form=D:\Daten Archiv\PROJEKTE\AutoIt Scripts\Hauptfenster.kxf
    $Hauptfenster = GUICreate("Eingabefenster", 355, 192, 192, 124)
    $Rahmen_Eingabefeld = GUICtrlCreateGroup("Eingabe", 16, 32, 297, 65)
    $Eingabe_Feld = GUICtrlCreateInput("Text Eingeben", 32, 56, 129, 21)
    $OK_Button = GUICtrlCreateButton("OK", 176, 56, 57, 25)
    $Info_Button = GUICtrlCreateButton("Info", 240, 56, 57, 25)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Icon1 = GUICtrlCreateIcon("C:\Windows\System32\shell32.dll", -222, 16, 120, 32, 32)
    $Info_Text = GUICtrlCreateLabel("Information", 56, 120, 252, 25, $SS_CENTERIMAGE)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    ExitLoop
    Case $GUI_EVENT_PRIMARYUP
    $pos = GUIGetCursorInfo()
    If $pos[4] = $Eingabe_Feld Then
    GUICtrlSetState($Eingabe_Feld, $GUI_FOCUS)
    EndIf
    Case $OK_Button
    ;Textabfrage und desse Speicherung anlegen
    ;Nur Alphanummerisch ==> Keine Sonderzeichen
    GUICtrlSetData ( $Info_Text, "Bitte den Text ohne Sonderzeichen eingeben!" )
    GUICtrlSetImage ( $Icon1, "C:\Windows\System32\shell32.dll", -78)
    Case $Info_Button
    GUICtrlSetData ( $Info_Text, "Informationen wurden aufgerufen." )
    GUICtrlSetImage ( $Icon1, "C:\Windows\System32\shell32.dll", -261)
    MsgBox ( 64, "Info und Hilfe", "TEXT" )

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

    EndSwitch
    WEnd

    [/autoit]
  • Sehr gut! Funzt wie ich es wollte.
    Vielen Dank für die Hilfe. Hätt schon längst geschrieben, aber bis ich mal dahinter gekommen bin das es mit << Select .... Case .... EndSelect >> nicht richtig läuft hat etwas gedauert.

    Ich hab es jetzt mit $GUI_FOCUS gemacht. Mal davon abgesehen diese Möglichkeit kannte ich nocht nicht, wieder etwas gelernt. ;)