TMlSkinIconButtonList

图标列表控件,把项目排成一格格的图标按钮,类似手机桌面的图标排布,支持拖动排序。

分类
列表与下拉框
所在单元
uMlSkinIconButtonList.pas
继承自
TMlSkinCustomIconButtonListTMlSkinCustomPanelTMlSkinCustomControl

用法要点

  • 每格的大小用 ItemWidth 和基类的 ItemHeight 设定,间距用 ItemSpaceSize
  • AutoDrag 打开后可以拖动图标调整顺序;ShakeInEdit 让编辑状态下的图标抖动,提示可以拖动或删除。
  • MultiChecked 打开后可以多选。
  • 点击图标触发 OnClickItem,点击删除按钮触发 OnDeleteClick

示例

摘自 Demo:MlSkin.Demo.按钮列表组件.v3.0(窗体文件 .dfm)

object lst1: TMlSkinIconButtonList
  Left = 14
  Top = 48
  Width = 361
  Height = 369
  Items = <>
  Images = il1
  ItemWidth = 60
  ItemHeight = 80
  ShakeInEdit = True
  OnClickItem = lst1ClickItem
  Anchors = [akLeft, akTop, akBottom]
end

属性 24

名称类型默认值说明
AutoDragBooleanTrue是否允许拖动图标调整顺序。
AlignWithItemsTMlItemHAlignihaLeft项目在控件内的水平对齐方式:ihaLeft 靠左、ihaCenter 居中、ihaRight 靠右。
CaptionVisibleBooleanTrue是否显示文字。做纯图标按钮时关掉。
CaptionWordWarpBooleanTrue图标下方的文字是否换行显示。
ItemsTMlIconButtonItems控件的项目集合,在对象检查器里展开可逐项编辑。
ImagesTCustomImageList图标来源的 ImageList。
ItemWidthInteger每一项的宽度(像素)。
ItemHeightInteger每一项的高度(像素)。
ItemSpaceSizeInteger10项目之间的间距(像素)。
ItemHotImageTMlResID鼠标移到图标上时显示的背景图片。
MarginBorderSizeInteger10内容与控件边缘的间距(像素)。
MultiCheckedBooleanTrue是否允许同时选中多个图标。
ShakeInEditBooleanFalse编辑状态下图标是否抖动,用来提示可以拖动或删除(类似手机桌面的编辑模式)。
ScrollSizeInteger30滚动条的宽度(像素)。
PressedOffsetInteger1按下时内容向右下偏移的像素数,用来做按下去的效果,0 表示不偏移。
HideScrollbarBooleanFalse是否隐藏滚动条(内容仍然可以滚动)。
AlphaByte192透明度,0 为完全透明、255 为不透明。
BorderSidesTSides画哪几条边框(上、下、左、右可任意组合)。
BorderColorTColor$00D9CBBA边框颜色。
ColorTColorclWhite控件的底色。Transparent 打开时不生效。
BackgroundImageTMlResID背景图片,填图片资源 ID 或图片文件路径。
BackgroundOffsetXInteger0背景图片的横向偏移(像素)。
BackgroundOffsetYInteger0背景图片的纵向偏移(像素)。
DoubleBorderBooleanTrue双层边框,在边框内侧再画一条线。

事件 6

名称类型默认值说明
OnClickItemTItem点击某一项时触发。
OnDrawItemTMlIconButtonItemDrawEnvent绘制某一项时触发,可以自定义该项的外观。
OnDeleteClickTItemDeleteEvent点击项目上的删除按钮时触发,通常在这里把该项移除。
OnGetCursorTMlGetCursorEvent取鼠标指针形状时触发,可针对不同区域返回不同指针。
OnHotChangedTItemHot鼠标悬停的项目发生变化时触发。
OnFocusChangingTStateChange焦点项目即将改变时触发。
TMlSkinCustomPanel 的事件 1
名称类型默认值说明
OnCustomDrawTMlCustomDrawEvent自绘事件,可在控件画完后继续绘制自己的内容。
TMlSkinCustomControl 的属性 4
名称类型默认值说明
AboutTMlAboutInfo设计期属性。在对象检查器里双击会弹出 MlSkin 的关于窗口,显示组件版本信息;运行时没有作用,也不会保存到 dfm。
TransparentBooleanTrue背景是否透明。打开后控件不画自己的底色,直接显示窗体的背景(图片或颜色)。
AutoInvalidateBooleanFalse内容变化时是否自动重绘。动态改属性看不到变化时可以打开。
EraseBackgroundBooleanFalse绘制前是否擦除背景。界面闪烁时可以调整这个开关。
TMlSkinCustomControl 的事件 4
名称类型默认值说明
OnDPIChangedTMlDPIChangedEvent屏幕 DPI 改变时触发(例如窗口被拖到另一块不同缩放的显示器上),可在这里重新调整自绘内容。
OnBackgroundChangingTMlBackgroundEvent背景即将改变时触发,可在这里干预要绘制的背景。
OnBackgroundChangedTMlCustomDrawEvent背景绘制完成后触发,可在背景之上继续自绘内容。
OnVisibleChangedTNotifyEvent控件显示或隐藏时触发。

本页只列出 MlSkin 新增的属性和事件;Align、Anchors、Font、OnClick 等标准 VCL 属性同样可用,用法与原生控件一致。

离线帮助文档需要离线查阅时,可下载 PDF / CHM 版帮助文档。