Ermittelt die Zeichenposition des ersten Zeichens einer Zeile
#include <GuiRichEdit.au3>
_GUICtrlRichEdit_GetFirstCharPosOnLine ( $hWnd [, $iLine = -1] )
$hWnd | Handle des Controls |
$iLine | [optional] Zeilennummer Standard: Aktuelle Zeile |
Erfolg: | die Zeichenposition des ersten Zeichens in der Zeile |
Fehler: | 0 und setzt das @error Flag auf ungleich null |
@error: | 101 - $hWnd ist kein Handle 1021 - $iLine ist weder positiv noch -1 1022 - $iLine überschreitet die Anzahl der Zeilen des Controls |
Ein Control, das keinen Text enthält, hat keine Zeile.
Die erste Zeile ist Zeile 1. Die erste Zeichenposition im Control ist 0.
- - - - - - - - Erklärung der Controls - - - - - - - -
Suche nach EM_GETLINEINDEX in der MSDN Bibliothek.
#include <GUIConstantsEx.au3>
#include <GuiRichEdit.au3>
#include <WindowsConstants.au3>
Global $g_idLblMsg
Example()
Func Example()
Local $hGui, $hRichEdit, $iLastLineNumber, $iCharPosition, $iMsg
$hGui = GUICreate("Beispiel (" & StringTrimRight(@ScriptName, StringLen(".exe")) & ")", 520, 350, -1, -1)
$hRichEdit = _GUICtrlRichEdit_Create($hGui, "Dies ist ein Test.", 10, 10, 500, 220, _
BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
$g_idLblMsg = GUICtrlCreateLabel("", 10, 235, 300, 60)
GUISetState(@SW_SHOW)
_GUICtrlRichEdit_AutoDetectURL($hRichEdit, True)
_GUICtrlRichEdit_AppendText($hRichEdit, @CR & "http://www.autoitscript.com")
$iLastLineNumber = _GUICtrlRichEdit_GetLineCount($hRichEdit)
; Ermittelt die erste Zeichenposition der letzten Zeile
$iCharPosition = _GUICtrlRichEdit_GetFirstCharPosOnLine($hRichEdit, $iLastLineNumber)
; Whält 4 Zeichen aus - sollte das Wort "http" sein
_GUICtrlRichEdit_SetSel($hRichEdit, $iCharPosition, $iCharPosition + 4)
Report("Die Zeicheneigenschaften am Anfang der Zeile sind " & $iLastLineNumber & _
_GUICtrlRichEdit_GetCharAttributes($hRichEdit))
While True
$iMsg = GUIGetMsg()
Select
Case $iMsg = $GUI_EVENT_CLOSE
_GUICtrlRichEdit_Destroy($hRichEdit) ; wird benötigt, da sonst das Skript abstürzt
;~ GUIDelete() ; ist auch in Ordnung
Exit
EndSelect
WEnd
EndFunc ;==>Example
Func Report($sMsg)
GUICtrlSetData($g_idLblMsg, $sMsg)
EndFunc ;==>Report