' ** wandelt Hex-Zahl in Dez-Zahl Function HxDz (strHex) HxDz = CLng("&H" & strHex) End Function
' ** wandelt Dez-Zahl in 6-stellige Hex-Zahl Function DzHx (Dez) DzHx=right(Hex(Dez+&h1000000&),6) End Function
' ** wandelt Hex-Zahl in das korrespondierende ANSI-Zeichen Function HxAnsi (strHex) HxAnsi = Chr(CLng("&H" & strHex)) End Function
Function DezToBin (ByVal lngZahl) ' ** Dezimal nach Binaer umrechnen Dim bytRest Dim lngResultat Do lngResultat = lngZahl\2 bytRest = lngZahl Mod 2 lngZahl = lngResultat DezToBin = DezToBin & bytRest Loop While (lngResultat >=1) DezToBin = StrReverse(DezToBin) End Function
Function BinToDez(ByVal strBin) ' ** Binaer nach Dezimal umrechnen Dim bytBit Dim bytBas Dim intStrLen Dim dblZwischenres Dim n bytBas = 2 intStrLen = Len(strBin) For n = 0 To (intStrLen - 1) bytBit = Mid(strBin, intStrLen - n, 1) If bytBit <> 0 Then dblZwischenres = bytBit * (bytBas ^ n) BinToDez = BinToDez + dblZwischenres End If Next If BinToDez = "" then BinToDez = 0 End Function
Benötigt wird das z.B., wenn in einem zweiten Schritt einzelne Bits ausgewertet werden sollen.\\ ' ** Umwandlung Dezimalzahl zu 8-BIT-Binär-String Function DezBin8(byVal Dez) Dim x Dez = Abs(Dez) For x = 1 To 8 DezBin8 = (Dez mod 2) & DezBin8 Dez = Dez \ 2 Next End Function
' Rechnet Byte, je nach Wertgröße in Kilo- oder Megabytewert um, ' gibt das Ergebnis - auf zwei Dezimalstellen gerundet - mit der ' Einheit Byte, kB oder MB zurück Function ByteVorsatz (ByVal bytewert) If bytewert < 1024 then ByteVorsatz = bytewert & " Byte" If bytewert >= 1024 and bytewert < 1048576 Then ByteVorsatz = Round(bytewert / 1024, 2) & " kB" If bytewert >= 1048576 then ByteVorsatz = Round(bytewert / 1048576, 2) & " MB" End Function
Das Dialogsteuerelement Color liefert als Ergebnis den RGB-Wert ("000 000 000" bis "255 255 255").
Werden die RGB-Werte einzeln benötigt wie z.B. bei FF_ExtendCanvas, so splittet man diesen Wert.
RGB_Array = split(RGB) call FF_ExtendCanvas(left,right,top,bottom,RGB_Array(0),RGB_Array(1),RGB_Array(2))
Viele FF-Befehle wie z.B. FF_NewImage oder FF_MakeBanner benötigen zur Farbangabe den Referenzwert colorref (0 - 16777215).
call FF_NewImage(width,height,Farbreferenz(RGB)) ' ** Umwandlung RGB-Wert ("000 000 000" bis "255 255 255") zu Farbreferenz (0 - 16777215) Function Farbreferenz (RGB_Wert) Dim C_Array C_Array = split(RGB_Wert," ") Farbreferenz = C_Array(0) + C_Array(1) * (2^8) + C_Array(2) * (2^16) End Function
Den Referenzwert kann man zurück wandeln zum RGB-Wert\\ ' ** Farbreferenz (0 - 16777215) zu RGB-Wert ("000 000 000" bis "255 255 255") Function RGB_Farbwerte (Referenz) RGB_Farbwerte = Right(1000 + (Referenz and &HFF),3) & " " &_ Right(1000 + ((Referenz\256) mod 256),3) & " " & Right(1000 + (Referenz\&H10000),3) End Function
Entscheidend für die Umrechnung zwischen Längeneinheit zu Pixel ist die Punktdichte, die üblicherweise in Punkte pro Zoll - Dots per Inch (DPI) angegeben wird,.
Function mm_zu_px (Millimeter, Dpi) mm_zu_px = Millimeter * Dpi * 0.03937 End Function
Function px_zu_mm (Pixel, Dpi) px_zu_mm = Pixel / Dpi / 0.03937 End Function