MMLEDLbl.pas
上传用户:hylc_2004
上传日期:2014-01-23
资源大小:46800k
文件大小:21k
- {========================================================================}
- {= (c) 1995-98 SwiftSoft Ronald Dittrich =}
- {========================================================================}
- {= All Rights Reserved =}
- {========================================================================}
- {= D 01099 Dresden = Fax.: +49 (0)351-8037944 =}
- {= Loewenstr.7a = info@swiftsoft.de =}
- {========================================================================}
- {= Actual versions on http://www.swiftsoft.de/mmtools.html =}
- {========================================================================}
- {= This code is for reference purposes only and may not be copied or =}
- {= distributed in any format electronic or otherwise except one copy =}
- {= for backup purposes. =}
- {= =}
- {= No Delphi Component Kit or Component individually or in a collection=}
- {= subclassed or otherwise from the code in this unit, or associated =}
- {= .pas, .dfm, .dcu, .asm or .obj files may be sold or distributed =}
- {= without express permission from SwiftSoft. =}
- {= =}
- {= For more licence informations please refer to the associated =}
- {= HelpFile. =}
- {========================================================================}
- {= $Date: 05.09.98 - 23:38:57 $ =}
- {========================================================================}
- Unit MMLEDLbl;
- { these font resources are available: }
- { 'FONT_11X13' }
- { 'FONT_16X20' }
- {====- 22-03-99 : added by Laurent TAUPIN cutmaster@fearlesss.com : -===}
- {====- FONT_11X13_BOLD : a small bold font, more readable... -===}
- {====- Create "full cars" font including lowercase & other cars -===}
- {$I COMPILER.INC}
- interface
- uses
- {$IFDEF WIN32}
- Windows,
- {$ELSE}
- WinTypes,
- WinProcs,
- {$ENDIF}
- SysUtils,
- Messages,
- Classes,
- Graphics,
- Controls,
- Forms,
- Dialogs,
- ExtCtrls,
- Menus,
- MMObj,
- MMUtils,
- MMString;
- type
- TMMLEDFontSize =(fs11x13,fs16x20,fs11x13_bold);
- TMMLabelDrawEvent = procedure(Sender: TObject; aBitmap: TBitmap; aRect: TRect) of object;
- {-- TMMLEDLabel ------------------------------------------------------}
- TMMLEDLABEL = class(TMMGraphicControl)
- private
- FRC_CharWidth : integer; { the width of one digit }
- FRC_CharHeight: integer; { added : height of chars }
- FSize : TMMLEDFontSize;
- FBevelExtend : integer; { the bevel width for one side }
- FAlignment : TAlignment;
- FAutoSize : Boolean;
- FDrawInactive : Boolean;
- FInactiveColor: TColor;
- FLEDColor : TColor;
- FLEDSpace : integer;
- FNumChars : integer;
- FBitmap : TBitmap;
- FDoubleBitmap : TBitmap;
- FAutoScroll : Boolean;
- FDoubleBuffer : Boolean;
- FTag2 : integer;
- FTimer : TTimer;
- FSpeed : integer;
- FStartStep : integer;
- FCurStep : integer;
- FOnBegin,
- FOnStep,
- FOnEnd : TNotifyEvent;
- FOnDrawBitmap : TMMLabelDrawEvent;
- procedure LoadNewResource;
- procedure AdjustSize(Var W, H: integer);
- procedure AdjustBounds;
- procedure DrawLabel;
- procedure SetAutoSize(aValue: Boolean);
- procedure SetAlignment(aValue: TAlignment);
- procedure SetDrawInactive(aValue: Boolean);
- procedure SetLEDColor(aColor: TColor);
- procedure SetInactiveColor(aColor: TColor);
- procedure SetLEDSpace(aValue: integer);
- procedure SetSize(aValue: TMMLEDFontSize);
- procedure SetNumChars(aValue: integer);
- procedure SetCurStep(aValue: integer);
- procedure SetStartStep(aValue: integer);
- procedure SetSpeed(aValue: integer);
- procedure SetAutoScroll(aValue: Boolean);
- procedure SetDoubleBuffer(Value: Boolean);
- procedure CMTextChanged(var Message: TMessage); message CM_TEXTCHANGED;
- procedure CMColorChanged(var Message: TMessage); message CM_COLORCHANGED;
- {$IFDEF BUILD_ACTIVEX}
- procedure WMSize(var Message: TWMSize); message WM_SIZE;
- {$ENDIF}
- protected
- procedure Paint; override;
- procedure Loaded; override;
- procedure TimerTick(Sender: TObject);
- procedure SetBounds(aLeft, aTop, aWidth, aHeight: integer); override;
- procedure Changed; override;
- public
- constructor Create (AOwner: TComponent); override;
- destructor Destroy; override;
- procedure Start;
- procedure Stop;
- published
- { Events }
- property OnClick;
- property OnDblClick;
- property OnMouseDown;
- property OnMouseMove;
- property OnMouseUp;
- property OnDragDrop;
- property OnDragOver;
- property OnEndDrag;
- property OnStartDrag;
- property OnBegin: TNotifyEvent read FOnBegin write FOnBegin;
- property OnStep: TNotifyEvent read FOnStep write FOnStep;
- property OnEnd: TNotifyEvent read FOnEnd write FOnEnd;
- property OnDrawBitmap: TMMLabelDrawEvent read FOnDrawBitmap write FOnDrawBitmap;
- property Align;
- property Caption;
- property Color default clBlack;
- property ParentShowHint;
- property ParentColor;
- property PopupMenu;
- property ShowHint;
- property Visible;
- property Width default 11;
- property Height default 13;
- property AutoSize: Boolean read FAutoSize write SetAutoSize default True;
- property Alignment: TAlignment read FAlignment write SetAlignment default taLeftJustify;
- property Enabled;
- property FontSize: TMMLEDFontSize read FSize write SetSize default fs16X20;
- property DrawInactive: Boolean read FDrawInactive write SetDrawInactive default True;
- property InactiveColor: TColor read FInactiveColor write SetInactiveColor default clGreen;
- property LEDColor: TColor read FLEDColor write SetLEDColor default clLime;
- property NumChars: integer read FNumChars write SetNumChars default 12;
- property LEDSpace: integer read FLEDSpace write SetLEDSpace default 1;
- property ScrollSpeed: integer read FSpeed write SetSpeed default 100;
- property StartStep: integer read FStartStep write SetStartStep default 0;
- property CurrentStep: integer read FCurStep write SetCurStep default 0;
- property AutoScroll: Boolean read FAutoScroll write SetAutoScroll default False;
- property DoubleBuffer: Boolean read FDoubleBuffer write SetDoubleBuffer default False;
- property Tag2: integer read FTag2 write FTag2;
- property Bevel;
- end;
- implementation
- {$IFDEF WIN32}
- {$R MMLABEL.D32}
- {$ELSE}
- {$R MMLABEL.D16}
- {$ENDIF}
- const
- RC_NumChars = 126; { number of chars in the resource file }
- RC_MinChar = Ord(' ');
- RC_MiddleEnd = Ord('^');
- RC_MiddleStart= Ord('_');
- RC_MaxChar = Ord('