用法要点
- 状态读写用
Checked,状态改变时触发 OnChanged。
- 两种状态各用一张图片:
ImageON 打开、ImageOFF 关闭;不指定图片时按 Color 自绘。
- 可以在开关旁显示文字:
CaptionON、CaptionOFF 分别是两种状态的文字,CaptionAlign 决定文字在左还是在右。
示例
摘自 Demo:MlSkin.MainDemo.v3.0(窗体文件 .dfm)
object mlsknswtchbtn1: TMlSkinSwitchButton
Left = 656
Top = 152
Width = 34
Height = 18
ImageOFF.Active = True
ImageOFF.Image = 'MlSkinSwitch_off'
ImageOFF.Normal = 0
ImageOFF.Hot = 1
ImageOFF.Disable = 0
ImageOFF.Count = 3
ImageOFF.Pressed = 2
ImageON.Active = True
ImageON.Image = 'MlSkinSwitch_on'
ImageON.Normal = 0
ImageON.Hot = 1
ImageON.Disable = 0
ImageON.Count = 3
ImageON.Pressed = 2
Checked = True
属性 10
| 名称 | 类型 | 默认值 | 说明 |
|---|
CanFocused | Boolean | True | 控件是否可以获得焦点。关掉后点击不抢焦点,也不能用 Tab 切换到它。 |
ImageOFF | TPngPictures | — | 关闭状态的开关图片。 |
ImageON | TPngPictures | — | 打开状态的开关图片。 |
Checked | Boolean | False | 开关状态:True 为打开。改变时触发 OnChanged。 |
CustomDraw | TSWBCustomDraw | — | 自绘设置,用于不使用图片时自定义开关的画法。 |
CaptionVisible | Boolean | — | 是否显示文字。做纯图标按钮时关掉。 |
CaptionOFF | string | — | 关闭状态时显示的文字。 |
CaptionON | string | — | 打开状态时显示的文字。 |
CaptionAlign | TMlSwitchButtonCaptionAlign | sbcaLeft | 文字位置:sbcaLeft 在开关左边,sbcaRigth 在开关右边。 |
Color | TColor | clWhite | 未指定图片时,自绘开关使用的颜色。 |
事件 1
| 名称 | 类型 | 默认值 | 说明 |
|---|
OnChanged | TNotifyEvent | — | 开关状态改变时触发。 |
TMlSkinCustomControl 的属性 4
| 名称 | 类型 | 默认值 | 说明 |
|---|
About | TMlAboutInfo | — | 设计期属性。在对象检查器里双击会弹出 MlSkin 的关于窗口,显示组件版本信息;运行时没有作用,也不会保存到 dfm。 |
Transparent | Boolean | True | 背景是否透明。打开后控件不画自己的底色,直接显示窗体的背景(图片或颜色)。 |
AutoInvalidate | Boolean | False | 内容变化时是否自动重绘。动态改属性看不到变化时可以打开。 |
EraseBackground | Boolean | False | 绘制前是否擦除背景。界面闪烁时可以调整这个开关。 |
TMlSkinCustomControl 的事件 4
| 名称 | 类型 | 默认值 | 说明 |
|---|
OnDPIChanged | TMlDPIChangedEvent | — | 屏幕 DPI 改变时触发(例如窗口被拖到另一块不同缩放的显示器上),可在这里重新调整自绘内容。 |
OnBackgroundChanging | TMlBackgroundEvent | — | 背景即将改变时触发,可在这里干预要绘制的背景。 |
OnBackgroundChanged | TMlCustomDrawEvent | — | 背景绘制完成后触发,可在背景之上继续自绘内容。 |
OnVisibleChanged | TNotifyEvent | — | 控件显示或隐藏时触发。 |
本页只列出 MlSkin 新增的属性和事件;Align、Anchors、Font、OnClick 等标准 VCL 属性同样可用,用法与原生控件一致。