Mit Anwendung von VB-Code wird in diesem Tipp vermittelt, wie unter Verwendung einer speziellen Funktion und einer besonderen Vorgehensweise, formatierte, auf Variablen beruhende RTF-Texte erzeugt werden können. Vorgehensweise: Dim tx(3) As String ' (4 Strings können definiert werden) D.h. der RTF-Text wird aus diesen Einzelstrings zusammengesetzt, nachdem Formatierungen vorgenommen wurden. An gewünschter Stelle im Programm erzeugt man die Strings für das Array. Dabei können einfache Texte aber auch Variable als Strings vereinbart werden. Das Array-Element muss allerdings dem folgenden vorgegebenen Aufbau entsprechen: "Text; SelectionBackcolor; SelectionColor; SelectionFont"
Anmerkung: die Begriffe stammen aus der Programmierung für RTF Alle diese Parameter werden durch ; getrennt. Der Parameter SelectionFont dient dem definieren des Fonts für den Text: "FontFamily, FontSize, FontStyle" Es sind gewissermaßen Parameter für den Parameter SelectionFont und werden mit , voneinander getrennt. Davon ausgehend kann man nun bspw. folgendes String-Feld programmieren: tx(0) = UCase("meinname") & vbCrLf & ";Red;Black;Arial,12,Bold" tx(1) = "Vorname" & vbCrLf & ";;Black;Arial,10,Regular" & vbCrLf tx(2) = " hat heute, am " & Now.ToString & ";Red;Yellow;Times New Roman,16,Italic" tx(3) = "Geburtstag!;;Black;Arial,10,Regular" Auf diese Art können auch sämtliche Variablen für RTF formatiert werden. Jetzt kann der Aufruf der Funktion createRTFtext erfolgen mit: Dim tRTF as String = createRTFtext(tx, bgColor) mit bgColor als die allgemeine Hintergrundfarbe eines RTF-Controls, üblicherweise einer RichTextBox. Dann nur noch den RTF-Text in die RichTextBox einfüllen: RichTextBox1.RTF = tRTF Hier nun die zugehörige Funktion: ''' <summary> ''' RTF-Text mit Formatierungen erstellen ''' </summary> ''' <param name="tFeld">das Feld einzelner, zu formatierender Texte</param> ''' <param name="defBGColor">die Hintergrundfarbe, default</param> ''' <returns>der formatierte RTF-Text</returns> Public Function createRTFtext(tFeld() As String, Optional defBGColor As Color = Nothing) As String ' Aufbau eines Feld-Elements der Texte ' Definition: text,selectionback,selectionfor,selectionfont ' Beispiel für Feld-Element: "Hallo Welt;Black;White;Arial,12,Regular" Dim rtt As New RichTextBox Dim sp(), spf(), t As String Dim cb, cf As Color Dim fo As Font, fs As FontStyle ' das Array verarbeiten For i As Short = 0 To tFeld.Length - 1 If IsNothing(tFeld(i)) Then Continue For ' Feldelement splitten sp = Split(tFeld(i), ";") ' gesplittetes Element verarbeiten For j As Short = 0 To sp.Length - 1 Select Case j Case 0 ' der Text t = sp(0) Case 1 ' SelectionBackColor If IsNothing(defBGColor) OrElse sp(1) <> "" Then cb = Color.FromName(sp(1)) ElseIf Not IsNothing(defBGColor) And sp(1) = "" Then cb = defBGColor End If Case 2 ' SelectionColor cf = Color.FromName(sp(2)) Case 3 ' der Font ' splitten der Font-Parameter spf = Split(sp(3), ",") ' festlegen des FontStyles Select Case spf(2) Case "Regular" : fs = FontStyle.Regular Case "Bold" : fs = FontStyle.Bold Case "Italic" : fs = FontStyle.Italic Case "Underline" : fs = FontStyle.Underline End Select ' den Font definieren fo = New Font(spf(0), CShort(spf(1)), fs) End Select Next ' den RTF-Text in einer RTF-Textbox erzeugen With rtt If Not IsNothing(cb) Then .SelectionBackColor = cb If Not IsNothing(cf) Then .SelectionColor = cf If Not IsNothing(fo) Then .SelectionFont = fo .AppendText(t) End With cb = Nothing : cf = Nothing : fo = Nothing Next ' Rückgabe des RTF-Textes Return rtt.Rtf End Function Dieser Tipp wurde bereits 8.881 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 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. sevOutBar 4.0 Vertikale Menüleisten á la Outlook Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. |
||||||||||||||||
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. |