Falls einer von euch mal auf einem grafischen Display Zahlen darstellen muß und diese etwas "stylischer" aussehen sollen, stelle ich euch hier ein paar Möglichkeiten zur Auswahl.
Das "x" im Dateinamen gibt jeweils die ausgegebene Ziffer an. Die Zahlen z.B. 32x40 die Auflösung in Pixel.
Eingebunden und verwendet wird das so (im Beispiel wird eine 3-stellige Zahl in Einzelziffern zerlegt und die zugehörigen Bitmaps ausgegeben):
Const
BigNum : Array[0..11,1..(32*40 div 8) + 2] of Byte =
'Digi3-0_32x40.pbmp','Digi3-1_32x40.pbmp','Digi3-2_32x40.pbmp',
'Digi3-3_32x40.pbmp','Digi3-4_32x40.pbmp','Digi3-5_32x40.pbmp',
'Digi3-6_32x40.pbmp','Digi3-7_32x40.pbmp','Digi3-8_32x40.pbmp',
'Digi3-9_32x40.pbmp','Digi3--_32x40.pbmp','Digi3- _32x40.pbmp';
BigSign : Array[1..(8*40 div 8) + 2] of Byte = 'Digi3-Pt_8x40.pbmp'; //Dezimalpunkt
Procedure ShowNum(Value:Integer;Dot:Boolean);
Var Num : Array[0..2] of Integer;
Begin
gFillRect(0,0,127,39,0);
If Value in [0..999]
then
Num[0]:=Value div 100;
Num[1]:=(Value-(Num[0]*100)) div 10;
Num[2]:=Value-(Num[0]*100)-(Num[1]*10);
If Dot=true
then
gDrawBitMap( 8,0,@BigNum[Num[0],1],wmSetPix);
gDrawBitMap(44,0,@BigNum[Num[1],1],wmSetPix);
gDrawBitMap(88,0,@BigNum[Num[2],1],wmSetPix);
gDrawBitMap(78,-1,@BigSign,wmSetPix);
else
gDrawBitMap(10,0,@BigNum[Num[0],1],wmSetPix);
gDrawBitMap(48,0,@BigNum[Num[1],1],wmSetPix);
gDrawBitMap(86,0,@BigNum[Num[2],1],wmSetPix);
EndIf;
EndIf;
End ShowNum;
Gruss
Harry
Das "x" im Dateinamen gibt jeweils die ausgegebene Ziffer an. Die Zahlen z.B. 32x40 die Auflösung in Pixel.
Eingebunden und verwendet wird das so (im Beispiel wird eine 3-stellige Zahl in Einzelziffern zerlegt und die zugehörigen Bitmaps ausgegeben):
Code
Const
BigNum : Array[0..11,1..(32*40 div 8) + 2] of Byte =
'Digi3-0_32x40.pbmp','Digi3-1_32x40.pbmp','Digi3-2_32x40.pbmp',
'Digi3-3_32x40.pbmp','Digi3-4_32x40.pbmp','Digi3-5_32x40.pbmp',
'Digi3-6_32x40.pbmp','Digi3-7_32x40.pbmp','Digi3-8_32x40.pbmp',
'Digi3-9_32x40.pbmp','Digi3--_32x40.pbmp','Digi3- _32x40.pbmp';
BigSign : Array[1..(8*40 div 8) + 2] of Byte = 'Digi3-Pt_8x40.pbmp'; //Dezimalpunkt
Procedure ShowNum(Value:Integer;Dot:Boolean);
Var Num : Array[0..2] of Integer;
Begin
gFillRect(0,0,127,39,0);
If Value in [0..999]
then
Num[0]:=Value div 100;
Num[1]:=(Value-(Num[0]*100)) div 10;
Num[2]:=Value-(Num[0]*100)-(Num[1]*10);
If Dot=true
then
gDrawBitMap( 8,0,@BigNum[Num[0],1],wmSetPix);
gDrawBitMap(44,0,@BigNum[Num[1],1],wmSetPix);
gDrawBitMap(88,0,@BigNum[Num[2],1],wmSetPix);
gDrawBitMap(78,-1,@BigSign,wmSetPix);
else
gDrawBitMap(10,0,@BigNum[Num[0],1],wmSetPix);
gDrawBitMap(48,0,@BigNum[Num[1],1],wmSetPix);
gDrawBitMap(86,0,@BigNum[Num[2],1],wmSetPix);
EndIf;
EndIf;
End ShowNum;
Gruss
Harry
You must be logged in or your permissions are to low to see this Attachment(s).