亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? lcdscreen.pas.svn-base

?? LCDScreen is a couple of Delphi component which simulate a dot-LCD multilines screen. It is fully c
?? SVN-BASE
?? 第 1 頁 / 共 5 頁
字號:
unit LCDScreen;

////////////////////////////////////////////////////////////////////////////////
//
//  TLCDScreen / TLCDAnimator v2.5 (15/aug/01)
//  written by Jacques VOIRIN
//  E-Mail: jacques.voirin@iname.com
//
////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////
//
//   TLCDScreen is an alphanumeric LCD- like display with multidirectionnal
//   scrolling and smart animation features.
//
//   TLCDScreen can be fully customized throught its On/Off Pixels Intensity,
//   DotMatrix, PixelSize, etc. properties.
//   The caption is strored in Lines: TStrings.
//   In order to animate a TLCDScreen link it to a TLCDAnimator,
//   using its LCDAnimator property.
//   AnimationEnabled and AnimationDelay control the execution of the Animation
//   Code store in a TLCDAnimator.
//
//   For best look, use 65536 colors (16 bits) or higher.
//
////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////
//
//  TLCDScreen's props and methods list:
//  -----------------------------------
//
//   About: String               - Just for copyright;
//   AnimationDelay: Cardinal    - The smaller, the faster;
//   AnimationEnabled: Boolean   - Animation is set on or off;
//   AnimationRepeating: Boolean - If True, repeat the animation's code when done;
//   AnimationUnits: TAnimationUnit - auChar or auPixel;
//   BorderSpace: Byte       - The width in pixels beetween LCDdots and the border;
//   BorderStyle: TLCDBorder - bsRaised, bsLowered or bsNone;
//   CharSpacing: Byte       - The horz. width in pixels beetween LCD characters;
//   Color: TColor           - The main, background color of the component;
//   Cursor;
//   DotMatrix: TDotMatrix   - LCD's display look: mat5x7, mat7x9, mat9x12,
//   DotMatrixBorders: set of TDotMatrixBorder; (mbBottom, mbLeft, mbRight, mbTop)
//                           -  Put an empty line around one char;
//   Enabled;
//   Height;
//   Hint;
//   HorzScrollMode: TScrollMode - smIndependant or smDependant;
//                                 Only used with horizontal scroll directions.
//   Intensity: ShortInt     - The light power. [-127..127]
//                             'OnScreenOnPixColor := PixOnColor*Intensity'
//   LCDAnimator: TLCDAnimator - The animation code is store in it;
//   Left;
//   Lines: TStringList      - Where the text is strore. Can be edited at runtime
//                             using standard TStringList's functions;
//   LineSpacing: Byte       - The vert. width in pixels beetween LCD characters;
//   NoOfLines  : Byte       - The number of lines displayed;
//   NoOfChars  : Byte       - The number of characters displayed;
//   PixelHeight: Byte       - A read only prop in the general case.
//                             Only used when PixelSize is set to pixCustom;
//   PixelOff : TColor       - The color of switched on dots;
//   PixelOn  : TColor       - The color of switched off dots;
//   PixelShape: TPixelShape - The look of dots: psSquare, psShaped or psRound;
//   PixelSize: TPixelSize   - The size of one dot: pix1x1..pix16x16 or pixCustom;
//   PixelSpacing: Byte      - The vert.and horz.width in pixels beetween LCDdots;
//   PixelWidth: Byte        - A read only prop in the general case.
//                             Only used when PixelSize is set to pixCustom;
//   ShowHint;
//   Tag;
//   Top;
//   Visible;
//   Width;
//
//   OnClick;
//   OnDblClick;
//   OnDragDrop;
//   OnDragOver;
//   OnEndDrag;
//   OnMouseDown;
//   OnMouseMove;
//   OnMouseUp;
//
 //  procedure Reset(Value: TResetMode); TResetMode = (rmDisplay, rmCode, rmDisplayAndCode);
//
////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////
//
//  TLCDAnimator's props and methods list:
//  --------------------------------------
//
//   About: String     - Just for copyright;
//   Code: TStrings    - The animation code; Can be edited throught the
//                       TLCDAnimatorEditor's Form;
//   CurrentLine: Byte - the number of the current code line ;
//
//   OnEndCode:      TEndCodeEvent;
//                   TEndCodeEvent = procedure (Sender: TLCDAnimator) of object;
//                   Event fire when code had proceed its last code line.
//
//   OnLineExecuted: TLineExecutedEvent;
//                   TLineExecutedEvent = procedure(Sender: TLCDAnimator; LineNumber: Word) of object;
//                   Event fire each time a line of the code had been proceeded.
//
////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////
//
//  History:
//
//   v1.0: (30/jan/00)
//         First public release
//
//   v1.1: (20/feb/00)
//         - New scrolling commands: ScrollDirection removed.
//             Use now ScrollHorz, ScrollVert: ShortInt [-127..127]
//         - Intensity implementation (Byte: [0..255])
//         - BorderSpace, CharSpacing, LineSpacing, NoOfLines, NoOfChars,
//           PixelSpacing and PixelWidth are now Byte type.
//         - CharSpacing and LineSpacing are now expressed width in pixels.
//         - Other cosmetic code design.
//
//   v1.2: (02/apr/00)
//         - New code for Intensity (ShortInt [-128..127])
//           Allow now 'inverse intensity'
//
//   v2.0: (01/may/00)
//         - Introducing TLCDAnimator, the animation command for TLCDScreen
//           All 'Scroll' props and methods are now obsolet.
//           Use now AnimationDelay: Cardinal;
//                   AnimationEnabled: Boolean;
//                   AnimationRepeating: Boolean;
//                   and a TLCDAnimator to anime TLCDScreen;
//           Fisrt version of TLCDAnimatorCodeEditorForm.
//         - Remove all Dynamic Arrays: Less nice :(
//                                      but more compatible with old Delphi :))
//         - Rewrite drawing/scrolling routines.
//         - Removed internal FDisplayLines.
//
//   v2.1: (01/jun/00)
//         - An empty line doesn't raise error in TLCDAnimator.
//         - pixCustom bug fix.
//         - No more global protection error when a TLCDAnimator linked to a TLCDScreen
//           is detroyed.
//         - No more global protection error when TLCDScreen.LCDAnimator
//           is cleared.
//         - Other cosmetic code design.
//
//   v2.2:(01/jul/00)
//         - Matrix.pas ver 2.0 : - Hitachi, Hitachi2, dos5x7 removed;
//                                - use now mat5x7, mat7x9, mat9x12;
//         - Introducing DotMatrixBorders = set of (mbBottom, mbLeft, mbRight, mbTop);
//         - Introducing special effects: inverse and blinking effects;
//
//   v2.3:(20/jul/00)
//         - Fisrt version of TLCDScreenLineEditorForm.

//   v2.5:(15/aug/01)
//         - D6 version and new code design with TLCDScreenReg.pas
//         - Code cleaning and rewriting animation routines;
//         - Add AnimationUnits: TAnimationUnit = (auChar, auPixel);
//         - Add two new special effects: underline and strike;
//         - Remove psShaped from Pixelshape (not really usefull);
//         - Remove InfoPanelOn/Off (too buggy);
//         - Remove BorderColor and simplify BorderStyle;
//         - Updated Demo.exe and Help file;
//
////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////
//
//  Know bugs:
//
//   - none :)
//
////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////
//
//  The Strory and the Status of TLCDScreen
//  ---------------------------------------
//
//  TLCDScreen is based on an original code from Peter Czidlina's TLCDLabel v1.5a
//                               (petercz@swipnet.se)
//                               (http://hem2.passagen.se/ebcpecz/)
//
// The mother code for dots and characters drawing and Matrix.pas are Peter
// Czidlina's stuff.
// At the beginning, my idea was only to improve TLCDLabel.
// First, I try to implemente a true-multiline dimension. When done I add
// scrolling capacities to the component. I also recode drawing routines
// to improve speed.
// Days after days, improvments after improvments and e-mails after e-mails,
// it appears that I write a totally new component.
// Then, with the express agreement of Peter, I rename it and publish my work
// under my name.
//
// As Peter Czidlina's component was FREEWARE, it was easy for me to analyse his
// code and try to improve it.
//
// This is why TLCDScreen is also FREEWARE.
// However, use in commercial or shareware applications requires
// MY EXPRESS WRITTEN PERMISSION.
//
////////////////////////////////////////////////////////////////////////////////
//
// There is no direct compatibility between TLCDScreen and TLCDLabel because
// some properties had been renames, added or removed from the original code.
//
////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////
//
// Installation note:
// ------------------
//    TLCDScreen use 'DsgnIntf.pas' for the About prop and the TLCDAnimator's
//    ComponentEditor and PropertyEditor.
//    'DsgnIntf.pas' can be find in '$(DELPHI)\Source\Toolsapi'
//    Then you must add it:
//                [Project/Options]
//                [Select Directories/Conditionnals]
//                Add [$(DELPHI)\Source\Toolsapi] in [SearchPath]
//
//
////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////
//
//  Please notice bugs or problems, suggestions and improvements at
//
//  jacques.voirin@iname.com
//
////////////////////////////////////////////////////////////////////////////////


interface

{$R LCDScreen.res}

uses
  Windows, Classes, Graphics, Controls, Dialogs, ExtCtrls, Math, SysUtils,
  Forms, Matrix;


function NbOfThings(tempcode: string; Thing: Char): Integer;


const MaxSizeCodeInstructionArray = 255; //Removing dynamic Arrays...


type
  TLCDAnimator = class;

  TCodeInstruction = record
                       Word: string[25];
                       Param: Integer;
                       end;

  CodeInstructionArrayBuilder = array[1..MaxSizeCodeInstructionArray] of TCodeInstruction; //Removing dynamic Arrays...

  TEndCodeEvent = procedure(Sender: TLCDAnimator) of object;

  TResetMode = (rmDisplay, rmCode, rmDisplayAndCode);

  TLineExecutedEvent = procedure(Sender: TLCDAnimator; LineNumber: Word) of object;

  //TDotMatrix = (mat5x7, mat7x9, mat9x12 {, CustomFont});

  TDotMatrixBorder = (mbBottom, mbLeft, mbRight, mbTop);

  TDotMatrixBorders = set of TDotMatrixBorder;

  TPixelSize = (pixCustom, pix1x1, pix2x2, pix3x3, pix4x4, pix5x5, pix6x6,
                pix7x7, pix8x8, pix9x9, pix10x10, pix11x11, pix12x12, pix13x13,
                pix14x14, pix15x15, pix16x16);

  TPixelShape = (psSquare, psRound);

  TLCDBorder = (bsLowered, bsNone, bsRaised);

  TSpecialEffect = (spBlinking, spInverse, spUnderline, spStrike);

  TSpecialEffects = set of TSpecialEffect;

  TAnimationUnit = (auChar, auPixel);

  TOneChar = record
                TheChar:WideChar;
                SpEff: Byte;
                end;

////////////////////////////////////////////////////////////////////////////////
//
// TLCDAnimator
//
////////////////////////////////////////////////////////////////////////////////

  TLCDAnimator = class(TComponent)
  private
    FCode: TStrings;
    FCodeErrorFound: Boolean;
    FCurrentLine: SmallInt;
    FOnEndCode: TEndCodeEvent;
    FOnLineExecuted: TLineExecutedEvent;
    function  GetAbout: string;
    procedure SetAbout(Value: string);
    procedure SetCurrentLine(Value: SmallInt);

  protected
    procedure SetCode(Value: TStrings);

  public
    constructor Create(AOwner: TComponent); override;
    destructor  Destroy; override;

  published
    property About: string read GetAbout write SetAbout stored False;
    property Code: TStrings read FCode write SetCode;
    property CodeErrorFound: Boolean read FCodeErrorFound write FCodeErrorFound;
    property CurrentLine: SmallInt read FCurrentLine write SetCurrentLine;
    property OnEndCode: TEndCodeEvent read FOnEndCode write FOnEndCode;
    property OnLineExecuted: TLineExecutedEvent read FOnLineExecuted write FOnLineExecuted;
  end;


////////////////////////////////////////////////////////////////////////////////
//
// TLCDScreen
//
////////////////////////////////////////////////////////////////////////////////

  TLCDScreen = class(TGraphicControl)
  private

    P: ^CodeInstructionArrayBuilder;      //Removing dynamic Arrays...
    Display: array [0..255,0..255] of TOneChar; { Internal image of the screen        }
    PixHRef, PixVRef: ShortInt;           { Internal offset in Pixel unit             }
    CharHRef, CharVRef: SmallInt;         { Internal offset in Char unit              }
    CharWidth, CharHeight: Word;          { Temp. storage of character sizes          }
    psx, psy: Byte;                       { Internal pixel dimension variables        }
    FontWidth, FontHeight: Byte;          { Font size                                 }
    FTimer: TTimer;                       { Internal Timer                            }
    //FVirginMatrixBitmap: TBitmap;         { Internal bitmap of a virgin matrix        }
    //FBlackMatrixBitmap: TBitmap;          { Internal bitmap of a allOnPixels matrix   }
    //FDisplayCharBitmap: TBitmap;

    FVirginMatrixDC: HDC;
    FVirginMatrixBitmap: TBitmap;
    FOVirginMatrixBitmap: HBITMAP;

    FBlackMatrixDC: HDC;
    FBlackMatrixBitmap: TBitmap;
    FOBlackMatrixBitmap: HBITMAP;

    FCharDC: HDC;
    FCharBitmap, FOCharBitmap: HBITMAP;
    
    FTrueOnColor : TColor;                { Internal color for OnPixels               }
    FTrueOffColor: TColor;                { Internal color for OffPixels              }
    FBlinkingStatus: Boolean;             { Internal Blinking On/Off flag             }

    FAnimationDelay: Cardinal;            { In milliseconds; the smaller, the faster  }
    FAnimationEnabled: Boolean;           { Enable or disable the animation           }
    FAnimationRepeating: Boolean;         { What to do when all code lines had been processed }
    FAnimationUnits: TAnimationUnit;      { Animation pixel per pix or char per char  }
    FBorderSpace: Byte;                   { Distance from the LCD border              }
    FBorderStyle: TLCDBorder;             { Border around the the component           }
    FCharSpacing: Byte;                   { Space between the characters on the LCD   }
    FColor: TColor;                       { LCD color                                 }
    //FDotMatrix: TDotMatrix;               { Type of character matrix on the LCD       }
    FDotMatrixBorders: TDotMatrixBorders; { PixelOff borders around a character       }
    FHeight: Integer;                     { Label height in pixels                    }
    FIntensity: ShortInt;                 { [-128..127] percentage of ligth           }
    FLCDAnimator: TLCDAnimator;           { The TLCDAnimator associated with          }
    FLines: TStringList;                  { The component's multilines text           }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美在线观看你懂的| 3d动漫精品啪啪1区2区免费| 一区二区三区国产豹纹内裤在线 | 91首页免费视频| 天天综合网 天天综合色| 国产日韩欧美不卡在线| 欧美男女性生活在线直播观看| 国产成人免费高清| 免费三级欧美电影| 亚洲免费视频中文字幕| 久久免费电影网| 欧美一区二区三区人| 色综合中文字幕国产| 蜜臀av一区二区在线免费观看 | 亚洲男人的天堂在线aⅴ视频| 欧美成人综合网站| 欧美色精品天天在线观看视频| 国产黄色精品网站| 久久成人久久鬼色| 天天av天天翘天天综合网色鬼国产 | 国产在线精品一区在线观看麻豆| 夜夜夜精品看看| 亚洲视频一二三区| 久久久精品tv| 欧美videofree性高清杂交| 在线观看91av| 欧美日韩免费观看一区三区| 色综合中文综合网| 成人在线视频首页| 国产一区在线观看视频| 欧美aⅴ一区二区三区视频| 亚洲一区二区三区四区五区中文| 国产精品美日韩| 欧美激情中文不卡| 久久久久久久久99精品| 日韩一级免费一区| 91精品国产91久久综合桃花| 欧美久久一二三四区| 欧美视频精品在线| 欧美日韩精品免费观看视频| 欧美日韩另类国产亚洲欧美一级| 欧美中文字幕不卡| 精品视频在线免费| 欧美日韩久久一区二区| 在线综合视频播放| 日韩精品专区在线影院观看 | 日韩毛片高清在线播放| 日韩和欧美的一区| 视频一区在线播放| 日韩国产欧美在线观看| 蜜芽一区二区三区| 看国产成人h片视频| 激情欧美日韩一区二区| 国产高清久久久久| 成人午夜激情视频| 91丝袜国产在线播放| 91久久人澡人人添人人爽欧美| 色悠悠久久综合| 欧美日韩在线播| 日韩一卡二卡三卡| 国产偷国产偷精品高清尤物| 中文字幕第一页久久| 亚洲欧美欧美一区二区三区| 亚洲一区在线观看视频| 日韩**一区毛片| 韩国在线一区二区| av在线这里只有精品| 在线免费精品视频| 7777精品伊人久久久大香线蕉完整版| 欧美一区二区久久| 国产欧美一区二区在线观看| 亚洲精品久久嫩草网站秘色| 欧美aaa在线| 99在线视频精品| 在线成人免费视频| 国产免费久久精品| 亚洲国产成人av网| 国产最新精品精品你懂的| 99免费精品在线观看| 这里只有精品电影| 国产精品毛片久久久久久久| 亚洲风情在线资源站| 日韩小视频在线观看专区| 久久精品人人做| 亚洲成人午夜电影| 国产成人亚洲综合a∨婷婷| 欧美亚洲一区三区| 久久久不卡网国产精品二区| 一区二区在线观看视频在线观看| 男人的天堂久久精品| 成人av网站在线观看| 欧美一级日韩不卡播放免费| 欧美国产国产综合| 日本在线播放一区二区三区| 99久久久久久99| 日韩欧美高清dvd碟片| 亚洲精品国产无套在线观| 激情亚洲综合在线| 在线观看日韩一区| 国产日韩欧美制服另类| 视频一区视频二区中文| 97精品电影院| 国产拍揄自揄精品视频麻豆| 人人超碰91尤物精品国产| 91蝌蚪porny九色| 国产亚洲欧美中文| 日本va欧美va欧美va精品| 色综合天天在线| 国产欧美日韩精品在线| 日韩成人一区二区| 在线观看三级视频欧美| 国产精品每日更新| 国产精品18久久久| 日韩欧美的一区| 日韩精品三区四区| 欧美日韩在线亚洲一区蜜芽| 成人欧美一区二区三区白人 | 成人av免费在线播放| 精品少妇一区二区三区日产乱码| 一区二区三区欧美激情| 成人教育av在线| 日韩欧美中文字幕一区| 亚洲成人激情综合网| 色先锋资源久久综合| 中文字幕一区二区三区不卡 | 亚洲精品日日夜夜| aaa国产一区| 国产精品视频九色porn| 国产精品一区二区久久不卡 | 亚洲蜜臀av乱码久久精品| 国产91露脸合集magnet| 337p日本欧洲亚洲大胆精品| 视频在线在亚洲| 欧美日韩极品在线观看一区| 午夜视频一区二区| 欧美美女一区二区在线观看| 亚洲一区二区视频| 欧美日韩一区 二区 三区 久久精品| 亚洲人成7777| 在线观看精品一区| 一区二区免费在线| 欧美唯美清纯偷拍| 亚洲午夜电影网| 91麻豆精品国产91| 久久精品国产在热久久| 精品国产一区二区三区忘忧草 | 成人免费看的视频| 亚洲欧美在线高清| 色拍拍在线精品视频8848| 亚洲综合清纯丝袜自拍| 欧美午夜免费电影| 午夜a成v人精品| 日韩精品中文字幕一区二区三区 | 国产精品久久久久四虎| eeuss鲁片一区二区三区| 亚洲日本乱码在线观看| 欧美日韩在线免费视频| 视频一区欧美精品| 日韩亚洲国产中文字幕欧美| 国产一区二区导航在线播放| 国产精品免费视频观看| 国产精品女主播av| 色av一区二区| 蜜臂av日日欢夜夜爽一区| 久久精品视频一区| 色综合天天综合色综合av | 国产综合色精品一区二区三区| 久久久久国产精品人| av中文一区二区三区| 亚洲成av人综合在线观看| 精品久久一区二区三区| 99热在这里有精品免费| 亚洲第一精品在线| 国产亚洲精品aa午夜观看| 91免费视频观看| 久久精品国产99久久6| 中文字幕免费在线观看视频一区| 日本高清免费不卡视频| 久久精品国产精品亚洲红杏| 亚洲图片激情小说| 欧美一区二区三区免费| 不卡的av中国片| 爽好多水快深点欧美视频| 国产日韩视频一区二区三区| 欧美日韩1区2区| 成人一级片网址| 青青草原综合久久大伊人精品 | 日本不卡在线视频| 国产精品视频一区二区三区不卡| 欧美视频一区在线| 成人性生交大片免费看中文 | 国产精品丝袜91| 欧美精品一卡二卡| 不卡一区二区中文字幕| 秋霞av亚洲一区二区三| 亚洲精选免费视频| 久久这里只有精品首页| 在线观看91精品国产麻豆| 99精品欧美一区二区三区综合在线| 麻豆久久久久久|