Hi.
Dieser Ansatz fragt zyklisch das Edit ab und wenn die max. Länge überschritten wird, dann wird's einfach wieder abgeschnitten.
C
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
$CharPerSMS=160
$MaxSMS=5
$Text=""
$Len=0
$SMS=0
$w=300
$h=600
$MyGui=GUICreate("SMS",$w,$h)
$iTel=GUICtrlCreateInput("",10,10,$w-20,30)
$eSMS=GUICtrlCreateEdit("",10,40,$w-20,$h-90,$ES_MULTILINE)
$LCounters=GUICtrlCreateLabel("Zeichen/SMS",10,$h-30,$w/2-10,30)
$BtnDoit=GUICtrlCreateButton("Abschicken",$w/2+5,$h-40,$w/2-20,30)
GUISetState()
AdlibRegister("Auslesen",100)
while 1
$msg=GUIGetMsg()
Switch $msg
case $GUI_EVENT_CLOSE
Exit
case $BtnDoit
; abschicken
Exit
EndSwitch
WEnd
Func Auslesen()
$Text=GUICtrlRead($eSMS)
$NewLen=StringLen($Text)
if $NewLen<>$Len Then
$Len=$NewLen
$SMS=Ceiling($Len/$CharPerSMS)
if $SMS > 5 Then
GUICtrlSetData($eSMS,StringLeft($Text,$CharPerSMS*$MaxSMS))
EndIf
GUICtrlSetData($LCounters,$SMS & " SMS / " & $Len & " Zeichen")
EndIf
EndFunc
Alles anzeigen
Schöne Grüße, Rudi.