Thales Pontes Martins Postado Maio 19, 2009 Denunciar Share Postado Maio 19, 2009 (editado) Sabem aquele componente LCDNumber que só existia na biblioteca CLX, bom agora existe na VCL também.O componente LCDNumber é um componente visual que serve para mostrar datas, horas, temperaturas, etc...Programa exemplo -> Relógio despertadorListagem da unit do componente ULCDNumber.pas ->unit ULCDNumber; { Componente LCDNumber Autor: Thales Pontes Martins thalespo@gmail.com.br Dezembro de 2006 } interface uses SysUtils, Classes, Controls, ULCDData, Windows, Dialogs, Graphics, Forms, ExtCtrls; type TBevelShape = (bsSingle, bsBox, bsFrame, bsTopLine, bsBottomLine, bsLeftLine, bsRightLine, bsSpacer); TDrawProc = procedure(Canvas : TCanvas; var Temp : TTempDigit); TLCDNumber = class(TGraphicControl) private { Private declarations } //******Bevel***** FStyle: TBevelStyle; FShape: TBevelShape; //******Bevel***** _TempDigit : TTempDigit; _Value : string; _ValAspect, _SizeAspect, _TextHeight, _TextWidth : double; _LastChange : integer; _PenColor, _BrushColor, _Color : TColor; procedure SetStyle(Value: TBevelStyle); procedure SetShape(Value: TBevelShape); //******Bevel***** procedure UpdateTemp(Index : integer); procedure DrawDigit(index : integer; NewC, OldC: Char; DrawAll : boolean); //******Bevel***** protected { Protected declarations } procedure Paint; override; procedure SetValue(Val : String); procedure SetPenColor(Val : TColor); procedure SetBrushColor(Val : TColor); procedure SetColor(Val : TColor); public { Public declarations } constructor Create(AOwner : TComponent); override; destructor Destroy; override; published { Published declarations } property Value : string read _Value write SetValue; property PenColor : TColor read _PenColor write SetPenColor default 0; property BrushColor : TColor read _BrushColor write SetBrushColor default 0; property Color : TColor read _Color write SetColor default ClBtnFace; property Align; property Anchors; property Constraints; property ParentShowHint; property Shape: TBevelShape read FShape write SetShape default bsBox; property ShowHint; property Style: TBevelStyle read FStyle write SetStyle default bsLowered; property Visible; property Width; property Height; property AlignWithMargins; property Left; property Top; property Cursor; property Hint; property HelpType; property HelpKeyword; property HelpContext; property Margins; property OnClick; property OnDblClick; property OnMouseDown; property OnMouseUp; end; procedure DrawPol1(Canvas : TCanvas; var Temp : TTempDigit); procedure DrawPol2(Canvas : TCanvas; var Temp : TTempDigit); procedure DrawPol3(Canvas : TCanvas; var Temp : TTempDigit); procedure DrawPol4(Canvas : TCanvas; var Temp : TTempDigit); procedure DrawPol5(Canvas : TCanvas; var Temp : TTempDigit); procedure DrawPol6(Canvas : TCanvas; var Temp : TTempDigit); procedure DrawPol7(Canvas : TCanvas; var Temp : TTempDigit); procedure DrawPol8(Canvas : TCanvas; var Temp : TTempDigit); procedure DrawPol9(Canvas : TCanvas; var Temp : TTempDigit); procedure DrawPol10(Canvas : TCanvas; var Temp : TTempDigit); procedure DrawPol11(Canvas : TCanvas; var Temp : TTempDigit); procedure DrawPol12(Canvas : TCanvas; var Temp : TTempDigit); procedure DrawPol13(Canvas : TCanvas; var Temp : TTempDigit); procedure DrawPol14(Canvas : TCanvas; var Temp : TTempDigit); procedure DrawPol15(Canvas : TCanvas; var Temp : TTempDigit); procedure DrawPol16(Canvas : TCanvas; var Temp : TTempDigit); procedure DrawPol17(Canvas : TCanvas; var Temp : TTempDigit); procedure DrawPol18(Canvas : TCanvas; var Temp : TTempDigit); procedure DrawPol19(Canvas : TCanvas; var Temp : TTempDigit); procedure DrawPol20(Canvas : TCanvas; var Temp : TTempDigit); procedure DrawPol21(Canvas : TCanvas; var Temp : TTempDigit); procedure DrawPol22(Canvas : TCanvas; var Temp : TTempDigit); procedure DrawPol23(Canvas : TCanvas; var Temp : TTempDigit); procedure DrawPol24(Canvas : TCanvas; var Temp : TTempDigit); procedure DrawPol25(Canvas : TCanvas; var Temp : TTempDigit); procedure DrawPol26(Canvas : TCanvas; var Temp : TTempDigit); procedure DrawPol27(Canvas : TCanvas; var Temp : TTempDigit); procedure DrawPol28(Canvas : TCanvas; var Temp : TTempDigit); procedure DrawPol29(Canvas : TCanvas; var Temp : TTempDigit); procedure DrawPol30(Canvas : TCanvas; var Temp : TTempDigit); procedure DrawPol31(Canvas : TCanvas; var Temp : TTempDigit); procedure Register; implementation const CharOff = 127; CharHi = 227; CharAspect = 1.7874015748031496062992125984252; DrawPol : array [0..30] of TDrawProc = (DrawPol1,DrawPol2,DrawPol3,DrawPol4,DrawPol5,DrawPol6, DrawPol7,DrawPol8,DrawPol9,DrawPol10,DrawPol11,DrawPol12,DrawPol13,DrawPol14, DrawPol15,DrawPol16,DrawPol17,DrawPol18,DrawPol19,DrawPol20,DrawPol21, DrawPol22,DrawPol23,DrawPol24,DrawPol25,DrawPol26,DrawPol27,DrawPol28, DrawPol29,DrawPol30,DrawPol31); procedure Register; begin RegisterComponents('Samples', [TLCDNumber]); end; function RoundFloatPoint(pt : TFloatPoint) : TPoint; begin Result.X:=Round(pt.X); Result.Y:=Round(pt.Y); end; function RoundRect(rc : TFloatRect) : TRect; begin Result.Top:=Round(rc.Top); Result.Bottom:=Round(rc.Bottom); Result.Left:=Round(rc.Left); Result.Right:=Round(rc.Right); end; constructor TLCDNumber.Create(AOwner : TComponent); begin inherited Create(AOwner); //**********Bevel******** ControlStyle := ControlStyle + [csReplicatable]; FStyle := bsLowered; FShape := bsBox; Width := 50; Height := 50; //**********Bevel******** _LastChange:=0; _Color:=ClBtnFace; Width:=127; Height:=227; _TempDigit.Master:=Self; Canvas.Pen.Width:=1; Canvas.Pen.Color:=0; Canvas.Brush.Color:=0; end; procedure TLCDNumber.UpdateTemp(Index : integer); var i : integer; begin _ValAspect:=length(_Value)/CharAspect; _SizeAspect:=Width/Height; if (_ValAspect < _SizeAspect) then begin _TextWidth:=Height/CharAspect; for I := Low(LCData) to High(LCData) do begin if ((i mod 2) = 0){That is X} then TTempData(_TempDigit)[i]:=Round(( ((LCData[i]+(CharOff*(Index-1)))/CharOff)*_TextWidth)+ ((width-((height/CharAspect)*length(_Value)))/2)) else {That is Y} TTempData(_TempDigit)[i]:=Round( (LCData[i]/CharHi)*Height); end; end else begin _TextHeight:=Width/_ValAspect; for I := Low(LCData) to High(LCData) do begin if ((i mod 2) = 0){That is X} then TTempData(_TempDigit)[i]:=Round( ((LCData[i]+(CharOff*(Index-1)))/CharOff)*(Width/length(_Value))) else {That is Y} TTempData(_TempDigit)[i]:=Round(( (LCData[i]/CharHi)*_TextHeight)+((Height-_TextHeight)/2)); end; end; end; destructor TLCDNumber.Destroy; begin inherited Destroy; end; procedure TLCDNumber.Paint; //*****Bevel***** const XorColor = $00FFD8CE; var Color1, Color2: TColor; Temp: TColor; //*****Bevel***** i : integer; //*****Bevel***** procedure BevelRect(const R: TRect); begin with Canvas do begin Pen.Color := Color1; PolyLine([Point(R.Left, R.Bottom), Point(R.Left, R.Top), Point(R.Right, R.Top)]); Pen.Color := Color2; PolyLine([Point(R.Right, R.Top), Point(R.Right, R.Bottom), Point(R.Left, R.Bottom)]); end; end; procedure BevelLine(C: TColor; X1, Y1, X2, Y2: Integer); begin with Canvas do begin Pen.Color := C; MoveTo(X1, Y1); LineTo(X2, Y2); end; end; //*****Bevel***** begin if (_Color <> (Parent as TForm).Color) then begin Canvas.Brush.Color:=_Color; Canvas.Pen.Color:=_Color; Canvas.Rectangle(0,0,Width-1,Height-1); Canvas.Brush.Color:=_BrushColor; Canvas.Pen.Color:=_PenColor; end; //*****Bevel***** with Canvas do begin if (csDesigning in ComponentState) then begin if (FShape = bsSpacer) then begin Pen.Style := psDot; Pen.Mode := pmXor; Pen.Color := XorColor; Brush.Style := bsClear; Rectangle(0, 0, ClientWidth, ClientHeight); Exit; end else begin Pen.Style := psSolid; Pen.Mode := pmCopy; Pen.Color := clBlack; Brush.Style := bsSolid; end; end; Pen.Width := 1; if (FShape = bsSingle) then begin Brush.Color:=0; Pen.Color:=0; end else if FStyle = bsLowered then begin Color1 := clBtnShadow; Color2 := clBtnHighlight; end else begin Color1 := clBtnHighlight; Color2 := clBtnShadow; end; case FShape of bsBox: BevelRect(Rect(0, 0, Width - 1, Height - 1)); bsFrame: begin Temp := Color1; Color1 := Color2; BevelRect(Rect(1, 1, Width - 1, Height - 1)); Color2 := Temp; Color1 := Temp; BevelRect(Rect(0, 0, Width - 2, Height - 2)); end; bsTopLine: begin BevelLine(Color1, 0, 0, Width, 0); BevelLine(Color2, 0, 1, Width, 1); end; bsBottomLine: begin BevelLine(Color1, 0, Height - 2, Width, Height - 2); BevelLine(Color2, 0, Height - 1, Width, Height - 1); end; bsLeftLine: begin BevelLine(Color1, 0, 0, 0, Height); BevelLine(Color2, 1, 0, 1, Height); end; bsRightLine: begin BevelLine(Color1, Width - 2, 0, Width - 2, Height); BevelLine(Color2, Width - 1, 0, Width - 1, Height); end; bsSingle: begin Canvas.MoveTo(0,0); Canvas.LineTo(width-1,0); Canvas.LineTo(width-1,height-1); Canvas.LineTo(0,height-1); Canvas.LineTo(0,0); end; end; end; //*****Bevel***** Canvas.Pen.Color:=_PenColor; Canvas.Brush.Color:=_BrushColor; UpdateTemp(1); for I := 1 to length(_Value) do DrawDigit(i,_Value[i],#0,true); end; procedure TLCDNumber.DrawDigit(index : integer; NewC, OldC: Char; DrawAll : boolean); var Old, New : Cardinal; i : integer; begin if (index <> _LastChange) then UpdateTemp(index); Old:=GetCharInf(OldC); New:=GetCharInf(NewC); if DrawAll then begin for I := 0 to 30 do if GetBit(i,New) then DrawPol[i](Canvas,_TempDigit) end else begin Canvas.Brush.Color:=_Color; Canvas.Pen.Color:=_Color; for I := 0 to 30 do begin if not(GetBit(i,New)) then if GetBit(i,Old) then DrawPol[i](Canvas,_TempDigit); end; Canvas.Brush.Color:=BrushColor; Canvas.Pen.Color:=PenColor; for I := 0 to 30 do begin if (OldC in ['0'..'9']) then begin if GetBit(i,New) then if not(GetBit(i,Old)) then DrawPol[i](Canvas,_TempDigit); end else begin if GetBit(i,New) then DrawPol[i](Canvas,_TempDigit); end; end; end; _LastChange:=index; end; procedure TLCDNumber.SetValue(Val: string); var i : integer; begin if (Val <> _Value) then begin if not(Visible) then begin _Value:=Val; Exit; end; if (length(Val) <> length(_Value)) then begin _Value:=Val; Invalidate; end else begin for I := 1 to length(Val) do begin if (Val[i] <> _Value[i]) then DrawDigit(i,Val[i],_Value[i],false); end; _Value:=Val; end; end; end; procedure TLCDNumber.SetPenColor(Val: TColor); begin if (_PenColor <> Val) then begin _PenColor:=Val; Canvas.Pen.Color:=Val; Invalidate; end; end; procedure TLCDNumber.SetBrushColor(Val: TColor); begin if (_BrushColor <> Val) then begin _BrushColor:=Val; Canvas.Brush.Color:=Val; Invalidate; end; end; procedure TLCDNumber.SetColor(Val: TColor); begin if (Val <> _Color) then begin _Color:=Val; Invalidate; end; end; //******Bevel****** procedure TLCDNumber.SetStyle(Value: TBevelStyle); begin if Value <> FStyle then begin FStyle := Value; Invalidate; end; end; procedure TLCDNumber.SetShape(Value: TBevelShape); begin if Value <> FShape then begin FShape := Value; Invalidate; end; end; //******Bevel****** procedure DrawPol1(Canvas : TCanvas; var Temp : TTempDigit); begin Canvas.Polygon(Temp.Pol1); end; procedure DrawPol2(Canvas : TCanvas; var Temp : TTempDigit); begin Canvas.Polygon(Temp.Pol2); end; procedure DrawPol3(Canvas : TCanvas; var Temp : TTempDigit); begin Canvas.Polygon(Temp.Pol3); end; procedure DrawPol4(Canvas : TCanvas; var Temp : TTempDigit); begin Canvas.Polygon(Temp.Pol4); end; procedure DrawPol5(Canvas : TCanvas; var Temp : TTempDigit); begin Canvas.Polygon(Temp.Pol5); end; procedure DrawPol6(Canvas : TCanvas; var Temp : TTempDigit); begin Canvas.Polygon(Temp.Pol6); end; procedure DrawPol7(Canvas : TCanvas; var Temp : TTempDigit); begin Canvas.Polygon(Temp.Pol7); end; procedure DrawPol8(Canvas : TCanvas; var Temp : TTempDigit); begin Canvas.Polygon(Temp.Pol8); end; procedure DrawPol9(Canvas : TCanvas; var Temp : TTempDigit); begin Canvas.Polygon(Temp.Pol9); end; procedure DrawPol10(Canvas : TCanvas; var Temp : TTempDigit); begin Canvas.Polygon(Temp.K); end; procedure DrawPol11(Canvas : TCanvas; var Temp : TTempDigit); begin Canvas.Polygon(Temp.Asterix); end; procedure DrawPol12(Canvas : TCanvas; var Temp : TTempDigit); begin Canvas.Polygon(Temp.OpenBrace); end; procedure DrawPol13(Canvas : TCanvas; var Temp : TTempDigit); begin Canvas.Polygon(Temp.CloseBrace); end; procedure DrawPol14(Canvas : TCanvas; var Temp : TTempDigit); begin Canvas.Polygon(Temp.OpenBrackets); end; procedure DrawPol15(Canvas : TCanvas; var Temp : TTempDigit); begin Canvas.Polygon(Temp.CloseBrackets); end; procedure DrawPol16(Canvas : TCanvas; var Temp : TTempDigit); begin Canvas.Polygon(Temp.Bigger); end; procedure DrawPol17(Canvas : TCanvas; var Temp : TTempDigit); begin Canvas.Polygon(Temp.Smaller); end; procedure DrawPol18(Canvas : TCanvas; var Temp : TTempDigit); begin Canvas.Polygon(Temp.EqualUp); end; procedure DrawPol19(Canvas : TCanvas; var Temp : TTempDigit); begin Canvas.Polygon(Temp.EqualDown); end; procedure DrawPol20(Canvas : TCanvas; var Temp : TTempDigit); begin Canvas.Polygon(Temp.OpenParentesis); end; procedure DrawPol21(Canvas : TCanvas; var Temp : TTempDigit); begin Canvas.Polygon(Temp.CloseParentesis); end; procedure DrawPol22(Canvas : TCanvas; var Temp : TTempDigit); begin Canvas.Polygon(Temp.Plus); end; procedure DrawPol23(Canvas : TCanvas; var Temp : TTempDigit); begin Canvas.Polygon(Temp.Slash); end; procedure DrawPol24(Canvas : TCanvas; var Temp : TTempDigit); begin Canvas.Polygon(Temp.BackSlash); end; procedure DrawPol25(Canvas : TCanvas; var Temp : TTempDigit); begin Canvas.Ellipse(Temp.PercentUp); end; procedure DrawPol26(Canvas : TCanvas; var Temp : TTempDigit); begin Canvas.Ellipse(Temp.PercentDown); end; procedure DrawPol27(Canvas : TCanvas; var Temp : TTempDigit); begin Canvas.Polygon(Temp.CommaTail); Canvas.Ellipse(Temp.CommaCircle); end; procedure DrawPol28(Canvas : TCanvas; var Temp : TTempDigit); begin Canvas.Ellipse(Temp.Dot); end; procedure DrawPol29(Canvas : TCanvas; var Temp : TTempDigit); begin Canvas.Ellipse(Temp.ColonSup); end; procedure DrawPol30(Canvas : TCanvas; var Temp : TTempDigit); begin Canvas.Ellipse(Temp.ColonInf); end; procedure DrawPol31(Canvas : TCanvas; var Temp : TTempDigit); begin Canvas.Pen.Width:=round(((Temp.Pol7[8].Y-Temp.Pol1[8].Y)/100)*10); if Canvas.Pen.Width < 1 then Canvas.Pen.Width:=1; Canvas.Brush.Color:=(Temp.Master as TLCDNumber).Color; Canvas.Ellipse(Temp.Degree); Canvas.Pen.Width:=1; Canvas.Brush.Color:=(Temp.Master as TLCDNumber).BrushColor; end; end. Listagem da Unit ULCDData.pas -> unit ULCDData; interface uses Types; type TFloatPoint = packed record X : double; Y : double; end; TFloatRect = packed record Top : double; Bottom : double; Left : double; Right : double; end; TTempData = array [0..576] of LongInt; TLCData = array [0..575] of double; PLCDDigit = ^TLCDDigit; TLCDDigit = packed record Pol1 : array [1..12] of TFloatPoint; Pol2 : array [1..6] of TFloatPoint; Pol3 : array [1..13] of TFloatPoint; Pol4 : array [1..7] of TFloatPoint; Pol5 : array [1..6] of TFloatPoint; Pol6 : array [1..13] of TFloatPoint; Pol7 : array [1..12] of TFloatPoint; Pol8 : array [1..5] of TFloatPoint; Pol9 : array [1..5] of TFloatPoint; K : array [1..11] of TFloatPoint; Asterix : array [1..19] of TFloatPoint; OpenBrace : array [1..27] of TFloatPoint; CloseBrace : array [1..27] of TFloatPoint; OpenBrackets : array [1..9] of TFloatPoint; CloseBrackets : array [1..9] of TFloatPoint; Bigger : array [1..7] of TFloatPoint; Smaller : array [1..7] of TFloatPoint; EqualUp : array [1..5] of TFloatPoint; EqualDown : array [1..5] of TFloatPoint; OpenParentesis : array [1..15] of TFloatPoint; CloseParentesis : array [1..15] of TFloatPoint; Plus : array [1..13] of TFloatPoint; CommaTail : array[1..12] of TFloatPoint; Slash : array[1..7] of TFloatPoint; BackSlash : array[1..7] of TFloatPoint; PercentUp : TFloatRect; PercentDown : TFloatRect; CommaCircle : TFloatRect; Dot : TFloatRect; ColonSup : TFloatRect; ColonInf : TFloatRect; Degree : TFloatRect; end; TTempDigit = packed record Pol1 : array [1..12] of TPoint; Pol2 : array [1..6] of TPoint; Pol3 : array [1..13] of TPoint; Pol4 : array [1..7] of TPoint; Pol5 : array [1..6] of TPoint; Pol6 : array [1..13] of TPoint; Pol7 : array [1..12] of TPoint; Pol8 : array [1..5] of TPoint; Pol9 : array [1..5] of TPoint; K : array [1..11] of TPoint; Asterix : array [1..19] of TPoint; OpenBrace : array [1..27] of TPoint; CloseBrace : array [1..27] of TPoint; OpenBrackets : array [1..9] of TPoint; CloseBrackets : array [1..9] of TPoint; Bigger : array [1..7] of TPoint; Smaller : array [1..7] of TPoint; EqualUp : array [1..5] of TPoint; EqualDown : array [1..5] of TPoint; OpenParentesis : array [1..15] of TPoint; CloseParentesis : array [1..15] of TPoint; Plus : array [1..13] of TPoint; CommaTail : array[1..12] of TPoint; Slash : array[1..7] of TPoint; BackSlash : array[1..7] of TPoint; PercentUp : TRect; PercentDown : TRect; CommaCircle : TRect; Dot : TRect; ColonSup : TRect; ColonInf : TRect; Degree : TRect; Master : TObject; end; const Glyphs : array [#32..#255] of Cardinal =( $00000000,// Dec = 32 $00000000,// ! Dec = 33 $00000006,// " Dec = 34 $00000000,// # Dec = 35 $000001EB,// $ Dec = 36 $03400000,// % Dec = 37 $00000000,// & Dec = 38 $40000000,// ' Dec = 39 $00080000,// ( Dec = 40 $00100000,// ) Dec = 41 $00000400,// * Dec = 42 $00200000,// + Dec = 43 $04000000,// , Dec = 44 $00000008,// - Dec = 45 $08000000,// . Dec = 46 $00400000,// / Dec = 47 $00000077,// 0 Dec = 48 $00000024,// 1 Dec = 49 $0000005D,// 2 Dec = 50 $0000006D,// 3 Dec = 51 $0000002E,// 4 Dec = 52 $0000006B,// 5 Dec = 53 $0000007B,// 6 Dec = 54 $00000025,// 7 Dec = 55 $0000007F,// 8 Dec = 56 $0000006F,// 9 Dec = 57 $30000000,// : Dec = 58 $00000000,// ; Dec = 59 $00010000,// < Dec = 60 $00060000,// = Dec = 61 $00008000,// > Dec = 62 $00000000,// ? Dec = 63 $00000000,// @ Dec = 64 $0000003F,// A Dec = 65 $0000007A,// B Dec = 66 $00000053,// C Dec = 67 $0000007C,// D Dec = 68 $0000005B,// E Dec = 69 $0000001B,// F Dec = 70 $0000007B,// G Dec = 71 $0000003E,// H Dec = 72 $000001C1,// I Dec = 73 $00000064,// J Dec = 74 $00000212,// K Dec = 75 $00000052,// L Dec = 76 $000000B7,// M Dec = 77 $00800036,// N Dec = 78 $00000077,// O Dec = 79 $0000001F,// P Dec = 80 $00000177,// Q Dec = 81 $00000213,// R Dec = 82 $0000006B,// S Dec = 83 $00000181,// T Dec = 84 $00000076,// U Dec = 85 $00000106,// V Dec = 86 $00000176,// W Dec = 87 $00C00000,// X Dec = 88 $0000006E,// Y Dec = 89 $0020005D,// Z Dec = 90 $00002000,// [ Dec = 91 $00800000,// \ Dec = 92 $00004000,// ] Dec = 93 $00000000,// ^ Dec = 94 $00000040,// _ Dec = 95 $40000000,// ` Dec = 96 $0000007D,// a Dec = 97 $0000007A,// b Dec = 98 $00000058,// c Dec = 99 $0000007C,// d Dec = 100 $0000005F,// e Dec = 101 $0000001B,// f Dec = 102 $0000006F,// g Dec = 103 $0000003A,// h Dec = 104 $10000100,// i Dec = 105 $00000064,// j Dec = 106 $00000212,// k Dec = 107 $00000024,// l Dec = 108 $00000138,// m Dec = 109 $00000038,// n Dec = 110 $00000078,// o Dec = 111 $0000001F,// p Dec = 112 $0000002F,// q Dec = 113 $00000018,// r Dec = 114 $0000006B,// s Dec = 115 $00000108,// t Dec = 116 $00000070,// u Dec = 117 $00000070,// v Dec = 118 $00000170,// w Dec = 119 $00C00000,// x Dec = 120 $0000006E,// y Dec = 121 $0020005D,// z Dec = 122 $00000800,// { Dec = 123 $00000180,// | Dec = 124 $00001000,// } Dec = 125 $00000000,// ~ Dec = 126 $00000000,// Dec = 127 $00000153,// € Dec = 128 $00000000,// Dec = 129 $00000000,// ‚ Dec = 130 $00000000,// ƒ Dec = 131 $00000000,// „ Dec = 132 $00000000,// … Dec = 133 $00000000,// † Dec = 134 $20000058,// ‡ Dec = 135 $00000000,// ˆ Dec = 136 $00000000,// ‰ Dec = 137 $00000000,// Š Dec = 138 $00000000,// ‹ Dec = 139 $00000000,// Œ Dec = 140 $00000000,// Dec = 141 $00000000,// Ž Dec = 142 $00000000,// Dec = 143 $00000000,// Dec = 144 $00000000,// ‘ Dec = 145 $00000000,// ’ Dec = 146 $00000000,// “ Dec = 147 $00000000,// ” Dec = 148 $00000000,// • Dec = 149 $00000000,// – Dec = 150 $00000000,// — Dec = 151 $00000000,// ˜ Dec = 152 $00000000,// ™ Dec = 153 $00000000,// š Dec = 154 $000001D3,// › Dec = 155 $00000000,// œ Dec = 156 $00000000,// Dec = 157 $00000000,// ž Dec = 158 $00000000,// Ÿ Dec = 159 $00000000,// Dec = 160 $00000000,// ¡ Dec = 161 $00000000,// ¢ Dec = 162 $00000000,// £ Dec = 163 $00000000,// ¤ Dec = 164 $00000000,// ¥ Dec = 165 $00000000,// ¦ Dec = 166 $00000000,// § Dec = 167 $00000000,// ¨ Dec = 168 $00000000,// © Dec = 169 $00000000,// ª Dec = 170 $00000000,// « Dec = 171 $00000000,// ¬ Dec = 172 $00000000,// Dec = 173 $00000000,// ® Dec = 174 $00000000,// ¯ Dec = 175 $00000000,// ° Dec = 176 $00000000,// ± Dec = 177 $00000000,// ² Dec = 178 $00000000,// ³ Dec = 179 $00000000,// ´ Dec = 180 $00000000,// µ Dec = 181 $00000000,// ¶ Dec = 182 $00000000,// · Dec = 183 $00000000,// ¸ Dec = 184 $00000000,// ¹ Dec = 185 $00000000,// º Dec = 186 $00000000,// » Dec = 187 $00000000,// ¼ Dec = 188 $00000000,// ½ Dec = 189 $00000000,// ¾ Dec = 190 $00000000,// ¿ Dec = 191 $00000000,// À Dec = 192 $00000000,// Á Dec = 193 $00000000,//  Dec = 194 $00000000,// à Dec = 195 $00000000,// Ä Dec = 196 $00000000,// Å Dec = 197 $00000000,// Æ Dec = 198 $00000000,// Ç Dec = 199 $00000000,// È Dec = 200 $00000000,// É Dec = 201 $00000000,// Ê Dec = 202 $00000000,// Ë Dec = 203 $00000000,// Ì Dec = 204 $00000000,// Í Dec = 205 $00000000,// Î Dec = 206 $00000000,// Ï Dec = 207 $00000000,// Ð Dec = 208 $00000000,// não Dec = 209 $00000000,// Ò Dec = 210 $00000000,// Ó Dec = 211 $00000000,// Ô Dec = 212 $00000000,// Õ Dec = 213 $00000000,// Ö Dec = 214 $00000000,// × Dec = 215 $00000000,// Ø Dec = 216 $00000000,// Ù Dec = 217 $00000000,// Ú Dec = 218 $000001FF,// Û Dec = 219 $00000178,// Ü Dec = 220 $00000192,// Ý Dec = 221 $000001A4,// Þ Dec = 222 $0000008F,// ß Dec = 223 $00000000,// à Dec = 224 $00000000,// á Dec = 225 $00000017,// â Dec = 226 $00000000,// ã Dec = 227 $00000000,// ä Dec = 228 $00000000,// å Dec = 229 $00000000,// æ Dec = 230 $00000000,// ç Dec = 231 $00000000,// è Dec = 232 $00000000,// é Dec = 233 $00000000,// ê Dec = 234 $00000000,// ë Dec = 235 $00000000,// ì Dec = 236 $00000000,// í Dec = 237 $00000000,// î Dec = 238 $00000000,// ï Dec = 239 $00000049,// ð Dec = 240 $00000000,// não Dec = 241 $00008040,// ò Dec = 242 $00010040,// ó Dec = 243 $00000000,// ô Dec = 244 $00000000,// õ Dec = 245 $30000008,// ö Dec = 246 $00000000,// ÷ Dec = 247 $40000000,// ø Dec = 248 $20000000,// ù Dec = 249 $10000000,// ú Dec = 250 $00000000,// û Dec = 251 $00000007,// ü Dec = 252 $00000000,// ý Dec = 253 $00000100,// þ Dec = 254 $7FFFFFFF);// ÿ Dec = 255 LCData : TLCData = //polygon1 (13.5000, 24.9115, 13.7656, 22.9833, 14.3831, 20.3263, 15.2475, 18.5653, 16.8528, 16.5880, 18.5507, 15.2741, 20.5264, 13.9619, 23.2739, 13.5000, 102.0885, 13.5000, 86.5000, 40.5000, 40.5000, 40.5000, 13.5000, 24.9115, //Polygon2 13.5000,109.1324, 20.1000,113.5000, 40.5000,100.0000, 40.5000,40.5000, 13.5000,24.9115, 13.5000,109.1324, //Polygon3 106.9000, 113.5000, 113.5000, 109.1324, 113.5000, 23.2739, 113.0381, 20.5264, 111.9259, 18.5507, 110.4120, 16.8528, 108.4347, 15.2475, 106.6737, 14.3831, 104.0167, 13.7656, 102.0885, 13.5000, 86.5000, 40.5000, 86.5000, 100.0000, 106.9000, 113.5000, //polygon4 20.1000, 113.5000, 40.5000, 127.0000, 86.5000, 127.0000, 106.9000, 113.5000, 86.5000, 100.0000, 40.5000, 100.0000, 20.1000, 113.5000, //Polygon5 13.5000, 202.0885, 40.5000, 186.5000, 40.5000, 127.0000, 20.1000, 113.5000, 13.5000, 117.8676, 13.5000, 202.0885, //Polygon6 102.0885, 213.5000, 104.0167, 213.2344, 106.6737, 212.6169, 108.4347, 211.7525, 110.4120, 210.1472, 111.9259, 208.4493, 113.0381, 206.4736, 113.5000, 203.7261, 113.5000, 117.8676, 106.9000, 113.5000, 86.5000, 127.0000, 86.5000, 186.5000, 102.0885, 213.5000, //polygon7 13.5000, 202.0885, 13.7656, 204.0167, 14.3831, 206.6737, 15.2475, 208.4347, 16.8528, 210.4120, 18.5507, 211.9259, 20.5264, 213.0381, 23.2739, 213.5000, 102.0885, 213.5000, 86.5000, 186.5000, 40.5000, 186.5000, 13.5000, 202.0885, // Polygon8 52.0000, 100.0000, 75.0000, 100.0000, 75.0000, 40.5000, 52.0000, 40.5000, 52.0000, 100.0000, // Polygon9 52.0000, 186.5000, 75.0000, 186.5000, 75.0000, 127.0000, 52.0000, 127.0000, 52.0000, 186.5000, // K 113.5000, 199.3520, 86.5000, 186.5000, 40.5000, 127.0000, 20.1000, 113.5000, 40.5000, 100.0000, 86.5000, 40.5000 , 113.5000, 27.6480 , 107.8607, 57.0142 , 64.1910, 113.5000, 107.8607, 169.9858, 113.5000, 199.3520, // asterix 53.5000, 177.3549, 53.5000, 132.2788, 13.5000, 159.1860, 13.5000, 135.0821, 45.5837, 113.5000, 13.5000, 91.9179 , 13.5000, 67.8140 , 53.5000, 94.7212 , 53.5000, 49.6451 , 73.5000, 49.6451 , 73.5000, 94.7212 , 113.5000, 67.8140 , 113.5000, 91.9179 , 81.4163, 113.5000, 113.5000, 135.0821, 113.5000, 159.1860, 73.5000, 132.2788, 73.5000, 177.3549, 53.5000, 177.3549, // OpenBrace 105.8364, 213.5000, 94.6545, 213.5000, 73.2641, 208.6574, 55.3507, 195.8722, 45.1697, 177.4824, 45.1697, 127.0000, 21.1636, 113.5000, 45.1697, 100.0000, 45.1697, 49.5176 , 55.3507, 31.1278 , 73.2641, 18.3426 , 94.6545, 13.5000 , 105.8364, 13.5000 , 105.8364, 40.1668 , 99.1444, 40.1668 , 84.5260, 43.4763 , 76.0116, 49.5533 , 72.1697, 56.4927 , 72.1697, 100.0000, 53.5849, 113.5000, 72.1697, 127.0000, 72.1697, 170.5073, 76.0116, 177.4467, 84.5260, 183.5237, 99.1444, 186.8332, 105.8364, 186.8332, 105.8364, 213.5000, // CIoseBrace 21.1636, 213.5000, 32.3455, 213.5000, 53.7359, 208.6574, 71.6493, 195.8722, 81.8303, 177.4824, 81.8303, 127.0000, 105.8364, 113.5000, 81.8303, 100.0000, 81.8303, 49.5176 , 71.6493, 31.1278 , 53.7359, 18.3426 , 32.3455, 13.5000 , 21.1636, 13.5000 , 21.1636, 40.1668 , 27.8556, 40.1668 , 42.4740, 43.4763 , 50.9884, 49.5533 , 54.8303, 56.4927 , 54.8303, 100.0000, 73.4151, 113.5000, 54.8303, 127.0000, 54.8303, 170.5073, 50.9884, 177.4467, 42.4740, 183.5237, 27.8556, 186.8332, 21.1636, 186.8332, 21.1636, 213.5000, // OpenBrackets 95.9223, 213.5000, 31.0777, 213.5000, 31.0777, 13.5000 , 95.9223, 13.5000 , 95.9223, 40.5000 , 58.0777, 40.5000 , 58.0777, 186.5000, 95.9223, 186.5000, 95.9223, 213.5000, // CIoseBrackets 31.0777, 213.5000, 95.9223, 213.5000, 95.9223, 13.5000 , 31.0777, 13.5000 , 31.0777, 40.5000 , 68.9223, 40.5000 , 68.9223, 186.5000, 31.0777, 186.5000, 31.0777, 213.5000, // Bigger 13.5000, 176.8454, 113.5000, 113.5000, 13.5000, 50.1546 , 13.5000, 82.1158 , 63.0445, 113.5000, 13.5000, 144.8842, 13.5000, 176.8454, // Smaller 113.5000, 176.8454, 13.5000, 113.5000, 113.5000, 50.1546 , 113.5000, 82.1158 , 63.9555, 113.5000, 113.5000, 144.8842, 113.5000, 176.8454, // Equal Up 13.5000, 100.0000, 113.5000, 100.0000, 113.5000, 73.0000 , 13.5000, 73.0000 , 13.5000, 100.0000, // Equal Down 13.5000, 127.0000, 13.5000, 154.0000, 113.5000, 154.0000, 113.5000, 127.0000, 13.5000, 127.0000, // OpenParentesis 71.6250, 213.5000, 53.4821, 183.8127, 40.6806, 150.2537, 37.2647, 113.5000, 40.6806, 76.7463 , 53.4821, 43.1873 , 71.6250, 13.5000 , 105.3750, 13.5000 , 81.3439, 50.1889 , 67.6233, 82.4253 , 64.7353, 113.5000, 67.6233, 144.5747, 81.3439, 176.8111, 105.3750, 213.5000, 71.6250, 213.5000, // CIoseParentesis 21.6250, 213.5000, 55.3750, 213.5000, 73.5179, 183.8127, 86.3194, 150.2537, 89.7353, 113.5000, 86.3194, 76.7463 , 73.5179, 43.1873 , 55.3750, 13.5000 , 21.6250, 13.5000 , 45.6561, 50.1889 , 59.3767, 82.4253 , 62.2647, 113.5000, 59.3767, 144.5747, 45.6561, 176.8111, 21.6250, 213.5000, // Plus 50.0000, 163.5000, 50.0000, 127.0000, 13.5000, 127.0000, 13.5000, 100.0000, 50.0000, 100.0000, 50.0000, 63.5000 , 77.0000, 63.5000 , 77.0000, 100.0000, 113.5000, 100.0000, 113.5000, 127.0000, 77.0000, 127.0000, 77.0000, 163.5000, 50.0000, 163.5000, //CommaTail: 27.6453, 177.1241, 53.9998, 173.0648, 53.9282, 187.9864, 50.5732, 197.7387, 45.4899, 205.5609, 37.7633, 211.6561, 24.9372, 216.9098, 28.1051, 210.2339, 30.2400, 203.0212, 31.3584, 195.7070, 31.3584, 188.6975, 27.6453, 177.1241, // Slash 13.5000, 213.5000, 28.5935, 213.5000, 113.5000, 43.6869, 113.5000, 13.5000, 98.4065, 13.5000, 13.5000, 183.3131, 13.5000, 213.5000, // BackSlash 98.4065, 213.5000, 113.5000, 213.5000, 113.5000, 183.3131, 28.5935,13.5000, 13.5000, 13.5000, 13.5000, 43.6869, 98.4065, 213.5000, // Percent // PercentUp // Lel 13.5000, 28.5000 , 53.5000, 68.5000 , // PercentDown 73.5000, 158.5000, 113.5000, 198.5000, //Comma //CircleRec: //Ieft: 27.0000, //top: 159.5000, //right: 54.0000, //bottom: 186.5000, //dot: //CircleRec: //Ieft: 27.0000, //top: 186.5000, //right 54.0000, //bottom: 213.5000, //superiorCircleRec: //Ieft: 50.0000, //top: 56.7500, //right: 77.0000, //bottom: 83.7500, //colon: //inferiorCircleRec: //Ieft: 50.0000, //top: 143.2500, //right: 77.0000, //bottom: 170.2500, // Degree // Left 23.5000, // Top 23.5000, // Right 95.0000, // Bottom 95.0000); function GetBit(index: integer; val : Cardinal) : Boolean; function GetCharInf(ch : char) : Cardinal; implementation function GetBit(index: integer; val : Cardinal) : Boolean; begin Result:=((val and (1 shl index)) <> 0); end; function GetCharInf(ch : char) : Cardinal; begin if (ch in [#32..#255]) then result:=Glyphs[ch] else result:=$00000000; end; end. Editado Maio 21, 2009 por Thales Pontes Martins Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Thales Pontes Martins
Sabem aquele componente LCDNumber que só existia na biblioteca CLX, bom agora existe na VCL também.
O componente LCDNumber é um componente visual que serve para mostrar datas, horas, temperaturas, etc...
Programa exemplo -> Relógio despertador
Listagem da unit do componente ULCDNumber.pas ->
Listagem da Unit ULCDData.pas -> Editado por Thales Pontes MartinsLink para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.