Selektierter Text in einer Editbox

  • Hallo Liebe Community,

    ich versuche mich gerade daran einen kleinen HTML/JS/PHP - Editor auf meine angepassten Wünsche zu schreiben.

    Dabei hat sich folgendes Problem aufgetan:

    ich möchte gern text aus einer editbox den ich selektiert habe (manuell) in einen string verpacken, aber ich finde absolut keinen befehl der das möglich macht :S
    und mit der Clipboard Funktion (die ich nur ungern nutzen wöllte),... ClipPut("Var") muss man ja schon einen String übergeben, den ich ja nicht habe.
    desweiteren gibt auch _GUICtrlEdit_GetSel() nur die position der markierungen wieder, was mir auch nicht viel hilft :S
    und Hotkeys für ein erzwungenes Strg+C ist auch keine schöne lösung :(

    hat jemand eine idee wie ich den selektierten inhalt einer editbox gekonnt in einer string übergeben kann?

  • Hallo LoVeOrHaTeMe,

    hier ein abgeändertes Beispiel aus der Hilfe zu _GUICtrlEdit_GetSel:

    Spoiler anzeigen
    [autoit]

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

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

    Opt('MustDeclareVars', 1)

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

    $Debug_Ed = False ; Check ClassName being passed to Edit functions, set to True and use a handle to another control to see it work

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

    _Main()

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

    Func _Main()
    Local $StatusBar, $hEdit, $hGUI, $Text
    Local $sFile = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\AutoIt v3\AutoIt", "InstallDir") & "\include\changelog.txt"
    Local $aPartRightSide[3] = [190, 378, -1], $aSel

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

    ; Create GUI
    $hGUI = GUICreate("Edit Get Sel", 400, 300)
    $hEdit = GUICtrlCreateEdit("", 2, 2, 394, 268, BitOR($ES_WANTRETURN, $WS_VSCROLL))
    $StatusBar = _GUICtrlStatusBar_Create($hGUI, $aPartRightSide)
    _GUICtrlStatusBar_SetIcon($StatusBar, 2, 97, "shell32.dll")
    GUISetState()

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

    ; Set Margins
    _GUICtrlEdit_SetMargins($hEdit, BitOR($EC_LEFTMARGIN, $EC_RIGHTMARGIN), 10, 10)

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

    ; Set Text
    _GUICtrlEdit_SetText($hEdit, FileRead($sFile))

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

    ; Set Sel
    _GUICtrlEdit_SetSel($hEdit, 15, 20)

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

    ; Get Sel
    $aSel = _GUICtrlEdit_GetSel($hEdit)
    _GUICtrlStatusBar_SetText($StatusBar, "Start: " & $aSel[0])
    _GUICtrlStatusBar_SetText($StatusBar, "End: " & $aSel[1], 1)
    $Text = StringMid(GUICtrlRead($hEdit),$aSel[0]+1,$aSel[1]-$aSel[0])
    ConsoleWrite($Text & @CRLF)

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

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

    [/autoit]


    mfg (Auto)Bert

  • fettes danke, kannte den StringMid command nit <3

    da kann ich mit dem replacement jetzt auch arbeiten ;D