MMLEDLbl.pas
上传用户:hylc_2004
上传日期:2014-01-23
资源大小:46800k
文件大小:21k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. {========================================================================}
  2. {=                (c) 1995-98 SwiftSoft Ronald Dittrich                 =}
  3. {========================================================================}
  4. {=                          All Rights Reserved                         =}
  5. {========================================================================}
  6. {=  D 01099 Dresden             = Fax.: +49 (0)351-8037944              =}
  7. {=  Loewenstr.7a                = info@swiftsoft.de                     =}
  8. {========================================================================}
  9. {=  Actual versions on http://www.swiftsoft.de/mmtools.html             =}
  10. {========================================================================}
  11. {=  This code is for reference purposes only and may not be copied or   =}
  12. {=  distributed in any format electronic or otherwise except one copy   =}
  13. {=  for backup purposes.                                                =}
  14. {=                                                                      =}
  15. {=  No Delphi Component Kit or Component individually or in a collection=}
  16. {=  subclassed or otherwise from the code in this unit, or associated   =}
  17. {=  .pas, .dfm, .dcu, .asm or .obj files may be sold or distributed     =}
  18. {=  without express permission from SwiftSoft.                          =}
  19. {=                                                                      =}
  20. {=  For more licence informations please refer to the associated        =}
  21. {=  HelpFile.                                                           =}
  22. {========================================================================}
  23. {=  $Date: 05.09.98 - 23:38:57 $                                        =}
  24. {========================================================================}
  25. Unit MMLEDLbl;
  26. { these font resources are available: }
  27. { 'FONT_11X13' }
  28. { 'FONT_16X20' }
  29. {====- 22-03-99 :  added by Laurent TAUPIN cutmaster@fearlesss.com : -===}
  30. {====- FONT_11X13_BOLD : a small bold font, more readable...         -===}
  31. {====- Create "full cars" font including lowercase & other cars      -===}
  32. {$I COMPILER.INC}
  33. interface
  34. uses
  35. {$IFDEF WIN32}
  36.     Windows,
  37. {$ELSE}
  38.     WinTypes,
  39.     WinProcs,
  40. {$ENDIF}
  41.     SysUtils,
  42.     Messages,
  43.     Classes,
  44.     Graphics,
  45.     Controls,
  46.     Forms,
  47.     Dialogs,
  48.     ExtCtrls,
  49.     Menus,
  50.     MMObj,
  51.     MMUtils,
  52.     MMString;
  53. type
  54.     TMMLEDFontSize =(fs11x13,fs16x20,fs11x13_bold);
  55.     TMMLabelDrawEvent = procedure(Sender: TObject; aBitmap: TBitmap; aRect: TRect) of object;
  56.     {-- TMMLEDLabel ------------------------------------------------------}
  57.     TMMLEDLABEL = class(TMMGraphicControl)
  58.     private
  59.        FRC_CharWidth : integer;         { the width of one digit          }
  60.        FRC_CharHeight: integer;         { added : height of chars         }
  61.        FSize         : TMMLEDFontSize;
  62.        FBevelExtend  : integer;         { the bevel width for one side    }
  63.        FAlignment    : TAlignment;
  64.        FAutoSize     : Boolean;
  65.        FDrawInactive : Boolean;
  66.        FInactiveColor: TColor;
  67.        FLEDColor     : TColor;
  68.        FLEDSpace     : integer;
  69.        FNumChars     : integer;
  70.        FBitmap       : TBitmap;
  71.        FDoubleBitmap : TBitmap;
  72.        FAutoScroll   : Boolean;
  73.        FDoubleBuffer : Boolean;
  74.        FTag2         : integer;
  75.        FTimer        : TTimer;
  76.        FSpeed        : integer;
  77.        FStartStep    : integer;
  78.        FCurStep      : integer;
  79.        FOnBegin,
  80.        FOnStep,
  81.        FOnEnd        : TNotifyEvent;
  82.        FOnDrawBitmap : TMMLabelDrawEvent;
  83.        procedure LoadNewResource;
  84.        procedure AdjustSize(Var W, H: integer);
  85.        procedure AdjustBounds;
  86.        procedure DrawLabel;
  87.        procedure SetAutoSize(aValue: Boolean);
  88.        procedure SetAlignment(aValue: TAlignment);
  89.        procedure SetDrawInactive(aValue: Boolean);
  90.        procedure SetLEDColor(aColor: TColor);
  91.        procedure SetInactiveColor(aColor: TColor);
  92.        procedure SetLEDSpace(aValue: integer);
  93.        procedure SetSize(aValue: TMMLEDFontSize);
  94.        procedure SetNumChars(aValue: integer);
  95.        procedure SetCurStep(aValue: integer);
  96.        procedure SetStartStep(aValue: integer);
  97.        procedure SetSpeed(aValue: integer);
  98.        procedure SetAutoScroll(aValue: Boolean);
  99.        procedure SetDoubleBuffer(Value: Boolean);
  100.        procedure CMTextChanged(var Message: TMessage); message CM_TEXTCHANGED;
  101.        procedure CMColorChanged(var Message: TMessage); message CM_COLORCHANGED;
  102.        {$IFDEF BUILD_ACTIVEX}
  103.        procedure WMSize(var Message: TWMSize); message WM_SIZE;
  104.        {$ENDIF}
  105.     protected
  106.        procedure Paint; override;
  107.        procedure Loaded; override;
  108.        procedure TimerTick(Sender: TObject);
  109.        procedure SetBounds(aLeft, aTop, aWidth, aHeight: integer); override;
  110.        procedure Changed; override;
  111.     public
  112.        constructor Create (AOwner: TComponent); override;
  113.        destructor  Destroy; override;
  114.        procedure Start;
  115.        procedure Stop;
  116.     published
  117.        { Events }
  118.        property OnClick;
  119.        property OnDblClick;
  120.        property OnMouseDown;
  121.        property OnMouseMove;
  122.        property OnMouseUp;
  123.        property OnDragDrop;
  124.        property OnDragOver;
  125.        property OnEndDrag;
  126.        property OnStartDrag;
  127.        property OnBegin: TNotifyEvent read FOnBegin write FOnBegin;
  128.        property OnStep: TNotifyEvent read FOnStep write FOnStep;
  129.        property OnEnd: TNotifyEvent read FOnEnd write FOnEnd;
  130.        property OnDrawBitmap: TMMLabelDrawEvent read FOnDrawBitmap write FOnDrawBitmap;
  131.        property Align;
  132.        property Caption;
  133.        property Color default clBlack;
  134.        property ParentShowHint;
  135.        property ParentColor;
  136.        property PopupMenu;
  137.        property ShowHint;
  138.        property Visible;
  139.        property Width default 11;
  140.        property Height default 13;
  141.        property AutoSize: Boolean read FAutoSize write SetAutoSize default True;
  142.        property Alignment: TAlignment read FAlignment write SetAlignment default taLeftJustify;
  143.        property Enabled;
  144.        property FontSize: TMMLEDFontSize read FSize write SetSize default fs16X20;
  145.        property DrawInactive: Boolean read FDrawInactive write SetDrawInactive default True;
  146.        property InactiveColor: TColor read FInactiveColor write SetInactiveColor default clGreen;
  147.        property LEDColor: TColor read FLEDColor write SetLEDColor default clLime;
  148.        property NumChars: integer read FNumChars write SetNumChars default 12;
  149.        property LEDSpace: integer read FLEDSpace write SetLEDSpace default 1;
  150.        property ScrollSpeed: integer read FSpeed write SetSpeed default 100;
  151.        property StartStep: integer read FStartStep write SetStartStep default 0;
  152.        property CurrentStep: integer read FCurStep write SetCurStep default 0;
  153.        property AutoScroll: Boolean read FAutoScroll write SetAutoScroll default False;
  154.        property DoubleBuffer: Boolean read FDoubleBuffer write SetDoubleBuffer default False;
  155.        property Tag2: integer read FTag2 write FTag2;
  156.        property Bevel;
  157.     end;
  158. implementation
  159. {$IFDEF WIN32}
  160.   {$R MMLABEL.D32}
  161. {$ELSE}
  162.   {$R MMLABEL.D16}
  163. {$ENDIF}
  164. const
  165.      RC_NumChars   = 126;      { number of chars in the resource file     }
  166.      RC_MinChar    = Ord(' ');
  167.      RC_MiddleEnd  = Ord('^');
  168.      RC_MiddleStart= Ord('_');
  169.      RC_MaxChar    = Ord('