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

circular17 9a9080d2af Merge pull request #255 from maxm74/dev-imgmanipulation-unit 1 тиждень тому
.github db8dcb1756 fix CI script 10 місяців тому
bgra_pascalscript_library 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 5 роки тому
bgrasvgimagelistform e1aae5ff23 Some fixes in projects 3 роки тому
docs 6817061ba2 New SuperLED component and test program 6 місяців тому
fpdoc fa0c884284 Documenting BCImageButton 6 роки тому
icons 6817061ba2 New SuperLED component and test program 6 місяців тому
images 6817061ba2 New SuperLED component and test program 6 місяців тому
styles d70ce71970 Add BCLeaBoard, update themes and themes builder. 1 рік тому
test 9a9080d2af Merge pull request #255 from maxm74/dev-imgmanipulation-unit 1 тиждень тому
use 23a598893a bump submodules to latest 8 місяців тому
winmake 5605723a59 added Makefile 5 роки тому
.gitignore 4f749b542f using BGRABitmap as submodule 11 місяців тому
.gitmodules 4f749b542f using BGRABitmap as submodule 11 місяців тому
BCExpandPanels.lrs 4eb5a3bbec Added BCExpandPanel Controls 2 роки тому
BCExpandPanels.pas 78048a9353 BCExpandPanels added test; changed DebugInfo; added changelog 2 роки тому
BCExpandPanels.txt 78048a9353 BCExpandPanels added test; changed DebugInfo; added changelog 2 роки тому
COPYING.LGPL.txt 43b704e5e5 update to LGPL 3 5 роки тому
COPYING.modifiedLGPL.txt 43b704e5e5 update to LGPL 3 5 роки тому
Makefile c59e2f25a8 init at top of file, lazbuild trick dependency 5 роки тому
README.md 6817061ba2 New SuperLED component and test program 6 місяців тому
_config.yml d39c35a122 fix CI for Jekyll 8 місяців тому
atshapelinebgra.pas f79e98f7b2 PascalCase unit names, duplicate units, register keyboard 9 місяців тому
bcbasectrls.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 5 роки тому
bcbrightandcontrast.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 5 роки тому
bcbutton.pas 88aac0f2c8 Fixed Compilation Error on Lazarus 4.99 #223 1 рік тому
bcbuttonfocus.pas 88aac0f2c8 Fixed Compilation Error on Lazarus 4.99 #223 1 рік тому
bccheckcombobox.pas 73bae3ef2a Update bccheckcombobox.pas 2 місяців тому
bccombobox.pas 4a1781acff Fix missing 'r' 9 місяців тому
bcdefaultthememanager.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 5 роки тому
bceffect.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 5 роки тому
bcfilters.pas f79e98f7b2 PascalCase unit names, duplicate units, register keyboard 9 місяців тому
bcfluentprogressring.pas 9dfb8bfc34 smoother progress ring 9 місяців тому
bcfluentslider.pas b544a30b27 Update bcfluentslider.pas 1 рік тому
bcgamegrid.pas 1ca2ffc1d0 change resources from LRS to RES 2 роки тому
bcgradientbutton.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 5 роки тому
bcimagebutton.pas 1ca2ffc1d0 change resources from LRS to RES 2 роки тому
bckeyboard.pas 8c3277994b remove dangling $ENDIF 9 місяців тому
bclabel.pas 1ca2ffc1d0 change resources from LRS to RES 2 роки тому
bcleaboard.pas 2865a515e2 Add license details 1 рік тому
bcleaengrave.pas bd0a0cf2e2 Fixing leaks as reported by jamie here: 6 місяців тому
bclealcddisplay.pas d70ce71970 Add BCLeaBoard, update themes and themes builder. 1 рік тому
bclealcddisplay_editor.pas 37d960ff9f BCLea components 1 рік тому
bclealcddisplay_editorform.lfm 37d960ff9f BCLea components 1 рік тому
bclealcddisplay_editorform.pas 37d960ff9f BCLea components 1 рік тому
bclealcddisplay_editorregister.pas 37d960ff9f BCLea components 1 рік тому
bclealed.pas 9189b8055c Fix TBCLeaQLED alignment and phong effect ... 1 рік тому
bcleaqled.pas 9189b8055c Fix TBCLeaQLED alignment and phong effect ... 1 рік тому
bclearingslider.pas 4974d84d24 Fixing the phong effect light position for TBCLeaSelector and TBCLeaRingSlider. 1 рік тому
bcleaselector.pas 4974d84d24 Fixing the phong effect light position for TBCLeaSelector and TBCLeaRingSlider. 1 рік тому
bcleatheme.pas d70ce71970 Add BCLeaBoard, update themes and themes builder. 1 рік тому
bcleatypes.pas 37d960ff9f BCLea components 1 рік тому
bclistbox.pas a144207170 Fix BCPaperPanel 2 роки тому
bclistboxex.pas 8d23c0e7dc Adding BCListBoxEx 5 роки тому
bcmaterialdesignbutton.pas 085cb51d70 Update bcmaterialdesignbutton.pas 2 роки тому
bcmaterialedit.pas 17f0fa2173 Solved Compiler Error on bcmaterialspinedit Cannot access a private field of an object here; 1 рік тому
bcmaterialfloatspinedit.pas 2aecbe283b Adding TBCMaterialFloatSpinEdit methods and properties 1 рік тому
bcmaterialprogressbarmarquee.pas 468d66ec8d BCMaterialProgressBarMarquee enabled and visible 3 роки тому
bcmaterialspinedit.pas 761f91ad8e Adding TBCMaterialSpinEdit methods and properties 1 рік тому
bcmdbutton.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 5 роки тому
bcmdbuttonfocus.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 5 роки тому
bcnumerickeyboard.pas 1c3d406e26 #232 remove hack and avoid ProcessMessages 9 місяців тому
bcpanel.pas 6e5ca311f8 Merge pull request #157 from paweld/master 2 роки тому
bcpaperlistbox.lrs e77538b06a Using .lrs instead of .rc 8 роки тому
bcradialprogressbar.pas 74f7abb6c6 Added missing OnDblClick published props 7 місяців тому
bcroundedimage.pas 8b94471e5f TBCRoundedImage Changed class ancestor to TCustomBGRAGraphicControl; Added TBGRABitmap Bitmap draw; Added Stretch, Proportional, Alignments; Added Demo. 1 рік тому
bcrtti.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 5 роки тому
bcsamples.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 5 роки тому
bcstylesform.lfm 4f2ce5b5d5 - New repository. 12 роки тому
bcstylesform.pas 88aac0f2c8 Fixed Compilation Error on Lazarus 4.99 #223 1 рік тому
bcsvgbutton.pas 1ca2ffc1d0 change resources from LRS to RES 2 роки тому
bcsvgviewer.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 5 роки тому
bcthememanager.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 5 роки тому
bctoolbar.pas 1ca2ffc1d0 change resources from LRS to RES 2 роки тому
bctools.pas af85ce8ec0 add DisabledColor for text 4 роки тому
bctrackbarupdown.pas 73e51bd39a Probable fix for issue #115 1 рік тому
bctypes.pas af85ce8ec0 add DisabledColor for text 4 роки тому
bgracolortheme.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 5 роки тому
bgracontrols.dpk b80ec4f6cd 5.0.1 with delphi compatibility 7 роки тому
bgracontrols.dproj b80ec4f6cd 5.0.1 with delphi compatibility 7 роки тому
bgracontrols.dproj.local b80ec4f6cd 5.0.1 with delphi compatibility 7 роки тому
bgracontrols.inc b80ec4f6cd 5.0.1 with delphi compatibility 7 роки тому
bgracontrols.logic 64864c5060 fix logic file and json 11 місяців тому
bgracontrols.lpk 6817061ba2 New SuperLED component and test program 6 місяців тому
bgracontrols.pas 6817061ba2 New SuperLED component and test program 6 місяців тому
bgracontrols.stat bb3d037c53 Fix compiling in FPC 3.0.4. BGRAControls v6.0.2. 7 роки тому
bgracontrolsinfo.pas 82252f0476 incoming version 9.0.2 9 місяців тому
bgracustomdrawn.pas bd0a0cf2e2 Fixing leaks as reported by jamie here: 6 місяців тому
bgradialogs.pas 0e928f25bc superfluous assignment VerticalAlignment 8 місяців тому
bgraflashprogressbar.pas 74f7abb6c6 Added missing OnDblClick published props 7 місяців тому
bgraformatui.lfm bb33167950 Added FormaUI BuildSaveFormats; code cleanup 10 місяців тому
bgraformatui.pas bb33167950 Added FormaUI BuildSaveFormats; code cleanup 10 місяців тому
bgragraphiccontrol.pas 1ca2ffc1d0 change resources from LRS to RES 2 роки тому
bgraimagelist.pas 54608a9e19 BGRAImageList some fixes; Updated Demo 1 рік тому
bgraimagemanipulation.pas 10bf75ec4a Added EnabledWorkArea to separate the Enabled areas; 6 місяців тому
bgraimagetheme.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 5 роки тому
bgraknob.pas 98a5b7f822 Added options for Linear or Audio taper for the knob. Enhance the test program. 1 рік тому
bgrapascalscript.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 5 роки тому
bgrapascalscriptcomponent.lpk 82252f0476 incoming version 9.0.2 9 місяців тому
bgrapascalscriptcomponent.pas 1f8e71d752 Added BCComboBox 6 роки тому
bgraresizespeedbutton.pas 1ca2ffc1d0 change resources from LRS to RES 2 роки тому
bgrascript.pas c8a9a2f217 need FPC mode 11 місяців тому
bgrashape.pas 7df5a28b31 Fix for Gradient Property changes 7 місяців тому
bgraspeedbutton.pas 1ca2ffc1d0 change resources from LRS to RES 2 роки тому
bgraspriteanimation.pas 0921f2459b #227 use procedure from Types 11 місяців тому
bgrasvgimagelist.pas 615fb7e38f Patch the TXMLConfig memory leak as this will be around for a long time to come 1 рік тому
bgrasvgtheme.pas 05a0938c35 Update bgrasvgtheme.pas 1 рік тому
bgratheme.pas 50384df2b2 AutoSize 4 роки тому
bgrathemebutton.pas af23ad5ca6 Update bgrathemebutton.pas 4 роки тому
bgrathemecheckbox.pas 8bb1d36984 focus checkbox 4 роки тому
bgrathemeradiobutton.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 5 роки тому
bgravirtualscreen.pas 6e5ca311f8 Merge pull request #157 from paweld/master 2 роки тому
colorspeedbutton.pas 6f4f99b222 Update colorspeedbutton.pas 1 рік тому
dtanalogclock.pas 1ca2ffc1d0 change resources from LRS to RES 2 роки тому
dtanalogcommon.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 5 роки тому
dtanalogcommon.pp 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 5 роки тому
dtanaloggauge.pas 1ca2ffc1d0 change resources from LRS to RES 2 роки тому
dtanaloggauge.pp 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 5 роки тому
dtthemedclock.pas f79e98f7b2 PascalCase unit names, duplicate units, register keyboard 9 місяців тому
dtthemedgauge.pas f79e98f7b2 PascalCase unit names, duplicate units, register keyboard 9 місяців тому
fpdoc.bat 70b255acf1 Update fpdoc.bat 6 роки тому
materialcolors.pas 74c8e3242c linking exception available as SPDX (for LGPL-3.0) 5 роки тому
supergauge.pas f63c318d4a Updated AutoScale functionality and Test Program 5 місяців тому
supergaugecommon.pas d3ec108818 V2 SuperGauge, breaking changes with V1. Update Spinner Test program 8 місяців тому
superled.pas 6817061ba2 New SuperLED component and test program 6 місяців тому
superspinner.pas d3ec108818 V2 SuperGauge, breaking changes with V1. Update Spinner Test program 8 місяців тому
superspinnercommon.pas f79e98f7b2 PascalCase unit names, duplicate units, register keyboard 9 місяців тому
update_bgracontrols_force.json 82252f0476 incoming version 9.0.2 9 місяців тому
upsi_bgrapascalscript.pas aca1d5b7e7 license headers (except in generated files) 5 роки тому

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

From v4.4 to v9.0.1.6, the components TBCDefaultThemeManager, TBCKeyboard and TBCNumericKeyboard were not registerd by default to allow Linux users to get a seamless installation with the Online Package Manager not installing third party stuff. From v9.0.1.7, as the necessary package is now part of Lazarus, these components are registered.

If you would like to include/exclude them from the package locally, you may turn on/off the "Register unit" in the package options for each file (bcdefaulthememanager.pas, bckeyboard.pas, bcnumerickeyboard.pas) then compile and rebuild Lazarus. On Linux you may need to install libxtst-dev and libgl-dev.

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.

TBCRoundedImage

A Image Viewer which can show a resized image (even proportionally) or not and with different alignments, it can read both from a TPicture and from a TBGRABitmap.

Author: Lainz, Massimo Magnano.

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 inspired in the old Flash Player Setup for Windows progress dialog. You can change Colors and Style to Normal, MultiProgress (SubTotal and Total), Marquee (with or without Bounce effect), Timer (Countdown), Graph (as the details of Copy File). Also you can use the event OnRedraw to paint custom styles on it like text or override the entire default drawing.

Author: Circular, Massimo Magnano.

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, Massimo Magnano.

TBGRAImageManipulation

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

Author: Emerson Cavalcanti, Massimo Magnano .

TBGRAKnob

Knob A knob that can be styled through properties.

Author: Circular, Sandy Ganz

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.

TSuperLED

SuperLED Flexible nice looking LED display component. Supports fast drawing, many options, easy to use. All BGRA based.

Author: Sandy Ganz

TSuperGauge

SuperGauge Updated and Enhanced Analog Gauge. Many new features, faster drawing, additonal events

Author: Sandy Ganz

TSuperSpinner

SuperSpinner Spinner Knob, many visual settings and options, fast drawing, many supported events

Author: Sandy Ganz

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.

TBCExpandPanel

A Panel that collapses when clicked on the button.

Author: Massimo Magnano, Alexander Roth.

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.