FreePascal Lazarus Controls and Code Library - 🆗 BGRA Controls is a set of graphical UI elements that you can use with Lazarus LCL applications.
#FreePascal #Lazarus #fpc #library #controls

Boban Spasic 555c0df8e2 Merge pull request #195 from bgrabitmap/Another-try-to-bump-the-version 1 week ago
.github 050caa401b Update FUNDING.yml 2 years ago
bgra_pascalscript_library 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 3 years ago
bgrasvgimagelistform e1aae5ff23 Some fixes in projects 2 years ago
docs 7a9c49e068 optimize PNG with optipng 2 years ago
fpdoc fa0c884284 Documenting BCImageButton 4 years ago
icons 7a9c49e068 optimize PNG with optipng 2 years ago
images 126f4017aa Add TBCLeaEngrave, bump package versions to 9.0.1.6 1 week ago
lcl b80ec4f6cd 5.0.1 with delphi compatibility 5 years ago
mouseandkeyinput 4d36d2c32f Removed unnecessary BGRAToColor and ColorToBGRA. Revised hints. 7 years ago
styles d70ce71970 Add BCLeaBoard, update themes and themes builder. 1 month ago
test 2a51da82c3 Merge branch 'dev-bgracontrols' of https://github.com/bgrabitmap/bgracontrols into dev-bgracontrols 1 week ago
winmake 5605723a59 added Makefile 4 years ago
.gitignore da0ddc42f8 The missing RES file was added to the previous commit 8 months ago
BCExpandPanels.lrs 4eb5a3bbec Added BCExpandPanel Controls 6 months ago
BCExpandPanels.pas 78048a9353 BCExpandPanels added test; changed DebugInfo; added changelog 6 months ago
BCExpandPanels.txt 78048a9353 BCExpandPanels added test; changed DebugInfo; added changelog 6 months ago
COPYING.LGPL.txt 43b704e5e5 update to LGPL 3 3 years ago
COPYING.modifiedLGPL.txt 43b704e5e5 update to LGPL 3 3 years ago
Makefile c59e2f25a8 init at top of file, lazbuild trick dependency 4 years ago
README.md 4b732720d7 Update README.md 1 month ago
_config.yml 775cda1389 Update _config.yml 7 years ago
atshapelinebgra.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 3 years ago
bcbasectrls.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 3 years ago
bcbrightandcontrast.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 3 years ago
bcbutton.pas 1ca2ffc1d0 change resources from LRS to RES 8 months ago
bcbuttonfocus.pas 1ca2ffc1d0 change resources from LRS to RES 8 months ago
bccheckcombobox.pas c7cadf3989 TBCCheckComboBox 8 months ago
bccombobox.pas ffd9e16638 Update bccombobox.pas 2 months ago
bcdefaultthememanager.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 3 years ago
bceffect.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 3 years ago
bcfilters.pas aca1d5b7e7 license headers (except in generated files) 4 years ago
bcfluentprogressring.pas 49ab324e28 Added bcfluentprogressring by hedgehog 7 months ago
bcfluentslider.pas b544a30b27 Update bcfluentslider.pas 3 months ago
bcgamegrid.pas 1ca2ffc1d0 change resources from LRS to RES 8 months ago
bcgradientbutton.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 3 years ago
bcimagebutton.pas 1ca2ffc1d0 change resources from LRS to RES 8 months ago
bckeyboard.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 3 years ago
bclabel.pas 1ca2ffc1d0 change resources from LRS to RES 8 months ago
bcleaboard.pas 2865a515e2 Add license details 1 week ago
bcleaengrave.pas 2865a515e2 Add license details 1 week ago
bclealcddisplay.pas d70ce71970 Add BCLeaBoard, update themes and themes builder. 1 month ago
bclealcddisplay_editor.pas 37d960ff9f BCLea components 1 month ago
bclealcddisplay_editorform.lfm 37d960ff9f BCLea components 1 month ago
bclealcddisplay_editorform.pas 37d960ff9f BCLea components 1 month ago
bclealcddisplay_editorregister.pas 37d960ff9f BCLea components 1 month ago
bclealed.pas 37d960ff9f BCLea components 1 month ago
bcleaqled.pas fa1b185269 Better position calculation in BCLeaRingSlider and BCLeaSelector; Small improvements in Create methods of all the components 1 week ago
bclearingslider.pas fa1b185269 Better position calculation in BCLeaRingSlider and BCLeaSelector; Small improvements in Create methods of all the components 1 week ago
bcleaselector.pas fa1b185269 Better position calculation in BCLeaRingSlider and BCLeaSelector; Small improvements in Create methods of all the components 1 week ago
bcleatheme.pas d70ce71970 Add BCLeaBoard, update themes and themes builder. 1 month ago
bcleatypes.pas 37d960ff9f BCLea components 1 month ago
bclistbox.pas a144207170 Fix BCPaperPanel 7 months ago
bclistboxex.pas 8d23c0e7dc Adding BCListBoxEx 3 years ago
bcmaterialdesignbutton.pas 085cb51d70 Update bcmaterialdesignbutton.pas 6 months ago
bcmaterialedit.pas 31d0f25ece material edit, material spin edit, material float spin edit 2 years ago
bcmaterialfloatspinedit.pas 31d0f25ece material edit, material spin edit, material float spin edit 2 years ago
bcmaterialprogressbarmarquee.pas 468d66ec8d BCMaterialProgressBarMarquee enabled and visible 2 years ago
bcmaterialspinedit.pas 31d0f25ece material edit, material spin edit, material float spin edit 2 years ago
bcmdbutton.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 3 years ago
bcmdbuttonfocus.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 3 years ago
bcnumerickeyboard.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 3 years ago
bcpanel.pas 6e5ca311f8 Merge pull request #157 from paweld/master 8 months ago
bcpaperlistbox.lrs e77538b06a Using .lrs instead of .rc 7 years ago
bcradialprogressbar.pas 791bdbbb34 Update bcradialprogressbar.pas 1 year ago
bcreg.pas d99050c76d v9.0.1 3 months ago
bcroundedimage.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 3 years ago
bcrtti.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 3 years ago
bcsamples.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 3 years ago
bcstylesform.lfm 4f2ce5b5d5 - New repository. 10 years ago
bcstylesform.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 3 years ago
bcsvgbutton.pas 1ca2ffc1d0 change resources from LRS to RES 8 months ago
bcsvgviewer.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 3 years ago
bcthememanager.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 3 years ago
bctoolbar.pas 1ca2ffc1d0 change resources from LRS to RES 8 months ago
bctools.pas af85ce8ec0 add DisabledColor for text 2 years ago
bctrackbarupdown.pas 1ca2ffc1d0 change resources from LRS to RES 8 months ago
bctypes.pas af85ce8ec0 add DisabledColor for text 2 years ago
bgracolortheme.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 3 years ago
bgracontrols.dpk b80ec4f6cd 5.0.1 with delphi compatibility 5 years ago
bgracontrols.dproj b80ec4f6cd 5.0.1 with delphi compatibility 5 years ago
bgracontrols.dproj.local b80ec4f6cd 5.0.1 with delphi compatibility 5 years ago
bgracontrols.inc b80ec4f6cd 5.0.1 with delphi compatibility 5 years ago
bgracontrols.logic 457924ac42 BGRAControls.logic and BGRAControlsInfo.pas 5 years ago
bgracontrols.lpk 126f4017aa Add TBCLeaEngrave, bump package versions to 9.0.1.6 1 week ago
bgracontrols.pas 126f4017aa Add TBCLeaEngrave, bump package versions to 9.0.1.6 1 week ago
bgracontrols.stat bb3d037c53 Fix compiling in FPC 3.0.4. BGRAControls v6.0.2. 5 years ago
bgracontrolsinfo.pas 4602da0286 Bumping version 1 week ago
bgracustomdrawn.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 3 years ago
bgradrawerflashprogressbar.pas 74d255aa32 Using Drawer in FlashProgressBar. 4 years ago
bgraflashprogressbar.pas 1ca2ffc1d0 change resources from LRS to RES 8 months ago
bgragraphiccontrol.pas 1ca2ffc1d0 change resources from LRS to RES 8 months ago
bgraimagelist.pas 1ca2ffc1d0 change resources from LRS to RES 8 months ago
bgraimagemanipulation.pas f3bf78a2f6 Removed EmptyImage.Allow, so is always allowed (bug #189), CopyPropertiesToArea and Icons in NewCropAreaDefault, Updated Component icon and Demo) 1 week ago
bgraimagetheme.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 3 years ago
bgraknob.pas 12cbaf0278 Update bgraknob.pas removed needless procs 2 months ago
bgrapascalscript.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 3 years ago
bgrapascalscriptcomponent.lpk 126f4017aa Add TBCLeaEngrave, bump package versions to 9.0.1.6 1 week ago
bgrapascalscriptcomponent.pas 1f8e71d752 Added BCComboBox 5 years ago
bgraresizespeedbutton.pas 1ca2ffc1d0 change resources from LRS to RES 8 months ago
bgrascript.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 3 years ago
bgrashape.pas 1ca2ffc1d0 change resources from LRS to RES 8 months ago
bgraspeedbutton.pas 1ca2ffc1d0 change resources from LRS to RES 8 months ago
bgraspriteanimation.pas 1ca2ffc1d0 change resources from LRS to RES 8 months ago
bgrasvgimagelist.pas 7d263982dc #162 apply line breaks to SVGs as well 7 months ago
bgrasvgtheme.pas 4b032a4d2b Fix bcfont memory leak in bgrasvgtheme.pas, added test_svg_theme. 1 year ago
bgratheme.pas 50384df2b2 AutoSize 3 years ago
bgrathemebutton.pas af23ad5ca6 Update bgrathemebutton.pas 2 years ago
bgrathemecheckbox.pas 8bb1d36984 focus checkbox 2 years ago
bgrathemeradiobutton.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 3 years ago
bgravirtualscreen.pas 6e5ca311f8 Merge pull request #157 from paweld/master 8 months ago
colorspeedbutton.pas 6f4f99b222 Update colorspeedbutton.pas 4 months ago
dtanalogclock.pas 1ca2ffc1d0 change resources from LRS to RES 8 months ago
dtanalogcommon.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 3 years ago
dtanalogcommon.pp 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 3 years ago
dtanaloggauge.pas 1ca2ffc1d0 change resources from LRS to RES 8 months ago
dtanaloggauge.pp 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 3 years ago
dtthemedclock.pas 1ca2ffc1d0 change resources from LRS to RES 8 months ago
dtthemedgauge.pas e8d1640ac5 Update dtthemedgauge.pas Bad Line draw parameter in DrawPointer 3 months ago
dtthemedgauge.pp 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 3 years ago
fpdoc.bat 70b255acf1 Update fpdoc.bat 4 years ago
materialcolors.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 3 years ago
update_bgracontrols_force.json 70e98e8aca Update update_bgracontrols_force.json 1 week ago
upsi_bgrapascalscript.pas aca1d5b7e7 license headers (except in generated files) 4 years ago

README.md

BGRA Controls

BGRA Controls is a set of graphical UI elements that you can use with Lazarus LCL applications.

BGRA Controls

Support Us

If you like BGRAControls please support @circular17 with PayPal.

Installing

Use the Online Package Manager to get BGRABitmap and BGRAControls.

Notice that you must check only the packages "bgrabitmappack.lpk" and "bgracontrols.lpk" in the Online Package Manager. The other packages are optional and may need third party packages / libraries to work (OpenGL and PascalScript).

Optional Components

Since v4.4 the components TBCDefaultThemeManager, TBCKeyboard and TBCNumericKeyboard are not installed by default to allow Linux users to get a seamless installation with the Online Package Manager not installing third party stuff. If you want these components turn on the "Register unit" in the package options for each file (bcdefaulthememanager.pas, bckeyboard.pas, bcnumerickeyboard.pas) then compile and rebuild Lazarus. On Linux you need to install libxtst-dev and libgl-dev first.

Screenshots macOS 64 Cocoa

Analog Controls BCButton BCButtonFocus BCImageButton BCToolBar BCXButton BGRA Ribbon ProgressBar

TBCButton

A button control that can be styled through properties for each state like StateClicked, StateHover, StateNormal with settings like gradients, border and text with shadows. You can assign an already made style through the property AssignStyle.

Author: Dibo.

TBCButtonFocus

Like TBCButton but it supports focus like normal TButton.

Author: Dibo.

TBCGameGrid

A grid with custom width and height of items and any number of horizontal and vertical cells that can be drawn with BGRABitmap directly with the OnRenderControl event.

Author: Lainz.

TBCImageButton

A button control that can be styled with one image file, containing the drawing for each state Normal, Hovered, Active and Disabled. It supports 9-slice scaling feature. It supports a nice fading animation that can be turned on.

Author: Lainz.

TBCXButton

A button control that can be styled by code with the OnRenderControl event. Or even better create your own child control inheriting from this class.

Author: Lainz.

TBCLabel

A label control that can be styled through properties, it supports shadow, custom borders and background.

Author: Dibo.

TBCMaterialDesignButton

A button control that has an animation effect according to Google Material Design guidelines. It supports custom color for background and for the circle animation, also you can customize the shadow.

Author: Lainz.

TBCMDButton

A button control like TBCMaterialDesignButton, without shadow, but with more capabilities.

Author: Lainz. Contributions by Fritz.

TBCPanel

A panel control that can be styled through properties. You can assign an already made style through the property AssignStyle.

Author: Dibo.

TBCRadialProgressBar

A progress bar with radial style. You can set the color and text properties as you like.

Author: Lainz.

TBCSVGButton

Button made with SVG images for each state. Based on the SVG Viewer.

Author: Josh.

TBCSVGViewer

SVG viewer with several options.

Author: Lainz, Circular.

TBCToolBar

A TToolBar with an event OnRedraw to paint it using BGRABitmap. It supports also the default OnPaintButton to customize the buttons drawing. By default it comes with a Windows 7 like explorer toolbar style.

Author: Lainz.

TBCTrackBarUpdown

A control to input numeric values with works like a trackbar and a spinedit both in one control.

Author: Circular.

TBGRAFlashProgressBar

A progress bar with a default style inspired in the old Flash Player Setup for Windows progress dialog. You can change the color property to have different styles and also you can use the event OnRedraw to paint custom styles on it like text or override the entire default drawing.

Author: Circular.

TBGRAGraphicControl

Is like a paintbox. You can draw with transparency with this control using the OnRedraw event.

Author: Circular.

TBGRAImageList

An image list that supports alpha in all supported platforms.

Author: Dibo.

TBGRAImageManipulation

A tool to manipulate pictures, see the demo that shows all the capability that comes with it.

Author: Emerson Cavalcanti, maxm74 .

TBGRAKnob

A knob that can be styled through properties.

Author: Circular.

TBGRAResizeSpeedButton

A speed button that can resize the glyph to fit in the entire control.

Author: Fox (helix2001).

TBGRAShape

A control with configurable shapes like polygon and ellipse that can be filled with gradients and can have custom borders and many other visual settings.

Author: Circular.

TBGRASpeedButton

A speed button that in GTK and GTK2 provides BGRABitmap powered transparency to the glyph.

Author: Dibo.

TBGRASpriteAnimation

A component that can be used as image viewer or animation viewer, supports the loading of gif files.

Author: Lainz.

TBGRAVirtualScreen

Is like a panel. You can draw this control using the OnRedraw event.

Author: Circular.

TBCNumericKeyboard

A panel with numeric buttons to store the input in a string. Then you can use the events to edit it to fit your needs and assign to other controls that value.

Author: Lainz.

TBCRealNumericKeyboard

A panel with numeric buttons to do the real input of the keys on keyboard. What you type is sent to the focused control directly.

Author: Lainz. Esvignolo.

TBCDefaultThemeManager

A component to style all the selected buttons in a form with the need to style only a single button. Can be used entirely with code.

Author: Lainz.

TDTAnalogClock

A clock.

Author: Digeo.

TDTAnalogGaugue

A gauge.

Author: Digeo.

TDTThemedClock

Another clock.

Author: Digeo.

TDTThemedGauge

Another gauge.

Author: Digeo.

TPSImport_BGRAPascalScript

A component to load BGRABitmap pascal script utilities.

Author: Lainz, Circular.

TBCFluentProgressRing

Progress control in a form of a circle. Also with animated indeterminated state.

Author: hedgehog.

TBCFluentSlider

Simple slider with modern design.

Author: hedgehog.

TBCLeaTheme

Non-visual theme-container that can be used with all the BCLea components. An editor, Theme Builder, is in the /test/test_bclea directory.

Author: Boban Spasic.

TBCLeaLED and TBCLeaQLED

Round and square LED controls. Can also be used as a switch (property clickable).

Author: Boban Spasic.

TBCLeaLCDDisplay

A LCD component with integrated font editor.

Author: Boban Spasic, Werner Pamler.

TBCLeaSelector

A knob to select between predefined items.

Author: Boban Spasic.

TBCLeaRingSlider

An imitation of a potentiometer.

Author: Boban Spasic.

BGRA Custom Drawn

BGRA Custom Drawn is a set of controls inherited from Custom Drawn. These come with a default dark style that is like Photoshop.

Author: Lainz.

TBCDButton

A button control that is styled with TBGRADrawer.

TBCDEdit

An edit control that is styled with TBGRADrawer.

TBCDStaticText

A label control that is styled with TBGRADrawer.

TBCDProgressBar

A progress bar control that is styled with TBGRADrawer.

TBCDSpinEdit

A spin edit control that is styled with TBGRADrawer.

TBCDCheckBox

A check box control that is styled with TBGRADrawer.

TBCRadioButton

A radio button that is styled with TBGRADrawer.

TBCDPanel

A panel control that is styled in its own Paint event.

Sample code

BGRA Controls comes with nice demos to show how to use the stuff and extra things you can use in your own projects.

Contributors: Lainz, Circular, Fred vS, Coasting and others.

Pascal Script Library

Putting BGRABitmap methods into a .dll with c#, java and pascal headers.

BGRA Ribbon Custom

How to create a fully themed window using the controls to achieve a Ribbon like application.

Tests

There are test for analog controls (clock and gauge), BC prefixed controls, BGRA prefixed controls, BGRA Custom Drawn controls, how to use Pascal Script and BGRABitmap, bgrascript or how to create your own scripting solution with BGRABitmap.

Tests Extra

These are extra tests like how to use fading effect, an fpGUI theme, games like maze and puzzle, how we created the material design animation, pix2svg or how to convert a small picture to svg using hexagons, rectangles and ellipses, plugins or how to load .dlls and use into a TBGRAVirtualScreen, rain effect, shadow effect, 9-slice-scaling with Custom Drawn or how to theme with bitmaps an application to look like Windows themes and 9-slice-scaling with charts.

Another units

These units come with BGRA Controls and contains more functionality that is sometimes used with the controls, sometimes not but are usefull in some way. Some are listed here, others you can see linked directly with any control like bcrtti, bcstylesform, bctools, bctypes.

Author: Dibo.

BCEffect

Fading effect with BGRABitmap.

Author: Lainz, Circular.

BCFilters

A set of pixel filters to use with BGRABitmap.

Author: Lainz.

BGRAScript

Scripting with BGRABitmap, see test project.

Author: Lainz.