VB 5/6-Tipp 0650: Schriftarteneinstellungen sichern und wiederherstellen
von Peter K. Sauer
Beschreibung
Normalerweise ist es mit VB nicht möglich, die Font-Einstellungen eines Objektes zu sichern oder auf andere Objekte zu übertragen. Da jedes Font-Objekt ein eindeutiges Handle hat, wären die betreffenden Font-Objekte identisch. Jede Änderung, die man nun an einem der Font-Objekte vornimmt, wirkt sich damit vollautomatisch auch auf alle anderen Font-Objekte mit demselben Handle aus.
Abhilfe schafft hier das IFont-Interface, das unter anderem eine Clone-Methode zur Verfügung stellt. Mit dieser Clone-Methode kann man die Eigenschaften eines Font-Objektes auf ein anderes übertragen.
Schwierigkeitsgrad: | Verwendete API-Aufrufe: keine | Download: |
'Dieser Quellcode stammt von http://www.activevb.de 'und kann frei verwendet werden. Für eventuelle Schäden 'wird nicht gehaftet. 'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum. 'Ansonsten viel Spaß und Erfolg mit diesem Source! '------------- Anfang Projektdatei Projekt1.vbp ------------- '--------- Anfang Formular "Form1" alias Form1.frm --------- ' Steuerelement: Schaltfläche "cmdRestoreFont" ' Steuerelement: Schaltfläche "cmdSaveFont" ' Steuerelement: Textfeld "txtTest" Option Explicit Private Sub cmdSaveFont_Click() ' alten Font sichern FontSave txtTest.Font ' und einen beliebigen neuen setzen txtTest.FontSize = 10 txtTest.FontBold = True txtTest.FontItalic = True txtTest.FontUnderline = True End Sub Private Sub cmdRestoreFont_Click() On Error Goto ErrHandler ' alten Font wiederherstellen Set txtTest.Font = FontRestore Exit Sub ErrHandler: ' das Wiederherstellen ist fehlgeschlagen, weil FontRestore keinen Font zurückgeben konnte End Sub Private Sub Form_Load() txtTest.FontSize = 12 End Sub '---------- Ende Formular "Form1" alias Form1.frm ---------- '--------- Anfang Modul "Module1" alias Module1.bas --------- Option Explicit Private m_objOldFont As StdFont ' Hinweis: Ein einmal gesicherter Font kann /nicht/ mehrmals verwendet werden! ' Jeder gesicherte Font kann damit wirklich nur einmal vergeben werden. ' einen Font sichern Public Sub FontSave(Expression As StdFont) Dim objIFont As IFont ' falls noch ein Font gesichert ist, wird dieser zuerst gelöscht If Not (m_objOldFont Is Nothing) Then Set m_objOldFont = Nothing End If ' den übergebenen Font in ein IFont übertragen Set objIFont = Expression ' das IFont klonen Set m_objOldFont = New StdFont objIFont.Clone m_objOldFont ' das IFont wieder freigeben Set objIFont = Nothing End Sub ' einen Font wiederherstellen Public Function FontRestore() As StdFont If m_objOldFont Is Nothing Then MsgBox "Kein Font zum Wiederherstellen vorhanden!", vbExclamation, "FontRestore" Exit Function End If Set FontRestore = m_objOldFont Set m_objOldFont = Nothing End Function '---------- Ende Modul "Module1" alias Module1.bas ---------- '-------------- Ende Projektdatei Projekt1.vbp --------------
Tipp-Kompatibilität:
Windows/VB-Version | Win32s | Win95 | Win98 | WinME | WinNT4 | Win2000 | WinXP |
VB4 | |||||||
VB5 | |||||||
VB6 |
Ihre Meinung
Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.