TMlSkinToolButton

A stand-alone tool button, usually an icon with a caption, for hand-built toolbars and panels.

Category
Buttons & toolbars
Unit
uMlSkinButton.pas
Inherits from
TMlSkinCustomButtonTMlSkinCustomControl

Notes

  • The icon comes from Image (a single picture) or Pictures (a multi-state picture).
  • Light adds a glow to the button.
  • ImageOffset and CaptionOffset nudge the icon and the caption into place.

Example

From the demo MlSkin.Demo.360安全卫士.v3.1 (.dfm form file)

object btnLoadPicture: TMlSkinToolButton
  Left = 3
  Top = 10
  Width = 72
  Height = 22
  AutoInvalidate = True
  Down = False
  HotFont.Charset = DEFAULT_CHARSET
  HotFont.Color = clWindowText
  HotFont.Height = -12
  HotFont.Name = 'Tahoma'
  HotFont.Style = []
  DropdownMenuOffset.X = -4
  DropdownMenuOffset.Y = -4
  Action = actLoadPicture
  DoubleBuffered = False
  TabOrder = 1
  TabStop = True
  Pictures.Active = True
  Pictures.Image = 'MlSkinFlatBtn'

Properties 10

NameTypeDefaultDescription
DropdownMenuTPopupMenuThe popup menu to attach. Once set, the button shows a dropdown arrow and clicking it opens the menu.
PicturesTPngPicturesThe images used by the control, split into frames per state: unchecked, checked, hot, disabled.
LayerModeBooleanFalseEnables layer mode; only then is the image in Layers drawn.
LayersTPngPicturesAn image layer drawn on top of the button, usually an icon. It is kept separate from the button background so the icon can change without redrawing the button.
LayersOffsetTMlBtnItemOffsetOffset (X, Y) of the layer inside the button.
CaptionVisibleBooleanWhether the caption is drawn. Turn it off for icon-only buttons.
CaptionOffsetTMlBtnItemOffsetOffset (X, Y) of the caption inside the control, for fine positioning.
ImageOffsetTMlBtnItemOffsetOffset (X, Y) of the icon inside the control.
ImageTMlResIDThe button icon, given as an image ID or file path.
LightTMlLightClassGlow effect for the button: switch, glow color and blur radius.
Properties of TMlSkinCustomButton 15
NameTypeDefaultDescription
AboutTMlAboutInfoA design-time property: double-clicking it in the Object Inspector opens the MLSkin about box with the component version. It has no effect at run time and is not stored in the .dfm.
AllowAllUpBooleanFalseWhether all buttons in the group may be up at once. With it off, one button in the group always stays down.
IgnoreMouseBooleanFalseIgnores the mouse: the control stops responding and events pass through to whatever is underneath.
CycleDownClickBooleanFalseRepeats the click while the button is held down — useful for spin-style buttons. It fires OnCycleDownClick.
WordWrapBooleanFalseWhether long captions wrap to the next line.
DownBooleanWhether the button is in the pressed state; combined with GroupIndex it behaves like a toggle or a tab.
HotFontTFontFont used while the mouse is over the control, typically a different color or an underline for the hover effect.
GroupIndexInteger0Group number: buttons sharing a number are mutually exclusive, so only one stays down. 0 means no grouping.
DropdownMenuOffsetTMlBtnItemOffsetOffset (X, Y) applied to where the dropdown menu pops up.
PressedOffsetInteger1How many pixels the content shifts down-right while pressed, giving the push-in effect; 0 means no shift.
CanFocusedBooleanTrueWhether the control can take focus. With it off, clicking does not steal focus and Tab skips it.
DefaultBooleanFalseMarks the default button: pressing Enter on the form clicks it.
CancelBooleanFalseMarks the cancel button: pressing Esc on the form clicks it.
ModalResultTModalResult0The result returned to a modal form when the button is clicked, exactly as on the stock button.
ShowFocusFrameBooleanFalseWhether the dotted focus rectangle is drawn.
Events of TMlSkinCustomButton 2
NameTypeDefaultDescription
OnCustomPaintTCustomPaintEventCustom paint event: take over drawing here when you want to paint the button yourself.
OnCycleDownClickTNotifyEventFires repeatedly while the button is held down; requires CycleDownClick.
Properties of TMlSkinCustomControl 5
NameTypeDefaultDescription
AboutTMlAboutInfoA design-time property: double-clicking it in the Object Inspector opens the MLSkin about box with the component version. It has no effect at run time and is not stored in the .dfm.
TransparentBooleanTrueTransparent background: the control skips its own fill and shows the form background (image or color) instead.
ColorTColorclWhiteBackground color of the control; ignored while Transparent is on.
AutoInvalidateBooleanFalseRepaints automatically when the content changes. Turn it on if property changes do not show up.
EraseBackgroundBooleanFalseWhether the background is erased before painting; worth toggling if the control flickers.
Events of TMlSkinCustomControl 4
NameTypeDefaultDescription
OnDPIChangedTMlDPIChangedEventFires when the screen DPI changes, for example when the window moves to a monitor with a different scaling — a good place to re-adjust anything you draw yourself.
OnBackgroundChangingTMlBackgroundEventFires just before the background changes, giving you a chance to adjust what is drawn.
OnBackgroundChangedTMlCustomDrawEventFires after the background has been drawn, so you can paint on top of it.
OnVisibleChangedTNotifyEventFires when the control is shown or hidden.

Only the properties and events MLSkin adds are listed here. Standard VCL properties such as Align, Anchors, Font and OnClick are available too and behave exactly as on the stock controls.

Offline helpA PDF / CHM version is available for offline reading.