|
|
|
|
|
Wenn ein String nicht in eine gegebene Breite hineinpasst,
können Sie das natürlich einfach ignorieren. Beim Ausdruck oder
bei der Anzeige wird er dann einfach radikal abgeschnitten
dargestellt. Etwas schöner sieht es jedoch aus, wenn nicht einfach
abgeschnitten wird, sondern durch Auslassungspunkte
("...") angezeigt wird, dass der Text eigentlich noch
länger ist.
Die Funktion CompactString prüft, ob ein String in eine gegebene
Breite passt. Ist dies nicht der Fall, wird er so lange verkürzt,
bis der verkürzte und wieder um "..." verlängerte String
passt.
Sie übergeben der Funktion den betreffenden String und die
gewünschte Breite. Dazu übergeben Sie ein Container-Objekt, das
über die TextWidth-
und die ScaleX-Methode
verfügt (Form, PictureBox , Printer, UserControl, PropertyPage,
UserDocument usw.). Lassen Sie die ScaleMode-Angabe im letzten,
optionalen Parameter weg, wird automatisch die aktuelle ScaleMode-Einstellung
- und damit die Maßeinheit - des übergebenen Container-Objekts
verwendet. Anderenfalls wird die Prüfung zwar anhand der aktuellen
ScaleMode-Einstellung vorgenommen, aber in die gewünschte
Maßeinheit umgerechnet.
Function CompactString( _
Str As String, _
ByVal Width As Single, _
ByVal Container As Object, _
Optional ByVal ScaleMode As Variant _
) As String
Dim nScaleMode As Integer
Dim nWidth As Single
Dim nStr As String
Dim i As Integer
With Container
If IsMissing(ScaleMode) Then
nWidth = .TextWidth(Str)
If nWidth <= Width Then
CompactString = Str
Exit Function
Else
i = Len(Str) - 1
Do
nStr = Left$(Str, i) & "..."
If .TextWidth(nStr) <= Width Then
CompactString = nStr
Exit Function
Else
i = i - 1
End If
Loop While i > 0
End If
Else
nScaleMode = CInt(ScaleMode)
nWidth = .ScaleX(.TextWidth(Str), , nScaleMode)
If nWidth <= Width Then
CompactString = Str
Exit Function
Else
i = Len(Str) - 1
Do
nStr = Left$(Str, i) & "..."
If .ScaleX(.TextWidth(Str), , nScaleMode) <= Width Then
CompactString = nStr
Exit Function
Else
i = i - 1
End If
Loop While i > 0
End If
End If
End With
End Function
 |
Die Funktion CompactString verkürzt einen
String so lange, bis er sich in einer vorgegebene Breite
darstellen lässt

|

|
|
|