Industrial
About
The Industrial package contains a set of industrial-themed components, such as LED indicators, LED and LCD displays, analog gauges, thermometer gauges, knob, on/off switch, etc.

Download and Installation
- Released version distributed by the Online Package Manager: check the "IndustrialStuff" item in the Online Package manager, click the "Install" button and follow the instructions.
- Development version on Lazarus CCR (svn):
- If you have access to svn use the following command to check-out the package into folder industrialstuff:
svn checkoutsvn://svn.code.sf.net/p/lazarus-ccr/svn/components/industrialstuffindustrialstuff. - Otherwise download the zipped snapshot from https://sourceforge.net/p/lazarus-ccr/svn/HEAD/tree/components/industrialstuff/. Extract the files in a separate directory.
- In the Lazarus IDE, open the file industrial.lpk in "Package" > "Open Package File (.lpk)" and click on "Use" > "Install". Allow to rebuild the IDE.
- If you have access to svn use the following command to check-out the package into folder industrialstuff:
- When Lazarus restarts after the installation the components are on palette Industrial.
License
Since the components contained in the industrial package originate from various authors there is no general, package-wide license. Licenses used are MPL, GPL and modified LGPL. Please check the unit headers for the license of the component that you want to use.
Components
Indicators
TAdvLED
Indicator light as LED or light bulb
- Original author: Dejan Crnila (dejancrn@yahoo.com)
- License: modified LGPL (like Lazarus)
- Properties
Kind(enumerationTLEDKind = (lkRedLight, lkGreenLight, lkYellowLight, lkBulb, lkCustom)): red, green or yellow LED, or light bulb, or LED in adjustable colors as defined by theGlyphDisabled,GlyphOffandGlyphOnproperties.State(enumerationTLEDState = (lsDisabled, lsOff, lsOn)): Indicator is disabled (gray), OFF (dark color) or ON (bright color).Blink: boolean: The LED toggles automatically between ON and OFF states. The duration during which the LED is in each state is given by the propertyBlinkDuration(in milliseconds).FlashMode(enumerationTFlashMode = (fmFlashOffToOn, fmFlashOnToOff)): Defines whether theFlashmethod causes a transition from OFF to ON, or from ON to OFF.
- Methods
procedure Toggle: Switches between the states of the indicator (unlessStateislsDisabled).procedure Flash(ADuration: Integer): The indicator flashes for theADurationtime (in milliseconds) to the other state and then returns to the current state again. Whether the transition is from OFF to ON or from ON to OFF is specified by theFlashModeproperty.
- Demo project
- in folder TAdvLED of the installation folder.
TIndLED
LED indicator with configurable shape and color. Can be grouped with others so that only one LED of that group is active.
- Original author: Mauricio (https://sourceforge.net/projects/tcycomponents//
- License: MPL 1.1
- Properties
Bevels: a collection ofTcyBevelitems defining bevels around the LED (raised/lowered, left/top/right/bottom, highlight and shadow color, as well as bevel width)GroupIndex: Integer: in a group of LEDs sharing the same non-zeroGroupIndexonly a single LED can be lit. WhenAllowAllOffistrueall LEDs of this group can be turned OFF, otherwise there must always be one LED which is ON.LedColorDisabled,TLedColorOff,TLedColorOn(typeTColor): colors of the LED in the disabled, OFF and ON states, respectively.LedValue: boolean: determines whether the LED is ON (true) or OFF (false).ShapeType(enumerationTShapeType = (stRectangle, stRoundRect, stEllipse)): shape of the LED. In case ofstRoundRectthe corner radius is determined byShapeRoundRectXandShapeRoundRectY.ShapeLedColorDisabled,ShapeLedColorOff,ShapeLedColorOn(typeTColor): pen color of the border of the LED shape.
TStopLightSensor
A descendant of TImage which displays images for the states of a traffic light (red, yellow, green).
- Original author: Mike Skolnik (http://www.scalabium.com)) Lazarus port by Jurassic Pork.
- License: "My components are freeware for private and commercial use so you may use any in your applications but without any warranties from my side."
- Properties
State: TStopLights = (slUNKNOWN, slRED, slYELLOW, slGREEN): Indicates the state of the traffic light.
Alphanumeric Displays
TLEDNumber
14-segment LED display for alpha-numeric text.
- Author: Based on a component contained in the TurboPower VisualPlanIt library. Lazarus port by Jurassic Pork.
- License: MIT
- Properties
BgColor: TColor: Specifies the color of the display's background (default: clBlack)Borderstyle(EnumerationTLedNumberBorderStyle = (lnbNone, lnbSingle, lnbSunken, lnbRaised): Defines the border around the control.Caption: string: String to be displayed by the component. Note thatTLEDNumberis able to display only the following characters:' ', '*', '+', ',', '-', '.', '/', '0'..'9', '<', '>', 'A'..'Z', 'a'..'z', ':'. Other characters are replaced by spaces.Columns: Integer; Rows: Integer: TheCaptionis displayed in predefined cells of a grid consisting of as many columns and rows as specified by these properties.OffColor: TColor: Specifies the color of the un-lit (darkended) segments.OnColor: TColor: Specifies the color of the lit (bright) segments.Size: Integer: Size of the display. To be exact, this is the width of the segments in pixels. Allowed values are between 2 and 10.Slanted: Boolean: Iftrue, the characters are drawn slanted by the amound specified in theSlantAngleproperty.Transparent: boolean: Iftrue, the display's background (BgColor) is not painted.ZeroToO: boolean: Iftrue, zero digits ('0') are not drawn with the inner slash and thus are identical with the upper-case'O'.
- Demo Project
- in folder Example/LEDNumberDemo

TLCDDisplay
Multiline LCD display for display of alphanumeric text (ASCII characters #32..#126, extendable by property editor)
- Authors: Based on TLCLLine by Yuriy Tereshchenko. Lazarus port by Boban Spasic (spasic@gmail.com) and Werner Pamler. See forum discussion https://forum.lazarus.freepascal.org/index.php/topic,58357.msg443845.html#msg443845
- License: Modified LGPL, like Lazarus LCL
- Properties
AutoSize: boolean: Adjusts the size of the control so that all characters and lines of the dot matrix are visible.BoardColor: TColor: Color of the dot matrix background.ColorSchememust be set tocsCustomyin order to change this property. Default:clBlackCharDefs: TCharDefs: Defines the dot matrices of the displayable characters. By default, all characters between ' ' (#32) and '~' (#126) are allowed, but a double-click on this property opens theCharDefsproperty editor with which new characters can be added or existing characters can be modified; in principle, all UTF8 codepoints are supported.CharSpace: Boolean: Iftrue, a one-dot space is inserted between characters. Default:false.ColorScheme: TColorScheme = (csCustom, csBlue, csGreen, csInvGreen): Pre-defined color sets. Set to csCustom in order to use theBoardColor,DotColorOnandDotColorOff.DisplayLineCount: Integer: Number of lines displayed whenAutoSizeistrue. Default:2DisplayCharCount: Integer: Number of characters per line whenAuotSizeistrue. Default:10.DotColorOn: TColor: Color of a lit dot in the character dot matrix. In order to useDotColorOn, theColorSchememust be set tocsCustom. Default:clSkyBlueDotColorOff: TColor: Color of an un-lit dot in the character dot matrix. In order to useDotColorOff, theColorSchememust be set tocsCustom. Default:clTealDotShape: TDotShape = (stSquare, stRound): Defines the shape of the dots in the dot matrix. Default:stSquareDotSize: Integer: Size of a dot in the character dot matrix. Default:4DotSpace: Integer: Distance between dots in the character dot matrix. Default:1FrameColor: TColor: Color of the frame around the LCD display. Default:clBtnFaceFrameColorStyle: TFrameColorStyle = (stWindows, stColor): Determines whether the control's bevel color is derived from system colors (stWindows) or from theFrameColor. Default:stWindows.FrameHeight: TFrameHeight = (fhDouble, fhSingle): Defines the number of pixels (2 or 1, respectively) used to draw the bevel of the display frame.FrameSize: Integer: Width of the frame around the LCD display. Default:8FrameStyle: TFrameStyle = (fsRelief, fsNone, fsLowered, fsRaised): Defines style of the frame drawn around the LCD display.Lines: TStringList: Text to be diplayed
- Events
OnChange: TNotifyEvent: Fires whenever the display text changes.
- Methods
procedure AddCharDef(AChar: string; const Dots: TDotRows): Adds a character (UTF8 encoding) and its associated dot matrix to theCharDefs.TDotRowsis anarray of integerwhere eachintegerrefers to a dot row in the dot matrix and each set bit in theintegermeans a lit dot in the corresponding row (the least-signficant bit is at the right of dot row). TheTLCDDisplay.CharMap.ColCountand.RowCountindicate the size of the character dot matrix.
- Demo projects
- in folder Examples/LCDDisplay/Properties (demonstrates the effect of changing the control's properties)
- in folder Examples/LCDDisplay/CharDefsEditor (demonstrates usage of the LCD dot matrix editor)

Gauges
TAnalogSensor
Analog display which can be configured to have a round or linear scale. Display ranges can be indicated in different colors.
Original author: Mike Skolnik (http://www.scalabium.com)) Lazarus port by Jurassic Pork.
License: "My components are freeware for private and commercial use so you may use any in your applications but without any warranties from my side."
- Properties
AnalogKind(enumerationTAnalogKind = (akAnalog, akHorizontal, akVertical)): type of the display: round scale (akAnalog) or horizontal (akHorizontal) / vertical (akVertical) thermometer-like linear scaleColorBack: TColor: Color of the display background (default: black)ColorFore: TColor: Color of the display "foreground"; the fraction of the area painted by theColorForecorresponds to the displayedValue(default: bright green).ColorRed,ColorYellow(typeTColor): Color of two lines indicating special data ranges, e.g. value too small or value too high. Default: red and yellow, respectively. These lines are displayed when theShowLevelproperty istrueShowLevel: boolean: Iftrue, two lines indicating special data conditions are displayed.ShowText: boolean: Displays the numericalValuebelow the display.Value: integer: Displayed number (corresponds to the area drawn in colorColorFore)ValueMax: Integer: Maximum value that can be displayedValueMin: Integer: Minimum value that can be displayedValueRed,ValueYellow: Integer: Values displayed as the position of the indicator lines drawn in colorColorRedandColorYellow, respectively.Caption: string: Text displayed in front of the value whenShowTextistrue.
- Methods
SetColorState(slStopLight: TStopLights): Changes the color of theCaptionand theValueas specified by the parameterslStopLights: TStopLights = (slUNKNOWN, slRED, slYELLOW, slGREEN).
- Demo project
- in folder Example/AnalogSensor

TA3nalogGauge
A component for displaying floating point values like with an analog volt or ampere meter. Uses the supersampling anti-aliasing algorithm for improvement the image quality. (The "A3" in the component name stands for "anti-aliased analog".)
- Original author: Irnis Haliullin (http://www.irnis.net// URL no longer valid), Lazarus port and extended by Werner Pamler
- License: "This component is free for use in any purposes."
- Properties
Angle: Integer: Defines the anglular range over which the meter's display needle can move. Default:120.AntiAliased: TAntiAliased = (aaNone, aaBiline, aaTriline, aaQuadral): selects the supersampling anti-aliasing algorithm to improve display quality. Default:aaNone(no anti-aliasing). Note that higher supersampling results in lower display refresh rate.ArrowColor: TColor: Color of the meter's pointer needle. Default:clBlackArrowWidth: Integer: Pen width, in pixels, used for drawing the meter's pointer needle. Default:1Caption: String: Text displayed inside the meter face, for example to indicate the measured quantity ('Voltage', or 'Current')CaptionColor: TColor: Color of the text displayed inside the meter face. Default:clBlackCaptionFont: TFont: Font used to draw the text inside the meter face.CenterColor: TColor: Color of the circle from where the meter needle originates. Default:clDkGray.CenterRadius: Integer: Radius of the circle at which the needle is attached. Default:8CircleColor: TColor: Color of the small circles drawn at the labeled scale positions. Default:clBlueCircleRadius: Integer: Radius of the small circles drawn at the labeled scale positions. Default:3FaceColor: TColor: Color of the meter face (background color). Default:clBtnFaceFaceOptions: TFaceOptions: A set of options which can be used to turn elements of the meter control on or off.TFaceOption = (foShowMargin, foShowCircles, foShowMainTicks, foShowSubTicks, foShowIndicatorMin, foShowIndicatorMid, foShowIndicatorMax, foShowValues, foShowCenter, foShowFrame, foShow3D, foShowCaption). Default:[foShowMainTicks, foShowSubTicks, foShowIndicatorMax, foShowValues, foShowCenter, foShowFrame, foShow3D, foShowCaption]IndMaximum: Integer: Maximum value of the "normal" range. Default:80IndMinimum: Integer: Minimum value of the "normal" range. Default:20LengthMainTicks: Integer: Length of the main (labeled) ticks at the scale of the meter. Default:15LengthSubTicks: Integer: Length of the minor (unlabeled) ticks at the scale of the meter. Default:8Margin: Integer: Distance between the outermost parts of scale/center and the LCL bounds of the control. Default:10MarginColor: TColor: Color of the rectangle drawn around the outermost parts of the scale if the optionfoShowMarginis included in theFaceOptionsMaxColor: TColor: Color of the segment at the meter scale betweenIndMaximumandScaleMaxto highlight the "higher-than-normal" range. Default:clRedMidColor: TColor: Color of the center segment at the meter scale betweenIndMinimumandIndMaximumto highlight the "normal" range. Default:clYellowMinColor: TColor: Color of the segment at the meter scale betweenIndMinimumandScaleMinto highlight the "lower-than-normal" range. Default:clGreenNumberMainTicks: Integer: Number of main (labeled) ticks drawn at the meter scale. Default:5Position: single: Value for the needle position. Must be betweenScaleMinandScaleMax.ScaleMax: Integer: Highest value which can be displayed by the meter. Default:100.ScaleMin: Integer: Smallest value which can be displayed by the meter. Default:0.Style: TStyle = (agsLeftStyle, agsRightStyle, agsCenterStyle): Characterizes the orientation of the meter scale with respect to the center of the needle. Default:agsCenterStyle(the needle begins at the center of the scale). In optionagsLeftStyle, the needle begins at the left side of the scale, in optionagsRightStyle, at the right side of the scale.TextDist: Integer: Distance between the tick labels and the ticks at the meter's scale. Default:10.TicksColor: TColor: Color of the ticks drawn at the meter's scale. Default:clBlackValueColor: TColor: Color of the numbers at the main ticks. Default:clBlack
- Events
OnOverMax: TNotifyEvent: Fires when thePositionvalue is greater than theIndMaximumvalue.OnOverMin: TNotifyEvent: Fires when thePositionvalue is less than thenIndMinimumvalue.
- Demo project
- In folder Example/OnOffSwitch_Knob_Sample
- In folder Example/A3nalogGaugeSample

TindGnouMeter
GnouMeter is a meter which can display an integer or a float value (Single). Just like a progress bar or a gauge, all you have do do is to define the Minimum and maximum values as well as the actual value.
- Original author: Jérôme Hersant (jhersant@post4.tele.dk)
- License: "THIS COMPONENT IS ENTIRELY FREEWARE."
- Properties
Caption: String: Name of the data represented by the meterValue: Single: Value displayedColor: TColor: Background color used whenTransparentisfalse. Default:clDefaultColorFore: TColor: Color of the bar. Default:clRedColorBack: TColor: Background color of the meter. Default:clBtnFaceSignalUnit: ShortString: Unit name displayed with the values (min, max and actual)ValueMin: Double: Minimum value. Default:0ValueMax: Double: Maximum value. Default:100Increment: Double: Distance between each subdivision. Default:10ShowIncrements: Boolean: Displays the subdivisions or not. Default:trueTransparent: Boolean: Iftrue, the background of the entire control (Color) is not painted. Default:trueGapTop: Word: Distance between the meter and the text on top (Caption and actual value). Default:20GapBottom: Word: Distance between the meter and the bottom of the control. Default:10BarThickness: Word: Bar width. Default:5MarkerColor: TColor: Color of the marker representing the actual value. Default:clBlueShowMarker: Boolean: Marker visible or not. Default:true
- Demo project
- The control is used in the general sample project Ex_IndustrialStuff in folder Example
Control Elements
TmKnob
Emulates the volume knob found on some HiFi devices.
- Original author: Marco Caselli (mcaselli@iname.com). Lazarus port and extended by Werner Pamler.
- License: "Feel free to use or give away this software as you see fit. Please leave the credits in place if you alter the source."
- Properties
AllowUserDrag: Boolean: Iftrue, the user can drag the control to a new value by using the mouse.AngleRange: TKnobAngleRange = (arTop270, arTop180, arTop120, arTop90, arBottom270, arBottom180, arBottom120, arBottom90, arLeft270, arLeft180, arLeft120, arLeft90, arRight270, arRight180, arRight120, arRight90): Defines the sector of the full circle over which the knob can be rotated. Default:arTop270FaceColor: TColor: Color of the knob's faceMarkSize: Integer: Size of the tick mark. Depending on the value of theMarkSizeKindproperty, the size is given either as percentage of the knob's enclosing rectangle size, or in pixels. Default: 20%MarkSizeKind: TKnobMarkSizeKind = (mskPercentage, mskPixels): Determines whether the knob's tick mark size is given as percentage or in pixels. Default:mskPercentageMarkStyle: TKnobMarkStyle = (msLine, msCircle, msTriangle): Specifies the style of the tick mark: line, circle, or triangle. Default:msLineMax: integer: Upper limit value forPosition. Default:100Min: integer: Lower limit value forPosition. Default:0Position: Integer: Current position of the knob ("value")RotationEffect: Boolean: Iftrue, the knob will shake emulating a visual effect of rotation. Default:falseShadow: Boolean: Iftrue, a shadow is drawn in theShadowColorat the bottom/right side of the knob.ShadowColor: TColor: Color of the knob shadow.TickColor: TColor: Color of the tick's markTransparent: Boolean: Iffalse, the outer area of the control's client rectangle will be painted in theColorspecified in the corresponding property, otherwise it is transparent.
- Events
OnChange: TKnobChangeEvent: This event is triggered whenever the knob'sPositionis changed by user interaction or by code. Besides theSenderthe event has the newPositionvalue as a parameter.
- Demo
- Used, among other industrial controls, in the project in the Example/OnOffSwitch_Knob_Sample folder

TMultiSlider
Provides adjustment of up to three values by sliding grips along a track.
- Author: forum user bylaardt, see https://forum.lazarus.freepascal.org/index.php/topic,45063.msg318180.html#msg318180; extended by Werner Pamler
- License: modified LGPL (with linking exception), like Lazarus LCL
- Properties
ColorAbove: TColor: Color of the track above the upper slider. Default:clInactiveCaptionColorBelow: TColor: Color of the track below the lower slider. Default:clInactiveCaptionColorBetween: TColor: Color of the track between the upper and lower sliders. Default:clActiveCaptionColorThumb: TColor: Color of the slider grip. Default:clBtnFaceDefaultSize: Integer: Size of the slider grip. Default:28Flat: Boolean: Iftrue3D bevel effects are not painted. Default:falseMaxPosition: Integer: Defines the position of the upper slider. Default:80MinPosition: Integer: Defines the position of the lower slider. Default:20Position: Integer: Defines the position of the main (center) slider. When all three sliders are used the center slider can only be moved between the lower and upper sliders. Default:50RangeMax: Integer: Maximum allowable position of any slider. Default:100RangeMin: Integer: Minimum allowable position of any slider. Default:0SliderMode: TSliderMode = (smSingle, smMinMax, smMinValueMax): Defines how many sliders are used:smSingle- only the center slider,smMinMax- only the lower and upper sliders,smMinValueMax- all three sliders. Default:smMinMaxThumbStyle: TThumbStyle = (tsGrip, tsCircle, tsRect, tsRoundedRect, tsTriangle, tsTriangleOtherSide): Defines the shape of the slider grip. Default:tsGripTrackThickness: integer: Width of the slider track. Default:7Vertical: boolean: Defines whether the slider is aligned vertically (true) or horizontally (false). Default:false
- Events
OnPositionChange: TSliderPositionEvent = procedure (Sender: TObject; AKind: TThumbKind; AValue: Integer) of object: Fires whenever the position of a slider or the allowed max/min values changes. The slider affected is given by the parameterAKind: TThumbKind = (tkMin, tkMax, tkValue). The new position of the slider is passed as parameterAValue.
- Demo Project
- In folder Example/MultiSliderSample

Switches
TOnOffSwitch
A control resembling an on/off switch which is activated by sliding a button to the other side or by pressing the SPACE bar. The state of the button is displayed as text. When the control's width is greater than its height the switch is painted in horizontal, otherwise in vertical orientation.
- Author: Werner Pamler
- License: LGPL with linking exception (like Lazarus LCL).
- Properties
BorderColor: TColor: Color of the control's border whenBorderStyleisbsThinorbsThick. Default:clGrayBorderStyle: TSwitchBorderStyle = (bsNone, bsThin, bsThick, bsThin3D, bsThick3D): Defines the style of the control's border. Default:bsThinButtonSize: Integer: Size of the button slider. Default:24CaptionOFF: String: This text is displayed inside the switch area when the switch is "off" (Checked = false). Default:'OFF'CaptionON: String: This text is displayed inside the switch area when the switch is "on" (Checked = true). Default:'ON'Checked: Boolean: Indicates the "state" of the switch. WhenCheckedistruethe switch is "on", otherwise it is "off". Default:falseColor: TColor: Background color of the switch. Default:clWindowColorOFF: TColor: Color of the slider button whenCheckedisfalse. Default:clMaroonColorON: TColor: Color of the slider button whenCheckedistrue.Default:clGreenInverse: Boolean: Flips the location of the button slider and the caption. Default:false(Slider at the left, caption at the right).ReadOnly: Boolean: Iftrue, the user cannot change the switch state. Default:falseShowButtonBorder: Boolean: Allows to show/hide the slider's border. Default:trueShowCaption: Boolean: Allows to show/hide the control'sCaption. DefaulttrueOrientation: TSwitchOrientation = (soHorizontal, soVertical): Orientation of the switch, horizontal or vertical. Note that this is a read-only property, its value is determined by the control'sWidth-to-Heightratio.
- Events
OnChange: TNotifyEventy: Fires whenever theCheckedproperty changes its value, either by user interaction or by code.
- Sample Project
- In folder Example/OnOffSwitch_Knob_Sample.
From the Free Pascal wiki, page "Industrial", as it stood on 2023-04-07 after a change by Wp, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.
Talk about this page
Nobody has opened a bench for this page yet. Sign in to open one.
