Startseite > Tipps & Tricks > Wizhook-Objekt > TwipsFromFont
Team-Moeller.de - Datenbankentwicklung und mehr ...

TwipsFromFont

TwipsFromFont
Access-Versionen

Diese Funktion ist in folgenden Access-Versionen verfügbar: 2000, 2002, 2003, 2007, 2010

Funktion

Mit dieser Funktion ist es möglich, die Breite und Höhe eines bestimmten Textes mit bestimmten Textattributen zu ermitteln. Das Ergebnis wird in Twips angegeben.

Deklaration

Function TwipsFromFont(FontName As String, Size As Long, Weight As Long, Italic As Boolean, Underline As Boolean, Cch As Long, Caption As String, MaxWidthCch As Long, dx As Long, dy As Long) As Boolean

Argumente
FontName   Name des Zeichensatzes
Size   Schriftgröße in Punkten
Weight   Schriftbreite: 400 = Normal; 700 = Fett
weitere Werte finden sich in der OH zur FontWeight-Eigenschaft (Schriftbreite)
Italic   True = Kursiv; False = nicht kursiv
Underline   True = unterstrichen; False = nicht unterstrichen
Cch   Anzahl an Zeichen mit durchschnittlicher Breite
Caption   Text, für den die Maße bestimmt werden sollen
MaxWidthCch   Anzahl an Zeichen mit maximaler Breite
dx   Ermittelte Breite des Textes in Twips
dy   Ermittelte Höhe des Textes in Twips
Rückgabewert

True, wenn die Berechnung erfolgen konnte.
False, wenn bei der Berechnung Fehler aufgetreten sind.

Code-Beispiel
'Variablen deklarieren
Dim strCaption As String
Dim strFontName As String
Dim lngSGroesse As Long
Dim lngSBreite As Long
Dim fItalic As Boolean
Dim fUnderline As Boolean
Dim lngBreite As Long
Dim lngHoehe As Long

'Werte übernehmen
strCaption = "Dies ist ein Beispiel"
strFontName = "Arial"
lngSGroesse = 11
lngSBreite = 400
fItalic = False
fUnderline = False

Wizhook.Key = 51488399
If Wizhook.TwipsFromFont(strFontName, lngSGroesse, lngSBreite, fItalic, _
           fUnderline, 0, strCaption, 0, lngBreite, lngHoehe) = True Then
  MsgBox "Der genannte Text hat mit den gewählten" & vbCrLf & _
         "Schriftattributen folgende Ausmaße:" & vbCrLf & vbCrLf & _
         "Breite: " & lngBreite & vbCrLf & _
         "Höhe: " & lngHoehe
Else
  MsgBox "Berechnung fehlgeschlagen", vbExclamation
End If 
Hinweise

Im Normalfall wird der Text aus dem Parameter "Caption" für die Berechnung herangezogen.

Wenn für den Parameter "Cch" ein Wert ungleich 0 angegeben wird, wird der Text im Parameter "Caption" ignoriert. Stattdessen wird die Anzahl aus dem Parameter "Cch" als Zeichen mit durchschnittlicher Breite für die Berechnung berücksichtigt.

Der im Parameter "MaxWidthCch" angegebene Wert wird nur berücksichtigt, wenn der Parameter "Cch" einen Wert ungleich 0 hat. In diesem Fall wird die Anzahl aus dem Parameter "MaxWidthCch" als Zeichen mit maximaler Breite für die Berechnung berücksichtigt. Die Gesamtzahl der Zeichen steht in diesem Fall im Parameter "Cch". Es werden dann "Cch" - "MaxWidthCch" Zeichen mit durchschnittlicher Breite und "MaxWidthCch" Zeichen mit maximaler Breite berücksichtigt.
Wenn "MaxWidthCch" größer ist als "Cch", dann werden "Cch" Zeichen mit maximaler Breite berücksichtigt.

Man kann diese Funktion beispielsweise in folgenden Fällen einsetzen:

  • In einem Listenfeld soll eine Textzeile mit variablem Inhalt als Überschrift unterstrichen werden. Mit der Funktion kann die Anzahl der notwendigen Zeichen für die Unterstreichung ermittelt werden.
  • Ein Kombinationsfeld mit "unbekannten" Werten sollte so gestaltet werden, dass der längste Eintrag gerade noch vollständig sichtbar ist. Mit der Funktion kann die notwendige Listenbreite ermittelt werden.

Ergänzung vonm Olaf Morlock:

Soeben stellte ich fest, dass Wizhook-Objekt - TwipsFromFont entgegen der Dokumentation

  • dx   Ermittelte Breite des Textes in Twips
  • dy   Ermittelte Höhe des Textes in Twips

keine Long- sondern Integer-Werte liefert. (Textbreite 32880 liefert in dx den Wert -32656)

Das Problem löse ich so:

dx = CLng("&h0000" & Right(Hex(dx), 4))
dy = CLng("&h0000" & Right(Hex(dy), 4))

Damit habe ich immer noch keine Long-Werte aber die mögliche Länge (65535) zumindest verdoppelt.

Nach oben

 

Downloads: Beispieldatenbank / Hilfedatei / Doku als PDF-Datei

Microsoft MVP - Thomas Möller


27.03.2016:
TM VBA-Inspector:
Installationsroutine überarbeitet.


23.05.2014:
TM-RebuildDatabase
Version 1.75 bereitgestellt.


07.12.2014:
TM-DatenKlassenGenerator
Version 3.55 bereitgestellt.


21.11.2014:
TM-SmartTypes
Version 2.37.18 bereitgestellt.


Powered by CMSimple - Template by CMSimple-Styles.com - Autor:Thomas Möller