vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 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

Suche Visual-Basic Code
Aber jetzt... so richtig heftig und gut! 
Autor: ModeratorDieter (Moderator)
Datum: 17.06.01 12:53

Hi Enrico,
hat ein bisschen länger gedauert, da ich erst jetzt grad dazugekommen bin - dafür ist's aber richtig gut geworden

Hier der Source:
<code><font color=green>' Text drucken mit automatischem Wortumbruch
' 
' sText = Text, der gedruckt werden soll
'    (kann optional auch harte Zeilenumbrüche enthalten)
' xPos = linker Rand, der frei gehalten werden soll
' MaxWidth = optional
'    0 = kein freier rechter Rand
'    -Wert = freier rechter Rand in mm
'    sonst = max. Ausdruckbreite für den Text</font>
Public Sub PrintMultilineTextBox(ByVal sText As String, ByVal xPos As Long, _
  Optional ByVal MaxWidth As Long = 0)
 
  Dim sLine() As String
  Dim I As Integer
  Dim NextLine As String
 
  With Printer
    <font color=green>' Maximale Druckbreite für die Textbox</font>
    If MaxWidth = 0 Then 
      MaxWidth = .ScaleWidth - xPos
    ElseIf MaxWidth < 0 Then
      MaxWidth = .ScaleWidth - xPos - MaxWidth
    End If
 
    <font color=green>' zunächst die "harten" Zeilenumbrüche ermitteln</font>
    sLine = Split(sText, vbCrLf)
    For I = 0 To UBound(sLine)
      If .TextWidth(sLine(I)) <= MaxWidth Then
        <font color=green>' Zeile hat keine "Überbreite"</font>
        Printer.CurrentX = xPos
        Printer.Print sLine(I)
      Else
        <font color=green>' Zeile umbrechen</font>
        Do
          NextLine = ""
          While .TextWidth(sLine(I)) > MaxWidth
            NextLine = Right$(sLine(I), 1) + NextLine
            sLine(I) = Left$(sLine(I), Len(sLine(I)) - 1)
          Wend
 
          <font color=green>' Wortumbruch prüfen</font>
          CheckUmbruch NextLine, sLine(I)
          Printer.CurrentX = xPos
          Printer.Print sLine(I)
          sLine(I) = NextLine
        Loop Until Trim$(sLine(I)) = ""
      End If
    Next I
  End With
End Sub
 
<font color=green>' Wortumbruch beachten</font>
Private Sub CheckUmbruch(NextLine As String, Text As String)
  Const Check = " .,;:-_!?(/+"
 
  If NextLine <> "" Then
    If InStr(Check, Left$(NextLine, 1)) = 0 Then
      While InStr(Check, Right$(Text, 1)) = 0 And Len(Text) > 0
        NextLine = Right$(Text, 1) + NextLine
        Text = Left$(Text, Len(Text) - 1)
      Wend
    End If
  End If
End Sub</code>
So nun ein paar kurze Erläuterungen:
Anstelle von Printer.Print Text1.Text setzt Du nun folgenden Prozeduraufruf ein:
<code>PrintMultilineTextBox Text1.Text, 20, -20</code>
Der Text wird dann an der aktullen Y-Position unter Einhaltung eines linken Randes von 20mm gedruckt (Parameter xPos) und Einhaltung eines freien Randes rechts von 20mm (Parameter -MaxWidth).

Morgen gibt's dann noch eine kleine Steigerung ....

Cu
Dieter
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Ausdrucken von Textboxen & Labels144Enrico Hahn15.06.01 17:51
Re: Ausdrucken von Textboxen & Labels939unbekannt15.06.01 18:23
Re: Ausdrucken von Textboxen & Labels118Enrico Hahn15.06.01 19:05
Re: Ausdrucken von Textboxen & Labels1.033unbekannt15.06.01 19:30
Re: Ausdrucken von Textboxen & Labels114Enrico Hahn15.06.01 19:43
Re: Ausdrucken von Textboxen & Labels113Enrico Hahn16.06.01 13:09
Hier ein Beispiel...955ModeratorDieter16.06.01 13:42
Re: Hier ein Beispiel...121Enrico Hahn16.06.01 13:55
Re: Hier ein Beispiel...1.058ModeratorDieter16.06.01 14:05
Re: Hier ein Beispiel...113Enrico Hahn16.06.01 14:22
Re: Hier ein Beispiel...958ModeratorDieter16.06.01 14:40
Aber jetzt... so richtig heftig und gut!997ModeratorDieter17.06.01 12:53
Re: Aber jetzt... so richtig heftig und gut!122Enrico Hahn17.06.01 14:51
Re: Aber jetzt... so richtig heftig und gut!939ModeratorDieter17.06.01 15:59

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