vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Re: Drucken: Text zu lang, aber wie kürzen? 
Autor: RapID23o5
Datum: 22.12.05 16:56

Danke für die Antworten

Hab nun eine möglichkeit gefunden die wohl akzeptabel ist!

strString = Kompletter String
colString = Gesplitteter String
oTWObject = Printer-Objekt
sngMaxW = Maximale Breite

Public Sub MustBreakLine(ByVal strString As String, _
                         ByRef colString As Collection, _
                         ByRef oTWObject As Object, _
                         ByVal sngMaxX As Single)
 
    Set colString = New Collection
 
    strString = Trim(strString)
    If Len(strString) = 0 Then
        colString.Add strString
        Exit Sub
    End If
 
    If oTWObject.TextWidth(strString) < sngMaxX Then
        colString.Add strString
        Exit Sub
    End If
 
    Dim i As Long
    Dim lngPos As Long
    Dim sngLen As Single
    Dim strTemp As String
    Dim strChar As String
    Dim sngActW As Single
    Dim strSplit() As String
 
    If InStr(1, strString, Space(1), 1) <> 0 Then
        strSplit = Split(strString, Space(1))
        If Not IsEmpty(strSplit) Then
            For i = 0 To UBound(strSplit)
                sngActW = oTWObject.TextWidth(strTemp & strSplit(i))
                If sngActW < sngMaxX Then
                    strTemp = strTemp & strSplit(i) & Space(1)
                Else
                    colString.Add strTemp
                    strTemp = strSplit(i)
                End If
                If i = UBound(strSplit) Then
                    colString.Add strTemp
                End If
            Next i
            Erase strSplit()
            Exit Sub
        End If
    End If
 
    ' Kein Space(1) im String dann CharBreaking
    For i = 1 To Len(strString)
        strChar = Mid$(strString, i, 1)
        If oTWObject.TextWidth(strTemp & strChar) < sngMaxX Then
            strTemp = strTemp & strChar
        Else
            colString.Add strTemp
            strTemp = strChar
        End If
        If oTWObject.TextWidth(strTemp) < sngMaxX _
        And i = Len(strString) Then
            colString.Add strTemp
        End If
    Next i
 
End Sub

Ohne Mampf, kein Kampf !

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Drucken: Text zu lang, aber wie kürzen?659RapID23o522.12.05 14:00
Re: Drucken: Text zu lang, aber wie kürzen?366RapID23o522.12.05 16:56

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel