wie verändere ich die Position des Eingabecursors im Editfeld?

  • Der Titel sagt schon alles, ich möchte den Eingabecursor im EditCtrl mit dem State $GUI_FOCUS zum Beginn verschieben.
    z.B. von "Bla,dnsadö asdfk sadop |jaosdj sajdop asjfo kpüdas" zu "|Bla,dnsadö asdfk sadop jaosdj sajdop asjfo kpüdas"
    (Dabei repräsentiert der sekrechte Strich den blinkenden Eingabecursor)

    Ist das irgendwie möglich?
    (Ich habe schon die Hilfe durchforstet, aber nix dergleichen gefunden)

    Ich freue mich über jede Antwort :)

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

    Einmal editiert, zuletzt von L3viathan2142 (27. März 2009 um 16:07)

    • Offizieller Beitrag
    Spoiler anzeigen
    [autoit]

    #AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
    #include <GuiEdit.au3>
    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    Opt('MustDeclareVars', 1)

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

    _Main()

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

    Func _Main()
    Local $hEdit

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

    ; Create GUI
    GUICreate("Edit Insert Text", 400, 300)
    $hEdit = GUICtrlCreateEdit("", 2, 2, 394, 268, BitOR($ES_WANTRETURN, $WS_VSCROLL))
    GUISetState()

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

    ; Set Text
    _GUICtrlEdit_SetText($hEdit, 'In die Klammern () mit dem Cursor! - ' & @UserName)

    ; Insert text
    _GUICtrlEdit_InsertText($hEdit,'', 17)

    ; Loop until user exits
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
    EndFunc ;==>_Main

    [/autoit]

    Mega

  • ich glaube, Du möchtest den Cursor einfach an den Anfang des Textes...

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    #region - GUI Create
    GUICreate('')
    GUISetState()
    #endregion

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

    $edit = GUICtrlCreateEdit("Bla,dnsadö asdfk sadop jaosdj sajdop asjfo kpüdas",5,5,300,200)
    GUICtrlSetState(-1,$GUI_FOCUS)
    Send("{HOME}")
    #region - GUI SelectLoop
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    EndSelect
    WEnd
    #endregion

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Vielen Dank euch beiden, ich favorisiere die Lösung von Xeno, auch wenn ich den Cursor wirklich nur an den Anfang haben möchte.
    Denn ich bin gern unabhängig von Hotkeys und Send (Fenster müsste umbedingt aktiv sein...)
    Trotzdem auch ein Thx an Schnuffel. :thumbup:

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

  • Es geht auch mit der dafür gedachten Funktion: _GUICtrlEdit_SetSel ;)

    Spoiler anzeigen
    [autoit]

    #AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
    #include <GuiEdit.au3>
    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    Opt('MustDeclareVars', 1)

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

    _Main()

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

    Func _Main()
    Local $hEdit

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

    ; Create GUI
    GUICreate("Edit Insert Text", 400, 300)
    $hEdit = GUICtrlCreateEdit("", 2, 2, 394, 268, BitOR($ES_WANTRETURN, $WS_VSCROLL))
    GUISetState()

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

    ; Set Text
    _GUICtrlEdit_SetText($hEdit, 'In die Klammern () mit dem Cursor! - ' & @UserName)

    ; Insert text
    _GUICtrlEdit_SetSel($hEdit,17, 17)

    ; Loop until user exits
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
    EndFunc ;==>_Main

    [/autoit]
  • Danke, Progandy,
    die nehm ich.
    @Xeno: Deine Funktion funzt doch nicht (zumindest bei mir), weil wenn ich dann was eingebe ein Zeilenumbruch(@CR ODER @LF, keine Ahnung) vor und hinter die Eingabe kommt, wird als angezeigt. ?(
    Egal, mit Progandys Funktion gehts prima.. :thumbup:

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.