Access-o-Mania

Access-Forum (Deutsch/German) => Access-Hilfe => Thema gestartet von: Georg_ am Februar 21, 2017, 22:36:37

Titel: Umrechnung inch - mm - pt - twips einfach per Enumeration
Beitrag von: Georg_ am Februar 21, 2017, 22:36:37
Hallo,
in den letzten Tagen habe ich mir über die Größenanpassung von Formularen Gedanken gemacht. Die Umrechnung verschiedener Einheiten ineinander ist dabei immer wieder Thema.
Hier ist die Lösung, die ich dazu gefunden habe:
in einem Standardmodul - ob es Sinn macht, es in eine Klasse zu packen, habe ich nicht erwogen - wird eine Enumeration und eine Funktion definiert.
Public Enum eUnit
            einch = 10
            emm = 254
            ept = 720
            etwips = 14400
       End Enum

Function UnitConv(sngVal As Single, eFrom As eUnit, eTo As eUnit) As Single
    UnitConv = sngVal * CSng(eTo) / CSng(eFrom)
End Function


Die Konstanten der Enumeration habe ich auf die größte Einheit, das Inch, normiert, d.h. Inch ist 1, zumindest theoretisch. Da aber Enumerationskonstanten grundsätzlich als Long dimensioniert sind und 1 Inch 25,4 mm entsprechen, habe ich die Werte mit 10 multiplizieren müssen, woraus die etwas merkwürdig anmutende Numerierung (10, 254, 720, 14400 statt 1 Inch = 25,4 mm = 72 pt = 1440 twips) innerhalb der Definition resultiert.

Als Parameter der Funktion finden Eingang: