TLCDScreen

TLCDScreen is an alphanumeric LCD- like display with multidirectionnal scrolling and smart animation features.

TLCDScreen can be fully customized throught its On/Off Pixels Color, 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.

About

String

Just for copyright;

AnimationDelay Cardinal The smaller, the faster;
AnimationEnabled Boolean Animation is set on or off;
BorderColor

TColor

The color of the border when BorderStyle is set to bsSingle;

BorderSpace

Byte

The width in pixels beetween LCDdots and the border;

BorderStyle

TLCDBorder

bsRaised, bsLowered, bsSingle 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, mat5x8, mat7x9, mat9x12, Hitachi, Hitachi2 or dos5x7;

Enabled

 
Height    
Hint    
HorzScrollMode

TScrollMode

smIndependant or smDependant; Only used with horizontal scroll directions ;

Intensity

ShortInt

The light power. [-128..127]. 'OnScreenOnPixColor := PixOnColor*Intensity'

LCDAnimator TLCDAnimator The animation module link with;
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;

Name    
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 - OnMouse Down - OnMouseMove - OnMouseUp

Reset(Value: TResetMode); TResetMode = (rmDisplay, rmCode, rmDisplayAndCode);

 


TLCDAnimator

 

TLCDAnimator contain lines of code controlling the animation of a TLCDScreen.

You can use the build-in editor to write animation code.

The syntax for one line is [OPS1(ARG1); OPS2(ARG2); ...]
The differents operations(OPS1, OPS2,...) will be executed in one cycle.

The editor has basic synthax analysis capbilities.

When one line hed been executed, TLCDAnilmator fire a OnLineExecuted event.
When all the last line is executed, it fire also a OnEndCode event.

About

String

Just for copyright;

Code TStrings Where the lines of the code are stored;
CodeErrorFound Boolean Check in a code synthax error had been detected;
CurrentLine Cardinal Number of the line actually processed;
Name    
Tag    
     
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: (08/may/00)

- Introducing of TLCDAnimator, the animation command for TLCDScreen.
All 'Scroll' props and methods are now obsolets.
Use now AnimationDelay: Cardinal; AnimationEnabled: Boolean; AnimationRepeating: Boolean; and a TLCDAnimator to anime TLCDScreen.
- Drawing / scrolling routines rewrited. (no more Dynamic Arrays: Less nice :( but more compatible with Borland's oldies Delphi 3&4 :))


Installation notes

TLCDScreen use 'DsgnIntf.pas' for the About prop and the TLCDAnimator's ComponentEditor and PropertyEditor.

'DsgnIntf.pas' is in '$(DELPHI)\Source\Toolsapi'.
Then you must add it:

In [Project/Options] [Select Directories/Conditionnals]
Add [$(DELPHI)\Source\Toolsapi] in [SearchPath]

Know bugs

None (!)

The Strory and the Status of TLCDScreen

TLCDScreen is based on an original code from Peter Czidlina's TLCDLabel v1.5a (http://home5.swipnet.se/petercz/Delphi.html)
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 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.


How to find the latest version of TLCDScreen?

Torry's Delphi Site: http://www.torry.ru/

Delphi Super Page: http://sunsite.cnlab-switch.ch/www/mirror/delphi/


Please notice me bugs, problems, suggestions and improvements.