Hey ihr autoit liebhaber
Ich wollte mal fragenwie ich an ein editcontrol text anhängen kann ohne dafür _GUICtrlEdit_AppendText zu nehmen
Hey ihr autoit liebhaber
Ich wollte mal fragenwie ich an ein editcontrol text anhängen kann ohne dafür _GUICtrlEdit_AppendText zu nehmen
- Auslesen
- & zusätzlicher Text
- neuen Text setzen
Zuerst auslesen (GuiCtrlRead) dann schreiben (GuiCtrlSetData).
Hier findest du ein Beispiel wie du auch ohne vorheriges auslesen mehrere Zeilen nacheinander in eine Editbox einfügen kannst (Vorteil ist, dass die Box mitscrollt):
danke schon mal aber ich denke ich werds trotzdem eher mit _GUICtrlEdit_AppendText machen, da der text sonst irgendwann viel zu lang wird
aber danke trotzdem
Was sprach den gegen die genannte Funktion?
ich wollte kein neues include setzen aber is jetzt auch egal
Moin,
oder so ...
#include <EditConstants.au3>
; ...
[/autoit] [autoit][/autoit] [autoit]Func AppendTextToEdit ($nIdEdit, ByRef $sText)
[/autoit] [autoit][/autoit] [autoit]Local $iTextLen
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]$iTextLen = DllCall ("user32.dll", "int", "GetWindowTextLength", _
"HWND", GUICtrlGetHandle ($nIdEdit))
GUICtrlSendMsg ($nIdEdit, $EM_SETSEL, $iTextLen[0], $iTextLen[0])
GUICtrlSendMsg ($nIdEdit, $EM_REPLACESEL, 1, $sText)
EndFunc
[/autoit] [autoit][/autoit] [autoit][/autoit]Gruß
Greenhorn
Naja, wegen EINEM Include lohnt sich der Aufwand wohl kaum
Man kann die Funktionen natürlich auch direkt aus dem Include in die Function kopieren, ein Compiler macht ja auch nichts anderes.
... oder so:
[autoit]Func _AppendToEdit($idCtrl, $sText)
; $idCtrl = ControlID aus GUICtrlCreateEdit()
; $sText = anzufügender Text
; ($EM_SETSEL = 0xB1)
GUICtrlSendMsg($idEdit, 0xB1, -2, -1)
GUICtrlSetData($idEdit, $sText, 1)
EndFunc