Ermittelt die Zeilenanzahl in einem mehrzeiligen Edit-Control
#include <GuiRichEdit.au3>
_GUICtrlRichEdit_GetLineCount ( $hWnd )
$hWnd | Handle des Controls |
Erfolg: | die Gesamtanzahl der Textzeilen |
Fehler: | 0 und setzt das @error Flag auf ungleich null |
@error: | 101 - $hWnd ist kein Handle |
Ein Control, welches keinen Text enthält, hat nur eine Zeile.
Zeilen, die momentan nicht sichtbar sind, sind in der Anzahl eingeschlossen.
Falls Zeilenumbrüche aktiviert sind, so kann die Zeilenanzahl sich ändern, wenn sich die Abmessungen des Edit-Fensters ändern.
- - - - - - - - Erklärung der Controls - - - - - - - -
Suche nach EM_GETLINECOUNT in der MSDN Bibliothek.
#include <GUIConstantsEx.au3>
#include <GuiRichEdit.au3>
#include <WindowsConstants.au3>
Global $g_idLblMsg
Example()
Func Example()
Local $hGui, $iMsg, $hRichEdit
$hGui = GUICreate("Beispiel (" & StringTrimRight(@ScriptName, 4) & ")", 320, 350, -1, -1)
$hRichEdit = _GUICtrlRichEdit_Create($hGui, "Dies ist ein Test.", 10, 10, 300, 220, _
BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
$g_idLblMsg = GUICtrlCreateLabel("", 10, 235, 300, 60)
GUISetState(@SW_SHOW)
For $i = 2 To 10
_GUICtrlRichEdit_AppendText($hRichEdit, @CR & "Zeile " & $i)
Next
Report("Das Control beinhaltet " & _GUICtrlRichEdit_GetLineCount($hRichEdit) & " Zeilen")
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