Material Design Components for Lazarus, painted with BGRABitmap. Licensed as LGPL v3. 2018 by Lainz.
This component is now part of BGRAControls, is a big step to include this component into a bigger package but it can be done without issues.
This control can act as a normal button, toggle, toggle group, checkbox and radiobutton.
Drop a MDButton from the Material Design component pallete. By default it has no animation and the colors of a basic Material Design button. You can set the properties you need, listed below.
- Animation: show or not the ripple effect. Default value: false.
- Checked: used with any mode, it shows the button "down" state, and aditionally a glyph (radio button glyph or checkbox glyph). Default value: false.
- Kind: it allows you to select the behaviour of the control (normal, toggle, toggle group, checkbox, radiobutton and tab).
- Style: Normal, Hover, Active and Disabled colors for button and text.
You can use this button with other control functionality like checkbox and radiobutton.
With this mode, you can select (Checked: true), unselect, invert selection and get selected controls in a group. It's better than you group in a regular TPanel all checkbox buttons.
Whit this mode, you can select (Checked: true) only one button at a time. You can get the selected control with the method GetSelected explained below. It's better than you group in a regular TPanel all radio buttons.
Like CheckBox mode, but no glyph is added.
Like RadioButton mode, but no glyph is added.
You can use it like a tab button, to choose only one at a time, and has an animation when you select it.
These methods works when a set of MDButton are grouped (better on a Panel). Just call the method on any of the controls in the group.
- SelectAll: set all controls Checked property to true. Used when "Kind" property is toggle group or checkbox.
- UnselectAll: set all controls Checked property to false. Used when "Kind" property is toggle group or checkbox.
- InvertSelection: set all controls Checked property to the opposite. Used when "Kind" property is toggle group or checkbox.
- GetSelected: returns a TStringList containing the caption and the MDButton (Objects) that has the property Checked set to true.
- Animate only one button at a time: with this define, you can limit the number of animations being played at the same time in the whole application for all MDButton controls. Enabled by default.
{$DEFINE MDBUTTON_ANIMATEONLYONE}
- CheckBox and RadioButton glyphs: you can change in the source of MDButton or by code the next global variables. Notice that the font you use must have these glyphs in each target OS. Modern OS should already have them.
var
MDBUTTONBALLOTBOX: string = '✗';
MDBUTTONBALLOTBOXWITHCHECK: string = '✓';
MDBUTTONRADIOBUTTON: string = '🔘';
MDBUTTONRADIOBUTTONCIRCLE: string = '◯';