Skip to content
🆗 BGRA Controls is a set of graphical UI elements that you can use with Lazarus LCL applications.
Pascal Other
  1. Pascal 99.4%
  2. Other 0.6%
Branch: master
Clone or download
Latest commit f83c5fe Aug 18, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bgra_pascalscript_library Separated pascal script units. Removed unnecessary dependencies. Oct 12, 2016
docs Added macOS 64 build modes for several projects. Added screenshots. Jun 3, 2018
icons Added SVG Button. Jun 16, 2018
images Added BGRAThemeCheckBox Aug 10, 2019
lcl 5.0.1 with delphi compatibility Nov 30, 2018
mouseandkeyinput Removed unnecessary BGRAToColor and ColorToBGRA. Revised hints. Oct 19, 2016
styles style editor for combobox (double-click on control in designer to open) Aug 9, 2019
test merge diff bcbutton into bcbuttonfocus Aug 14, 2019
.gitignore dont free form on click to avoid error Jul 31, 2019
README.md Added SVG Button. Jun 16, 2018
_config.yml Update _config.yml Jan 1, 2017
bcbasectrls.pas unused units Jan 10, 2019
bcbrightandcontrast.pas 5.0.1 with delphi compatibility Nov 30, 2018
bcbutton.pas inner margin, update size on image list change Aug 14, 2019
bcbuttonfocus.pas merge diff bcbutton into bcbuttonfocus Aug 14, 2019
bccombobox.pas fix combobox dropdown size on windows Aug 18, 2019
bcdefaultthememanager.pas 5.0.1 with delphi compatibility Nov 30, 2018
bceffect.pas 5.0.1 with delphi compatibility Nov 30, 2018
bcfilters.pas 5.0.1 with delphi compatibility Nov 30, 2018
bcgamegrid.pas 5.0.1 with delphi compatibility Nov 30, 2018
bcgradientbutton.pas less warnings/hints Aug 14, 2019
bcimagebutton.pas Change optimization level to O3. Hide hints. Jan 28, 2019
bckeyboard.pas 5.0.1 with delphi compatibility Nov 30, 2018
bclabel.pas 5.0.1 with delphi compatibility Nov 30, 2018
bclistbox.pas unused units Jan 10, 2019
bcmaterialdesignbutton.pas less warnings/hints Aug 14, 2019
bcmdbutton.pas Fix compiling in FPC 3.0.4. BGRAControls v6.0.2. Dec 6, 2018
bcmdbuttonfocus.pas Add all changes from 5.0.1 to 5.0.3 Dec 1, 2018
bcnumerickeyboard.pas uses clause fix Feb 11, 2019
bcpanel.pas 5.0.1 with delphi compatibility Nov 30, 2018
bcpaperlistbox.lrs Using .lrs instead of .rc Apr 14, 2017
bcradialprogressbar.pas 5.0.1 with delphi compatibility Nov 30, 2018
bcreg.pas 5.0.1 with delphi compatibility Nov 30, 2018
bcrtti.pas Change optimization level to O3. Hide hints. Jan 28, 2019
bcsamples.pas 5.0.1 with delphi compatibility Nov 30, 2018
bcstylesform.lfm - New repository. Apr 8, 2014
bcstylesform.pas 5.0.1 with delphi compatibility Nov 30, 2018
bcsvgbutton.pas Added BorderSpacing, Constraints properties to BCSVGViewer and BCSVGB… Jan 7, 2019
bcsvgviewer.pas Added BorderSpacing, Constraints properties to BCSVGViewer and BCSVGB… Jan 7, 2019
bcthememanager.pas 5.0.1 with delphi compatibility Nov 30, 2018
bctoolbar.pas 5.0.1 with delphi compatibility Nov 30, 2018
bctools.pas glyph horiz margin to go with text padding Aug 14, 2019
bctrackbarupdown.pas added AllowNegativeValues Jul 31, 2019
bctypes.pas default property values can't be used because of custom style Aug 8, 2019
bgracolortheme.pas Added BGRAThemeCheckBox Aug 10, 2019
bgracontrols.dpk 5.0.1 with delphi compatibility Nov 30, 2018
bgracontrols.dproj 5.0.1 with delphi compatibility Nov 30, 2018
bgracontrols.dproj.local 5.0.1 with delphi compatibility Nov 30, 2018
bgracontrols.inc 5.0.1 with delphi compatibility Nov 30, 2018
bgracontrols.logic BGRAControls.logic and BGRAControlsInfo.pas Apr 25, 2019
bgracontrols.lpk 6.5 Aug 18, 2019
bgracontrols.pas Added BGRAThemeCheckBox Aug 10, 2019
bgracontrols.stat Fix compiling in FPC 3.0.4. BGRAControls v6.0.2. Dec 6, 2018
bgracontrolsinfo.pas 6.5 Aug 18, 2019
bgracustomdrawn.pas 5.0.1 with delphi compatibility Nov 30, 2018
bgraflashprogressbar.pas Add all changes from 5.0.1 to 5.0.3 Dec 1, 2018
bgragraphiccontrol.pas 5.0.1 with delphi compatibility Nov 30, 2018
bgraimagelist.pas 5.0.1 with delphi compatibility Nov 30, 2018
bgraimagemanipulation.pas less warnings/hints Aug 14, 2019
bgraimagetheme.pas avoid warnings Feb 11, 2019
bgraknob.pas 5.0.1 with delphi compatibility Nov 30, 2018
bgrapascalscript.pas
bgrapascalscriptcomponent.lpk 6.5 Aug 18, 2019
bgrapascalscriptcomponent.pas
bgraresizespeedbutton.pas Add all changes from 5.0.1 to 5.0.3 Dec 1, 2018
bgrascript.pas 5.0.1 with delphi compatibility Nov 30, 2018
bgrashape.pas 5.0.1 with delphi compatibility Nov 30, 2018
bgraspeedbutton.pas Add all changes from 5.0.1 to 5.0.3 Dec 1, 2018
bgraspriteanimation.pas Added again commit changes from e855c85 Dec 1, 2018
bgratheme.pas Added BGRAThemeCheckBox Aug 10, 2019
bgrathemebutton.pas add BGRABitmapTypes to use TRectHelper.Contains(TPoint) Feb 20, 2019
bgrathemecheckbox.pas Added BGRAThemeCheckBox Aug 10, 2019
bgrathemeradiobutton.pas Fix MouseDown for RadioButton Aug 10, 2019
bgravirtualscreen.pas added DiscardBitmap(ARect) May 24, 2019
colorspeedbutton.pas less warnings/hints Aug 14, 2019
dtanalogclock.pas 5.0.1 with delphi compatibility Nov 30, 2018
dtanalogcommon.pas 5.0.1 with delphi compatibility Nov 30, 2018
dtanalogcommon.pp Removed unnecessary BGRAToColor and ColorToBGRA. Revised hints. Oct 19, 2016
dtanaloggauge.pas 5.0.1 with delphi compatibility Nov 30, 2018
dtanaloggauge.pp
dtthemedclock.pas 5.0.1 with delphi compatibility Nov 30, 2018
dtthemedgauge.pas 5.0.1 with delphi compatibility Nov 30, 2018
dtthemedgauge.pp new icons Dec 27, 2017
materialcolors.pas Fix compiling in FPC 3.0.4. BGRAControls v6.0.2. Dec 6, 2018
update_bgracontrols_force.json 6.5 Aug 18, 2019
upsi_bgrapascalscript.pas 5.0.1 with delphi compatibility Nov 30, 2018

README.md

BGRA Controls

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

Support Us

If you like BGRAControls please support @lainz on Patreon and 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.

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.

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.

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.

You can’t perform that action at this time.