TextBox: zeilenweises Auslesen und linksbündig ausdrucken

TextBox: zeilenweises Auslesen und linksbündig ausdrucken via SendMessageAsString, SendMessageAsLong
Private Declare Function SendMessageAsString Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, _
ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
Private Declare Function SendMessageAsLong Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, _
ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Buffer$, LCount%, ByteLo%, ByteHi%, N&, X&
Const EM_GETLINE = 196 Parameter nicht verändern (das ist keine Breite / Höhe).
Const EM_GETLINECOUNT = 186 Parameter nicht verändern (das ist keine Breite / Höhe).
Const MAX_CHAR_PER_LINE = 90 Zeilenbreite (darf aber nicht schmaler als die TextBox sein).
Wenn man den Wert erhöht, kann man die TextBox
Private Sub cmdAPIPrint_Click() beliebig verbreitern.
Printer.FontSize = 14
Printer.Print ""
Printer.Print Tab(12); "Überschrift"
Printer.Print ""
Printer.FontSize = 10
X = funcLineCount&() Funktions-Aufruf zum Zählen der Zeilen in TextBox.
For N = 1 To X
Buffer = funcLine$(N - 1) Zeilenweises Lesen.
Printer.Print Tab(16); Buffer Zeilenweises Drucken -->
Next N
Printer.Print Tab(15); "________________________________________________________________________"
Printer.EndDoc
End
End Sub
Private Function funcLineCount&()
LCount = SendMessageAsLong(Text1.hWnd, EM_GETLINECOUNT, 0, 0)
funcLineCount& = LCount
End Function Parameter-Veränderung ohne Wirkung.
Private Function funcLine$(LineNumber As Long)
ByteLo = MAX_CHAR_PER_LINE And (255) Parameter nicht verändern (Ausgabebreite).
ByteHi = Int(MAX_CHAR_PER_LINE / 256)
Buffer$ = Chr$(ByteLo%) + Chr$(ByteHi%) + Space$(MAX_CHAR_PER_LINE - 2)
X = SendMessageAsString(Text1.hWnd, EM_GETLINE, LineNumber, Buffer$)
funcLine$ = Left$(Buffer$, X)
End Function
Bei der "normalen" Programmierung hingegen wird der ganze Inhalt der TextBox als ein String gelesen.
Private Sub cmdNormalPrint_Click()
Dim Anzahl$, FormString$, EinzelZeichen$, TextStringNEU$, i%
Anzahl = Len(frmPrint.Text1) Anzahl = Gesamte Textlänge in der TextBox.
FormString = frmPrint.Text1
For i = 1 To Anzahl
EinzelZeichen = Mid(FormString, i, 1)
If EinzelZeichen <> vbCr And EinzelZeichen <> vbLf Then Den Umbruch prüft man mit einer UND-Verknüpfung, in der
TextStringNEU = TextStringNEU & EinzelZeichen VBCR und VBLF einzeln abgefragt werden müssen. Ohne
End If diese Abfrage würde der Umbruch nicht gefunden.
Next
MsgBox TextStringNEU
End Sub TextBox-Inhalt wird als ein String in MsgBox
ausgegeben:
.
Sponsoren und Investoren

Sponsoren und Investoren sind jederzeit herzlich willkommen!
Wenn Sie die Information(en) auf dieser Seite interessant fanden, freuen wir uns über eine kleine Spende. Empfehlen Sie uns bitte auch in Ihren Netzwerken (z. B. Twitter, Facebook oder Google+). Herzlichen Dank!

Nach oben Sitemap
Impressum & Kontakt