vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Grafik und Font · Font & Text   |   VB-Versionen: VB4, VB5, VB615.07.03
Text im Blocksatz ausgeben

Eine Funktion, um Texte im Blocksatz auszugeben

Autor:   E7Bewertung:     [ Jetzt bewerten ]Views:  15.250 
ohne HomepageSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Um Text im Blocksatz auszugeben, benötigen Sie lediglich eine Picturebox und diesen Tipp:

Option Explicit
 
Private Const LongText As String = "Dies ist ein sinn- und " & _
    "einfallsloser, aber ellenlanger Text mit einigen Satzzeichen, " & _
    "den wir zur Anzeige in der Picturebox benötigen. Ohne solche " & _
    "langen Sätze wäre es nicht möglich, den sogenannten BLOCKSATZ-" & _
    "EFFEKT zu sehen. Dieser Blocksatzeffekt soll den Text genau aus" & _
    "richten. Dazu wird der Zwischenraum der einzelnen Wörter einfach" & _
    " vergrößert. Allmählich sollte es mit Text reichen; allerdings " & _
    "ist das Ergebnis noch immer so kurz und eindruckslos."
Private Sub Form_Load()
  ' Wichtig!
  Picture1.AutoRedraw = True
End Sub
Private Sub Form_Resize()
  If Me.WindowState <> vbMinimized Then
    ' PictureBox positionieren
    With Picture1
      .Left = 0
      .Top = 0
      .Width = Me.ScaleWidth
      .Height = Me.ScaleHeight
      .Cls
    End With
 
    ' Text im Blocksatz ausgeben
    PrintBlocksatz Picture1, LongText
  End If
End Sub
' beliebigen Text im Blocksatz auf einer 
' PictureBox ausgeben (oder auch Drucker)
Private Sub PrintBlocksatz(PicBox As Object, _
  ByVal OutputText As String, _
  Optional ByVal LeftMargin As Long = 80, _
  Optional ByVal RightMargin As Long = 80, _
  Optional ByVal TopMargin As Long = 80)
 
  Dim S As String
  Dim AP As Long
  Dim T As String
  Dim L As Long
  Dim V As Variant
  Dim O As String
  Dim N As Long
  Dim C As Long
  Dim aSM As Long
 
  With PicBox
    aSM = .ScaleMode
    .ScaleMode = vbTwips
    S = OutputText
    AP = TopMargin
    Do While Len(S) > 0
      Do While Len(S) > 0
        If InStr(1, S, " ") > 0 Then
          T = Left(S, InStr(1, S, " ") - 1)
        Else
          T = S
        End If
        If .TextWidth(O & " " & T) > .ScaleWidth - _
          LeftMargin - RightMargin Then
          Exit Do
        Else
          If InStr(1, S, " ") > 0 Then
            O = O & " " & T
            S = Mid(S, Len(T) + 2)
          Else
            O = O & " " & S
            S = vbNullString
          End If
        End If
      Loop
 
      Do
        C = Len(O)
        O = Replace(O, "  ", " ")
      Loop While C > Len(O)
      O = Trim(O)
      V = Split(O, " ")
      O = Replace(O, " ", vbNullString)
 
      Do
        If UBound(V) = 0 And Len(S) > 0 Then
          O = vbNullString
          For C = 1 To Len(V(0))
            O = O & " " & Mid(V(0), C, 1)
          Next C
          O = Trim(O)
          V = Split(O, " ")
          O = Replace(O, " ", vbNullString)
       ElseIf Len(S) > 0 Then
          N = .ScaleWidth - LeftMargin - RightMargin
          N = N - .TextWidth(O)
          N = N / UBound(V)
          Exit Do
        Else
          N = .TextWidth(" ")
          Exit Do
        End If
      Loop
 
      L = LeftMargin
      For C = 0 To UBound(V)
        .CurrentX = L
        .CurrentY = AP
        PicBox.Print V(C)
        L = L + .TextWidth(V(C)) + N
      Next C
      AP = AP + .TextHeight(O)
      O = vbNullString
    Loop
    .ScaleMode = aSM
  End With
End Sub

Wenn Sie das Beispiel starten, wird die PictureBox ganz oben an der Form ausgerichtet und der Text erscheint dort im Blocksatz.

Fügen Sie der Form jetzt noch einen CommandButton hinzu. Beim Klick auf den Button wird der Text dann ausgedruckt - natürlich ebenfalls im Blocksatz.

Private Sub Command1_Click()
  ' Text im Blocksatz ausdrucken
  PrintBlocksatz Printer, LongText
  Printer.EndDoc
End Sub

Dieser Tipp wurde bereits 15.250 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!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.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 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