Der nachfolgende Tipp zeigt, wie sich ein langer (mehrzeiliger) Text nachträglich auf eine frei festlegbare maximaleZeilenlänge formatieren lässt. Die Funktion funcWordWrap erwartet hierbei zwei Parameter: den Text selbst und die neue maximale Zeilenlänge. ' Führt einen autom. Wort-Umbruch nach x-Zeichen durch Public Function funcWordWrap(ByVal strText As String, _ ByVal nLineLenght As Long) As String Dim strText1 As String Dim strText2 As String Dim strText3 As String Dim nTemp1 As Integer Dim nTemp2 As Integer ' Replace anLineLenght CR strText = Replace(strText, vbCr, " ") strText = Replace(strText, vbLf, " ") strText = Replace(strText, vbCrLf, " ") strText = Replace(strText, " ", " ") strText = Replace(strText, " ", " ") If LWord(strText) > nLineLenght Then ' Es wurde ein Wort gefunden, daß länger ist als ' die vorgegebene maximale Zeilenlänge! MsgBox "Should be: max.: " & _ CStr(nLineLenght) & " characters." funcWordWrap = strText Else strText = Trim(strText) nTemp2 = 1 For nTemp1 = 1 To Len(strText) If Mid$(strText, nTemp1, 1) = " " Then strText1 = strText1 & Mid$(strText, _ nTemp2, (nTemp1 + 1) - nTemp2) If Len(strText1) + Len(strText2) > nLineLenght Then strText3 = strText3 & strText2 & vbCrLf strText2 = "" strText2 = strText2 & strText1 strText1 = "" nTemp2 = nTemp1 + 1 nTemp1 = nTemp2 + 1 Else strText2 = strText2 & strText1 strText1 = "" nTemp2 = nTemp1 + 1 nTemp1 = nTemp1 + 1 End If ElseIf nTemp1 = Len(strText) Then If Len(strText2) + Len(Mid$(strText, nTemp2, _ (nTemp1 - nTemp2) + 1)) > nLineLenght Then strText3 = strText3 & strText2 & vbCrLf & _ Mid$(strText, nTemp2, (nTemp1 - nTemp2) + 1) Else strText3 = strText3 & strText2 & _ Mid$(strText, nTemp2, (nTemp1 - nTemp2) + 1) End If End If Next nTemp1 End If funcWordWrap = strText3 End Function ' Ermittelt das längste Wort eines Strings und gibt ' die Länge zurück Private Function LWord(strText As String) As Long Dim nCount As Integer Dim nTemp2 As Integer Dim nTemp3 As Integer nTemp2 = 1: nTemp3 = 1 For nCount = 1 To Len(strText) If Mid$(strText, nTemp3, 1) = " " Then If nCount - nTemp2 > nTemp3 Then _ nTemp3 = (nTemp3 - nTemp2) - 1 nTemp2 = nCount End If Next nCount LWord = nTemp3 End Function Die Funktion selbst prüft zunächst, ob sich innerhalb des Textes ein Wort befindet, daß länger ist, als die angegebene maximale Zeilenlänge. Ist dies der Fall, wird eine MsgBox ausgegeben. Der Funktionsrückgabewert ist dann der Originaltext ohne Veränderungen. Beispiel für den Aufruf ' Text auf max. 70 Zeichen pro Zeile formatieren txtMultiLine.Text = funcWordWrap(txtMultiLine.Text, 70) Dieser Tipp wurde bereits 12.388 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevISDN 1.0 Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Tipp des Monats März 2024 Dieter Otter UTF-8 Konvertierung von Dateien und Strings VB6 selbst verfügt über keine Funktionen zur UTF-8 Konvertierung von Daten. Mit Hilfe des ADODB.Stream-Objekts lassen sich diese fehlenden Funktionen aber schnell nachrüsten. Neu! sevCommand 4.0 Professionelle Schaltflächen im modernen Design! Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |