|
Tipp 0254
|
Proportional-Schriften erkennen
|
|
|
Autor/Einsender: Datum: |
|
Andreas ten Pas 14.07.2002 |
|
Entwicklungsumgebung: |
|
VB 5 |
|
|
Das Erkennen von Proportional-Schriften ist z.B. für Listen notwendig, um Einträge exakt ausrichten zu können. Bei einer Nicht-Proportional-Schrift sind alle Zeichen gleich breit, wogegen bei einer Proportional-Schrift die einzelnen Buchstaben unterschiedliche Breiten haben.
|
Mit der Methode TextWidth ist dies recht einfach möglich in dem bei einer Schrift das breiteste Zeichen z.B. das große "W" oder "M" mit dem schmalsten Zeichen dem "i" oder dem "l" verglichen wird. Allerdings ist TextWidth nur bei einigen wenigen Steuerelementen wie z.B. der PictureBox oder dem Printer-Objekt möglich.
|
Wie dies universell mit einem kleinen Trick möglich ist, zeigt unser Tipp.
|
|
|
Option Explicit
Private Sub Form_Load()
Dim a As Integer
For a = 0 To Screen.FontCount - 1
List1.AddItem Screen.Fonts(a)
Next a
End Sub
Private Sub List1_Click()
Label1.FontName = List1.List(List1.ListIndex)
If IsProportionalFont() = True Then
Label2.ForeColor = &H8000&
Label2.Caption = "Ich bin eine Proportional-Schrift, " & _
"da meine Schrift Zeichen unterschiedliche Breiten haben."
Else
Label2.ForeColor = &HC0&
Label2.Caption = "Ich bin keine Proportional-Schrift, " & _
"da alle meine Zeichen die gleiche Breite haben."
End If
End Sub
Private Function IsProportionalFont() As Boolean
Dim lblWidth(2) As Integer
Picture1.FontName = Label1.FontName
lblWidth(0) = Picture1.TextWidth("W")
lblWidth(1) = Picture1.TextWidth("i")
If lblWidth(0) <> lblWidth(1) Then
IsProportionalFont = True
Else
IsProportionalFont = False
End If
End Function
|
|
|
|
|
Windows-Version |
95 |
|
|
98/SE |
|
|
ME |
|
|
NT |
|
|
2000 |
|
|
XP |
|
|
Vista |
|
|
Win
7 |
|
|
|
VB-Version |
VBA 5 |
|
|
VBA 6 |
|
|
VB 4/16 |
|
|
VB 4/32 |
|
|
VB 5 |
|
|
VB 6 |
|
|
|
|
Download (3
kB)
|
Downloads bisher: [ 789 ]
|
|
|