Problem mit _GUICtrlEdit_SetSel nach Buttonklick

  • Hi.

    danke erstma an diejenigen die mir schon übern chat geholfen haben... leider hab ich mein problem immer noch...

    ich will in einer editbox einen 3zeiligen text markieren aber nur wenn der button "ID generieren" betätigt wurde... also man klickt drauf, der text wird erstellt und soll danach gleich makiert werden... kann mir einer von euch sagen warum das bei mir nich funzt? kanns am buttonklick liegen?

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <GUIConstants.au3>
    #include <EDITConstants.au3>
    #include <GUIConstantsEX.au3>
    #include <GUIEdit.au3>
    #include <GuiStatusBar.au3>

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

    #Region ### START Koda GUI section ### Form=
    $P_Reg_Form = GUICreate("Registrierung", 222, 256, 303, 219)
    $P_Reg_Input1 = GUICtrlCreateInput("Max", 50, 54, 169, 21)
    GUICtrlSetLimit(-1, 20)
    $P_Reg_Input2 = GUICtrlCreateInput("Mustermann", 50, 78, 169, 21)
    GUICtrlSetLimit(-1, 20)
    $P_Reg_Edit1 = GUICtrlCreateEdit("", 4, 128, 217, 40, BitOR($ES_READONLY,$ES_WANTRETURN), 0)
    GUICtrlSetData($P_Reg_Edit1, "Vorname: " & @CRLF & "Zuname: " & @CRLF & "ID: ")
    $P_Reg_Label2 = GUICtrlCreateLabel("Vorname:", 4, 60, 45, 17)
    $P_Reg_Label3 = GUICtrlCreateLabel("Zuname:", 4, 80, 45, 17)
    $P_Reg_Button1 = GUICtrlCreateButton("ID generieren", 74, 102, 75, 25)
    $P_Reg_Button2 = GUICtrlCreateButton("Registrieren", 4, 228, 67, 25, 0)
    $P_Reg_Button3 = GUICtrlCreateButton("Aktivieren", 76, 228, 67, 25, 0)
    $P_Reg_Button4 = GUICtrlCreateButton("Beenden", 148, 228, 67, 25, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $P_Reg_Button1
    If GUICtrlRead($P_Reg_Input1) = "" Or GUICtrlRead($P_Reg_Input2) = "" Then
    MsgBox(0, "Fehler", "Bitte geben Sie ihren Namen ein.")
    Else
    GUICtrlSetData($P_Reg_Edit1, "Vorname: " & GUICtrlRead($P_Reg_Input1) & @CRLF & "Zuname: " & GUICtrlRead($P_Reg_Input2) & @CRLF & "ID: ")
    _GUICtrlEdit_SetSel($P_Reg_Edit1, 0, -1)
    EndIf
    Case $P_Reg_Button4
    Exit
    EndSwitch
    WEnd

    [/autoit]

    Einmal editiert, zuletzt von sir-gunny (4. Januar 2009 um 03:34)

    • Offizieller Beitrag

    Warum nimmst zur Ausgabe eigentlich eine Editbox ? Ich würde das ganze als Label anzeigen. Verstehe den Sinn der ganzen Markieraktion in der Editbox nicht .

  • Du musst der Editbox auch den Fokus geben ... GUICtrlSetState($P_Reg_Edit1,$GUI_FOCUS)

    • Offizieller Beitrag

    Probier mal das :

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <GUIConstants.au3>
    #include <EDITConstants.au3>
    #include <GUIConstantsEX.au3>
    #include <GUIEdit.au3>
    #include <GuiStatusBar.au3>

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

    #Region ### START Koda GUI section ### Form=
    $P_Reg_Form = GUICreate("Registrierung", 222, 256, 303, 219)
    $P_Reg_Input1 = GUICtrlCreateInput("Max", 50, 54, 169, 21)
    GUICtrlSetLimit(-1, 20)
    $P_Reg_Input2 = GUICtrlCreateInput("Mustermann", 50, 78, 169, 21)
    GUICtrlSetLimit(-1, 20)
    $P_Reg_Edit1 = GUICtrlCreateEdit("", 4, 128, 217, 40,BitOR($ES_READONLY,$ES_WANTRETURN), 0)
    GUICtrlSetData($P_Reg_Edit1, "Vorname: " & @CRLF & "Zuname: " & @CRLF & "ID: ")
    $P_Reg_Label2 = GUICtrlCreateLabel("Vorname:", 4, 60, 45, 17)
    $P_Reg_Label3 = GUICtrlCreateLabel("Zuname:", 4, 80, 45, 17)
    $P_Reg_Button1 = GUICtrlCreateButton("ID generieren", 74, 102, 75, 25)
    $P_Reg_Button2 = GUICtrlCreateButton("Registrieren", 4, 228, 67, 25, 0)
    $P_Reg_Button3 = GUICtrlCreateButton("Aktivieren", 76, 228, 67, 25, 0)
    $P_Reg_Button4 = GUICtrlCreateButton("Beenden", 148, 228, 67, 25, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $P_Reg_Button1
    If GUICtrlRead($P_Reg_Input1) = "" Or GUICtrlRead($P_Reg_Input2) = "" Then
    MsgBox(0, "Fehler", "Bitte geben Sie ihren Namen ein.")
    Else
    GUICtrlSetData($P_Reg_Edit1, "Vorname: " & GUICtrlRead($P_Reg_Input1) & @CRLF & "Zuname: " & GUICtrlRead($P_Reg_Input2) & @CRLF & "ID: ")
    GUICtrlSetState($P_Reg_Edit1,$GUI_FOCUS)
    _GUICtrlEdit_SetSel($P_Reg_Edit1, 0, StringLen(GuiCtrlRead($P_Reg_Edit1))-1)

    EndIf
    Case $P_Reg_Button4
    Exit
    EndSwitch
    WEnd

    [/autoit]

    Progandy hat natürlich recht, hab das mit dem Focus nicht bedacht .
    Edit zu Spät .