用法要点
Kind 决定只选日期(tkDate)还是日期加时间(tkDateTime)。
- 结果从
Date 和 Time 读取,显示格式用 Format 指定。
- 可选范围用
MinDate、MaxDate 限制。
- 一批
Define...Text 属性用来改弹出面板上的文字(星期、今天、确定等),做多语言界面时会用到。
AutoClose 打开后点选日期就关闭面板;关掉则要点确定,方便先选日期再选时间。
示例
摘自 Demo:MlSkin.MainDemo.v3.0(窗体文件 .dfm)
object dp1: TMlSkinDatetimePicker
Left = 781
Top = 148
Width = 145
Height = 26
Cursor = crIBeam
FontHint.Charset = DEFAULT_CHARSET
FontHint.Color = 11711154
FontHint.Height = -11
FontHint.Name = 'Tahoma'
FontHint.Style = []
BorderNormal = 'MlSkinBorderNormal'
BorderHot = 'MlSkinBorderHot'
EdItems = <
...
属性 30
| 名称 | 类型 | 默认值 | 说明 |
|---|
AutoClose | Boolean | True | 选中日期后是否自动关闭弹出面板。关掉后需点「确定」,适合同时选日期和时间。 |
Kind | TMlDateTimeKind | tkDateTime | 选择内容:tkDate 只选日期,tkDateTime 日期加时间。 |
Format | string | — | 显示格式字符串,例如 yyyy-mm-dd。 |
Date | TDate | — | 当前选中的日期。 |
Time | TTime | — | 当前选中的时间(Kind 为 tkDateTime 时有效)。 |
MaxDate | TDate | — | 可选择的最晚日期。 |
MinDate | TDate | — | 可选择的最早日期。 |
DefineHourText | string | — | 弹出面板上「时」的文字,用于多语言。 |
DefineMinuteText | string | — | 弹出面板上「分」的文字。 |
DefineSecondsText | string | — | 弹出面板上「秒」的文字。 |
DefineClearText | string | — | 弹出面板上「清空」按钮的文字。 |
DefineTodayText | string | — | 弹出面板上「今天」按钮的文字。 |
DefineOKText | string | — | 弹出面板上「确定」按钮的文字。 |
DefineTimeText | string | — | 弹出面板上「时间」的文字。 |
DefineSuText | string | — | 星期日的文字。 |
DefineMoText | string | — | 星期一的文字。 |
DefineTuText | string | — | 星期二的文字。 |
DefineWeText | string | — | 星期三的文字。 |
DefineThText | string | — | 星期四的文字。 |
DefineFrText | string | — | 星期五的文字。 |
DefineSaText | string | — | 星期六的文字。 |
FontHint | TFont | — | 提示文字的字体,通常设成比正文更浅的颜色。 |
BorderNormal | TMlResID | — | 正常状态的边框图片,填图片 ID 或路径。 |
BorderHot | TMlResID | — | 鼠标移上或获得焦点时的边框图片。 |
ReadOnly | Boolean | False | 只读,用户不能修改内容,但可以选中和复制。 |
Text | string | — | 控件中显示或输入的文字。 |
TextHint | string | — | 提示文字(占位符),内容为空时以浅色显示,例如「请输入关键字」。 |
MaxLength | Integer | 0 | 最多可输入的字符数,0 表示不限制。 |
EdItems | TMlEditItems | — | 输入框内部的小控件集合。每一项可设图片(正常/悬停/按下)、文字、位置、是否可见,用来做清空、搜索、显示密码一类的按钮。 |
Space | TMlSpaceSize | — | 文字与边框之间的内边距(左、上、右、下),需要先打开它的 Active。 |
事件 2
| 名称 | 类型 | 默认值 | 说明 |
|---|
OnChange | TNotifyEvent | — | 内容改变时触发。 |
OnPickDone | TNotifyEvent | — | 选择完成(确定或自动关闭)后触发。 |
TMlSkinEdit 的属性 6
| 名称 | 类型 | 默认值 | 说明 |
|---|
AutoSelect | Boolean | True | 获得焦点时自动全选已有文字。 |
ShowCheckBox | Boolean | False | 在输入框左侧显示勾选框,状态由 Checked 读写。 |
CharCase | TEditCharCase | ecNormal | 字母大小写转换:原样、全大写或全小写。 |
Checked | Boolean | False | 勾选状态。 |
BorderVisible | Boolean | True | 是否显示边框。 |
TextKind | TMlTextKind | tkAll | 限制可输入的内容:tkAll 不限、tkEN 只能英文、tkNumInt 只能整数、tkNumReal 只能数字(含小数、负号)、tkENandNum 英文加数字。 |
TMlSkinPngEdit 的属性 3
| 名称 | 类型 | 默认值 | 说明 |
|---|
TextHintHideInKey | Boolean | False | 提示文字何时消失:打开后光标进入不消失,直到真正输入字符才隐藏。 |
CursorColor | TColor | clBlack | 光标(插入符)的颜色。 |
DisableIME | Boolean | False | 禁用输入法,只能输入英文和数字,适合账号、序列号一类的输入框。 |
TMlSkinCustomControl 的属性 5
| 名称 | 类型 | 默认值 | 说明 |
|---|
About | TMlAboutInfo | — | 设计期属性。在对象检查器里双击会弹出 MlSkin 的关于窗口,显示组件版本信息;运行时没有作用,也不会保存到 dfm。 |
Transparent | Boolean | True | 背景是否透明。打开后控件不画自己的底色,直接显示窗体的背景(图片或颜色)。 |
Color | TColor | clWhite | 控件的底色。Transparent 打开时不生效。 |
AutoInvalidate | Boolean | False | 内容变化时是否自动重绘。动态改属性看不到变化时可以打开。 |
EraseBackground | Boolean | False | 绘制前是否擦除背景。界面闪烁时可以调整这个开关。 |
TMlSkinCustomControl 的事件 4
| 名称 | 类型 | 默认值 | 说明 |
|---|
OnDPIChanged | TMlDPIChangedEvent | — | 屏幕 DPI 改变时触发(例如窗口被拖到另一块不同缩放的显示器上),可在这里重新调整自绘内容。 |
OnBackgroundChanging | TMlBackgroundEvent | — | 背景即将改变时触发,可在这里干预要绘制的背景。 |
OnBackgroundChanged | TMlCustomDrawEvent | — | 背景绘制完成后触发,可在背景之上继续自绘内容。 |
OnVisibleChanged | TNotifyEvent | — | 控件显示或隐藏时触发。 |
本页只列出 MlSkin 新增的属性和事件;Align、Anchors、Font、OnClick 等标准 VCL 属性同样可用,用法与原生控件一致。