Lazarus 自绘控件库。195 个控件全部由 BGRABitmap 绘制,外观由 .tycss 文本主题统一控制,在 Windows、Linux、macOS 上显示效果完全一致。
English: README.en.md · 更新日志: CHANGELOG.md
同一个程序,只换一个主题名:
classic |
win11 |
material3 |
|---|---|---|
![]() |
![]() |
![]() |
三张图是同一个窗口、同一份代码,只改了主题名。主题不只换配色:classic 下按钮是立体边框、方角、渐变标题带。全部内置主题的对照见图库。
| 亮色 | 暗色 | green(图片主题) |
|---|---|---|
![]() |
![]() |
![]() |
亮暗是同一个主题文件里的两套 @mode 取值,可跟随操作系统。green 是照片背景加半透明控件的图片主题。
每个示例每个标签页的亮色、暗色截图都在图库里。
- 195 个控件:按钮、输入、列表、数据网格、虚拟树、Ribbon、日历、Shell 文件浏览、20 个自绘对话框、22 个数据感知控件,一套配齐
- ECharts 式图表:
TTyAdvanceChart的配置就是 Apache ECharts 的 option,ECharts 的文档可以直接参考,示例里的配置原样贴进来;能画折线、柱状、饼图、散点、雷达、热力图、树图、旭日图、桑基图等,坐标轴和文字跟着主题换肤 - 数据感知控件:单独的
tycontrols_db包,22 个控件绑上TDataSource的字段就能用,其中数据表格TTyDBGrid的行为照 LCLTDBGrid - 属性表格:
TTyPropertyGrid在程序运行时列出任意对象的 published 属性,改了直接写回,可多选、按名字过滤、分类显示 - 终端:
TTyTerminalView照 xterm.js 解析输出、编码按键;示例里接上 ConPTY / PTY 就是一个能用的 shell 窗口 - 能派生:大多数控件分成
TTyCustomXxx(实现,不发布属性)和TTyXxx(面板上那个)两层,包装自己的控件时只露想露的属性;派生类自动沿用父类的主题样式,也能登记自己的主题键单独换肤,见 subclassing.md - 三平台一致:完全自绘,不包装原生控件,同一份代码在三个平台上渲染出同样的界面
- 主题换肤:17 个内置主题一个属性切换,支持运行时热切换、跟随系统明暗和强调色;主题是文本文件,改外观不用重编译
- 经典与现代两种风格:从 Win95 / XP 的立体风到 Win11 / Material 的扁平风都能做,控件密度也可整体切换
- HiDPI:矢量绘制,任意缩放比例下清晰;跨屏拖动自动适配新 DPI
- 设计器支持完整:组件面板拖放、容器控件直接拖入、主题效果设计期可见、File → New 工程模板
- 内置 2022 个矢量图标(Lucide),按名字取用,不用则不占体积
- 中英文界面,gettext
.po翻译 - 一万多个单元测试,全套无内存泄漏
| 平台 | Widgetset |
|---|---|
| Windows | Win32 / Win64 |
| Linux | GTK2、Qt5、Qt6;GTK3 部分支持(Wayland 下有已知问题) |
| macOS | Cocoa |
依赖:Lazarus 3.0+、FPC 3.2.2+、BGRABitmap(OPM 包名 BGRABitmapPack)。
1. 安装包
Lazarus 里打开 tycontrols_dt.lpk,点 Use → Install,IDE 重新编译并重启。运行期包 tycontrols.lpk 和数据感知控件包 tycontrols_db.lpk 作为依赖自动安装。
2. 新建工程
File → New… → Project → TyControls 应用程序
模板生成的主窗体已带自绘标题栏、内容容器 Surface 和样式控制器。控件放在 Surface 里(TTyForm 的可视控件都放它上面,图形控件必须放进去,详见 TTyForm 文档)。给已有工程加窗体用 File → New… → Form → TyControls 窗体。
3. 换主题
选中窗体上的 TTyStyleController,把 ThemeName 改成任意内置主题名。设计器里立即生效,运行时改同一个属性即热切换。模板生成的 .lpr 已在启动时调用 TyRegisterBuiltinThemes;用别的方式建的工程也要加上这一行,否则按名字选的内置主题只在设计器里生效。
完整步骤见 docs/getting-started.md。
195 个控件,分 17 个组件面板分页。每个控件的属性、事件、主题键说明见 docs/controls/。
| 控件 | 说明 |
|---|---|
TTyStyleController |
样式控制器:加载主题、切换密度、跟随系统亮暗 |
TTyNativeStyler |
让原生 / 第三方 LCL 控件跟随当前主题着色 |
| 控件 | 说明 |
|---|---|
TTyButton |
按钮,支持 primary / danger / ghost 变体和数字徽标 |
TTyGlyphButton |
带图标的按钮 |
TTyGlyphContainerButton |
只放图标的方形按钮,常用于工具条 |
TTySpeedButton |
可保持按下态的快捷按钮 |
TTyDropDownButton |
分裂按钮:左半执行、右半展开菜单 |
TTyMenuButton |
整个按钮都是下拉触发器 |
TTyColorButton |
显示并选择颜色的按钮 |
TTyButtonGroup |
分段按钮条,相邻段共边、单选 |
| 控件 | 说明 |
|---|---|
TTyLabel |
文本标签,支持自动换行(含中日韩逐字断行)和助记符 |
TTyHtmlLabel |
支持行内 HTML 子集(粗体 / 斜体 / 链接 / 颜色)的标签 |
TTyLinkLabel |
超链接文字 |
TTyShadowLabel |
带投影的标签 |
TTyGlowLabel |
带发光描边的标签 |
TTyTag |
可关闭的标签胶囊 |
TTyBadge |
数字 / 圆点角标,可吸附到任意控件 |
| 控件 | 说明 |
|---|---|
TTyEdit |
单行文本框:选区、剪贴板、词级导航 |
TTyMemo |
多行文本框 |
TTyTerminalView |
终端:画程序输出、把按键编码交给宿主,照 xterm.js;可用独立配色方案(读写 Windows Terminal 格式);带内协议钩子与解析器钩子(示例里有 ZModem 收发) |
TTySpinEdit |
整数微调框 |
TTyFloatSpinEdit |
小数微调框,步长可小于 1 |
TTyNumericEdit |
只接受数字的输入框,失焦时千分位格式化 |
TTyCurrencyEdit |
货币输入框 |
TTyMaskEdit |
掩码输入框(电话、身份证、日期等) |
TTyURLEdit |
网址输入框,尾部带打开按钮 |
TTyComboEdit |
文本框 + 下拉箭头,下拉内容自定义 |
TTyTrackEdit |
内嵌滑块的数值输入框 |
TTyCalcEdit |
内嵌计算器的输入框 |
TTyCalcCurrencyEdit |
货币版计算器输入框 |
TTyCalculator |
独立计算器面板 |
TTyUpDown |
独立的上下微调按钮,可绑定其他控件 |
| 控件 | 说明 |
|---|---|
TTyCheckBox |
复选框,支持三态 |
TTyRadioButton |
单选按钮 |
TTyToggleSwitch |
开关 |
TTyRadioGroup |
带标题框的单选组 |
TTyCheckGroup |
带标题框的复选组 |
TTySegmented |
分段控制器 |
| 控件 | 说明 |
|---|---|
TTyComboBox |
下拉框,可编辑,支持前缀补全 |
TTyListBox |
列表框 |
TTyCheckListBox |
每行带复选框的列表 |
TTyMRUComboBox |
记住最近输入的下拉框 |
TTyComboBoxEx |
每项可带图标的下拉框 |
TTyOfficeComboBox |
带分组标题的下拉框 |
TTyOfficeListBox |
带分组标题的列表 |
TTyAdvancedComboBox |
每项两行(标题 + 副标题 + 图标)的下拉框 |
TTyAdvancedListBox |
每项两行的富列表 |
TTyCheckComboBox |
可多选的下拉框 |
TTyValueListEditor |
名/值编辑器:左键右值,每行可指定编辑器 |
TTyPropertyGrid |
属性表格:列出一个对象的 published 属性,改了直接写回 |
TTyTransfer |
双列表穿梭框 |
TTyTreeSelect |
树形下拉选择器 |
TTyCascader |
级联选择器(省 / 市 / 区) |
| 控件 | 说明 |
|---|---|
TTyColorBox |
颜色下拉框 |
TTyColorComboBox |
颜色下拉框,末尾带「更多…」打开取色对话框 |
TTyColorListBox |
颜色列表 |
TTyColorGrid |
方格调色板 |
TTyLColorPicker |
亮度条取色器 |
TTyHSColorPicker |
色相 / 饱和度取色器 |
TTyFontComboBox |
字体下拉框,逐项用自身字体预览 |
TTyFontListBox |
字体列表 |
TTyFontSizeComboBox |
字号下拉框 |
TTyFilterComboBox |
文件类型过滤下拉框 |
TTyShellComboBox |
目录下拉框 |
| 控件 | 说明 |
|---|---|
TTyGauge |
仪表:线性 / 弧形 / 环形 |
TTyMeter |
指针式仪表盘 |
TTyLevelMeter |
电平表,分段点亮 + 峰值保持 |
TTyDial |
旋钮 |
TTyGearDial |
齿轮外圈旋钮 |
TTyAnalogClock |
模拟时钟 |
TTyCircularProgress |
环形进度 |
TTyActivityIndicator |
旋转忙碌指示环 |
TTyActivityBar |
不确定进度条 |
TTyGearActivityIndicator |
齿轮忙碌指示 |
TTySparkline |
迷你趋势图 |
TTyRating |
星级评分 |
| 控件 | 说明 |
|---|---|
TTyTrackBar |
滑块 |
TTyRangeTrackBar |
区间滑块:一条轨道上一个或多个可拖动的区间 |
TTyMultiTrackBar |
多值滑块:每个滑块可单独设颜色、提示和样式,滑块之间可分段着色 |
TTyGradientTrackBar |
渐变色标编辑器:轨道画成渐变,点击加色标、拖出删除、双击改颜色 |
TTyProgressBar |
进度条 |
TTyScrollBar |
滚动条:可随主题或按控件设置闲置时自动淡出(AutoHide) |
TTyStatusBar |
状态栏 |
TTyToolBar |
工具条 |
TTyToolButton |
工具条按钮:命令 / 开关 / 下拉 / 分组 / 分隔等六种样式 |
TTyToolSeparator |
工具条分隔符 |
TTyToolBarEx |
放不下的按钮自动折进溢出菜单的工具条 |
TTyControlBar |
按宽度自动折行分带的容器 |
TTyCoolBar |
可拖动的带条容器 |
TTyAlert |
内联警告条:信息 / 成功 / 警告 / 错误 |
TTyPagination |
分页器 |
TTySteps |
步骤条 |
TTyBreadcrumb |
面包屑导航 |
TTyHeaderControl |
独立列头条 |
| 控件 | 说明 |
|---|---|
TTyPanel |
面板 |
TTyGroupBox |
分组框 |
TTyCard |
卡片:标题 / 内容 / 操作 |
TTyExPanel |
可折叠面板 |
TTyScrollBox |
滚动容器 |
TTyScrollPanel |
拖到边缘自动滚动的容器 |
TTyGridPanel |
设计器网格容器,格子可直接拖入控件 |
TTyRelativePanel |
按相对关系布局的容器 |
TTyPageControl |
多页容器,页面可直接拖入控件 |
TTyTabSheet |
TTyPageControl 的页 |
TTyTabSet |
纯页签条,不承载页面 |
TTySplitter |
分隔条 |
TTyBevel |
凹凸装饰线 |
TTyDivider |
分隔线,可带标题 |
TTyPaintPanel |
自绘面板 |
TTySizeBox |
右下角尺寸手柄 |
TTyToolGroupPanel |
工具分组容器 |
TTyListGroupPanel |
带分组标题的列表容器 |
TTyTitleBar |
自绘标题栏,配合 TTyForm |
TTyEmpty |
空状态:插画 + 文案 + 操作按钮 |
TTyToolWindowBar |
IDE 式侧栏 / 底栏,工具窗口可拖到另一侧、布局可保存 |
TTyToolWindowManager |
工具窗口的跨侧拖动和布局保存 |
| 控件 | 说明 |
|---|---|
TTyStringGrid |
数据网格:冻结、虚拟化、编辑、筛选、分组、撤销重做 |
TTyDrawGrid |
内容自绘的网格 |
TTyTreeView |
虚拟树,可承载百万节点;多列、三态复选、内联编辑、拖放 |
TTyListView |
列表视图:报表 / 图标 / 平铺等五种视图 + 分组 + 虚拟模式 |
TTyShellTreeView |
文件系统目录树 |
TTyShellListView |
文件系统文件列表 |
TTyCalendar |
日历:日 / 月 / 年下钻 |
TTyDateTimePicker |
日期时间选择器,支持空值 |
TTyImageView |
图片查看器:平移、缩放、滤镜 |
TTyPreviewBox |
文件预览框 |
单独的包 tycontrols_db,绑 TDataSource 的字段即用,外观跟随主题。说明见 docs/controls/dbcontrols.md,数据表格见 docs/controls/dbgrid.md。
| 控件 | 说明 |
|---|---|
TTyDBNavigator |
记录导航条:首 / 上 / 下 / 末、插入、删除、编辑、保存、取消、刷新 |
TTyDBText |
显示字段值的标签 |
TTyDBEdit |
绑字段的单行编辑框 |
TTyDBMaskEdit |
带掩码的编辑框,默认用字段的 EditMask |
TTyDBNumericEdit |
数值编辑框,按数值读写字段 |
TTyDBCurrencyEdit |
货币编辑框,按数值读写字段 |
TTyDBSpinEdit |
整数微调框 |
TTyDBFloatSpinEdit |
小数微调框 |
TTyDBMemo |
绑备注字段的多行编辑框 |
TTyDBCheckBox |
复选框,ValueChecked / ValueUnchecked 对应字段值,空值显示灰态 |
TTyDBToggleSwitch |
开关,对应规则同复选框 |
TTyDBRadioGroup |
单选组,Values 对应字段值 |
TTyDBSegmented |
分段控制器,Values 对应字段值 |
TTyDBRating |
星级评分,绑数值字段 |
TTyDBComboBox |
下拉框,选择或输入字段值 |
TTyDBLookupComboBox |
查找下拉:列另一张表的行,写回键值 |
TTyDBListBox |
列表框,选中项即字段值 |
TTyDBLookupListBox |
查找列表 |
TTyDBImage |
绑 blob 字段的图片,与 LCL TDBImage 的存储格式互通 |
TTyDBDateTimePicker |
日期时间选择器,支持空值 |
TTyDBCalendar |
日历,选中的日期能写回字段 |
TTyDBGrid |
数据表格:一行一条记录,就地编辑、插入、删除、多选,行为照 LCL TDBGrid |
| 控件 | 说明 |
|---|---|
TTyMenuBar |
主菜单栏 |
TTyPopupMenu |
右键菜单 |
TTyImagesMenu |
带图标列的右键菜单,图标取自图像列表 |
TTyMenuEx |
增强右键菜单:在图标列之外加分节标题和侧边横幅 |
| 控件 | 说明 |
|---|---|
TTyRibbon |
Ribbon 主体 |
TTyRibbonPage |
Ribbon 页 |
TTyRibbonGroup |
页内功能组 |
TTyRibbonAppMenu |
应用菜单(File)按钮 |
TTyRibbonQuickAccess |
快速访问工具栏 |
TTyRibbonGallery |
图库,可展开成弹出网格 |
TTyRibbonBackstage |
全窗口后台视图 |
| 控件 | 说明 |
|---|---|
TTyIconFont |
图标字体:按码点或名字取矢量图标,随主题着色 |
TTyLucideIconFont |
内置的 Lucide 图标字体,放上就能用 |
TTyCharImage |
把一个图标字形当图片用 |
TTyImage |
图片控件 |
TTyGlyphImageList |
图标字体驱动的图像列表 |
TTyImageCollection |
多分辨率图像集,按 DPI 取图 |
TTyLucideImageList |
内置 Lucide 图标的图像列表,按名字选图 |
TTyVirtualImageList |
按需生成任意尺寸的图像列表;本身是标准 TCustomImageList,可赋给任何控件,支持按名字取图 |
TTyHint |
主题化提示气泡 |
TTyBalloonHint |
带箭头的气球提示 |
TTyPopover |
可承载控件的气泡浮层 |
内置图标(Lucide):加一行 uses tyControls.Icons.Lucide 就有 2022 个矢量图标,按名字取用:
CharImage1.IconFont := TyLucideFont;
CharImage1.GlyphName := 'house';字体内嵌在单元里,不用随程序分发文件;不 uses 就不进最终程序。组件面板上的 TTyLucideImageList 可以直接当图像列表拖放使用。许可为 ISC / MIT,商用无需署名,随发布带上 THIRD-PARTY-NOTICES.md 即可。
| 控件 | 说明 |
|---|---|
TTyShape |
矢量形状:矩形 / 圆 / 三角 / 菱形 / 星形等 15 种,支持自定义多边形 |
TTyStarShape |
星形,角数可调 |
TTyArrow |
方向箭头 |
TTyChart |
图表:折线 / 柱状 / 饼图 |
TTyAdvanceChart |
高级图表:配置照 Apache ECharts 的 option 写,带缩放、视觉映射、提示框、工具栏 |
| 控件 | 说明 |
|---|---|
TTyMessage |
消息框 |
TTyInputDialog |
文本输入对话框 |
TTyPasswordDialog |
密码输入对话框 |
TTyTextDialog |
多行文本对话框 |
TTySelectValueDialog |
列表单选对话框 |
TTySelectPathDialog |
文件夹选择对话框 |
TTyColorDialog |
取色对话框:HSV / RGB / CMYK / Alpha |
TTyFontDialog |
字体对话框,带实时预览 |
TTyFindDialog |
查找对话框 |
TTyReplaceDialog |
查找替换对话框 |
TTyProgressDialog |
进度对话框 |
TTyAboutDialog |
关于对话框 |
TTyOpenDialog |
打开文件对话框 |
TTySaveDialog |
保存文件对话框 |
TTyOpenPictureDialog |
打开图片对话框,带缩略图 |
TTySavePictureDialog |
保存图片对话框 |
TTyOpenPreviewDialog |
打开对话框 + 自定义预览 |
TTySavePreviewDialog |
保存对话框 + 自定义预览 |
TTyNotification |
角落通知,自动消失 |
TTyIconBrowserDialog |
图标浏览器 |
几个大控件的完整能力见各自文档:grid.md(TTyStringGrid)· treeview.md(TTyTreeView)· ttyform.md(TTyForm)· dbgrid.md(TTyDBGrid)· propertygrid.md(TTyPropertyGrid)· terminal.md(TTyTerminalView)· multitrackbar.md(多滑块)。
内置主题编译进二进制,程序不用带 themes/ 文件夹就能按名切换:
| 主题 | 说明 |
|---|---|
default |
中性基底,亮暗同文件 |
system |
跟随操作系统亮暗和强调色 |
win11 win10 xp classic aero |
Windows 各代风格 |
macos adwaita breeze ubuntu |
macOS 与 Linux 桌面风格 |
material3 fluent antdesign bootstrap |
常见设计体系 |
office |
Office 风格 |
showcase |
展示主题 |
另有图片主题 green(以文件提供)和 themes/palettes/ 调色板。所有主题共用同一套语义变量,--accent 可在运行时覆盖成任意品牌色。
写自己的主题见 docs/themes.md,.tycss 语言参考见 docs/tycss-reference.md。
写主题可以用仓库里的主题编辑器 tools/themebuilder:边写边看预览,也可以接大模型用一句话起草或修改。用法见 docs/themebuilder.md。
52 个示例,每个都可独立构建:lazbuild examples/<名称>/<工程>.lpi。界面跟随系统语言显示中文或英文,每个示例的标题栏上都能换主题、切亮暗。
综合示例
| 示例 | 内容 |
|---|---|
| advchart | 高级图表:Apache ECharts 官方示例库的 244 个配置原样载入,按类别分页;右侧的配置可以直接改了重画,画不了的部分照实列出原因;可存 PNG |
| antdesign | 仿 Ant Design Pro 后台(侧边导航 + 6 页),运行时换肤 |
| dbcontrols | 数据感知控件:21 个控件绑一张内存表,导航、编辑、空值、查找、照片 |
| dbgrid | 数据表格:一千条订单,设计期列(勾选、查找、备注、金额格式),标题点击排序,多选删除,只读开关 |
| demo | 综合演示:五十多种常用控件放在一个窗口里,工具栏切主题、亮暗、强调色、密度,可监视主题文件改动 |
| dialogs | 全部自绘对话框:消息、输入、取色、字体、查找替换、进度、关于、图标浏览器等 |
| grid | 数据网格:冻结 / 百万行 / 排序筛选分组 / 15 种编辑器 / 撤销重做 |
| listview | 列表视图:五种视图 / 分组 / 10 万行虚拟模式 |
| propertygrid | 属性表格:点哪个控件就检查哪个,Ctrl+点击多选,改了直接写回;按名字过滤、分类、只看可写的、显示事件,给字符串表格增删列 |
| ribbon | 用 Ribbon 搭的文本编辑器:功能区、应用菜单、快速访问栏、上下文页、Alt 键提示 |
| rtl | 从右往左镜像与双向文本 |
| terminal | 终端:asciicast 回放、真 shell(ConPTY / PTY / 管道)、ZModem 收发、换肤、配色方案、键码面板 |
| theming | 主题系统:自定义主题文件、强调色、跟随系统、密度、热重载、叠加样式层 |
| toolwindows | IDE 式工作台:左右侧栏 + 底栏、跨侧拖动、保存 / 恢复布局 |
| transitions | 滑入 / 淡入过渡 |
| treeview | 虚拟树:百万节点 / 多列 / 复选 / 内联编辑 / 拖放 |
单控件示例
| 示例 | 内容 |
|---|---|
| button | TTyButton:主按钮 / 危险 / 幽灵变体、默认与取消键、数字徽标、AutoSize |
| buttons | 其他按钮:图标按钮、分组切换、分裂按钮与菜单按钮、取色按钮、分段按钮条 |
| calendar | TTyCalendar:周数、只读、可选日期范围 |
| chart | TTyChart:折线、柱状、饼图、环形图,图例、数值标签、悬停提示、点击命中 |
| checkbox | TTyCheckBox:三态、禁用、OnClick 与 OnChange 的区别、助记符 |
| chromeoverlay | 容器外框保持在子控件上面:卡片、面板、分组框、滚动框、可折叠面板、分页控件;开关前后对比,测重画耗时 |
| combobox | TTyComboBox:只读下拉、可编辑前缀补全、程序控制展开收起 |
| containers | 布局容器:分隔线、凹凸线、自绘面板、分组容器、滚动与折叠面板、网格面板、相对布局、CoolBar 等 |
| datetimepicker | TTyDateTimePicker:日期、时间、可空、只读、限定范围、12 小时制、跟随系统格式 |
| edit | TTyEdit:提示文字、密码、大小写、长度和字符限制、对齐、撤销重做、剪贴板、选区 API |
| filedialog | 六个文件对话框:普通、带图片预览、自定义预览 |
| gauge | 仪表一族:弧形 / 环形 / 线性仪表、指针表、电平表、旋钮、时钟、迷你趋势图、星级、忙碌指示 |
| groupbox | TTyGroupBox:标题对齐、无标题样式、助记符 |
| hint | 主题化提示与气球提示:四种图标、自动消失、常驻、贴屏幕边缘时翻转 |
| htmllabel | TTyHtmlLabel:行内标记与链接、换行、AutoSize |
| icons | 图标与图片:图标字体、内置 Lucide 图标、图像列表、TTyImage 的缩放方式 |
| imageview | TTyImageView:平移缩放、适应窗口、无损滤镜 |
| inputs | 富输入控件:数值、货币、掩码、网址、滑块输入、颜色字体选择、各种下拉和列表、名值编辑器 |
| label | TTyLabel:对齐、透明、AutoSize、自动换行、垂直位置、助记符 |
| labels | 链接标签、投影标签、发光标签 |
| listbox | TTyListBox:多选、排序、行高、程序选择与滚动 |
| memo | TTyMemo:换行、只读、撤销重做、剪贴板、Tab 与回车键处理、长度上限、滚动条 |
| menu | 菜单栏、增强右键菜单、普通主题菜单,以及双击标题栏卷起窗口 |
| panel | TTyPanel:嵌套、标题对齐、StyleOverride、提示与点击 |
| progressbar | TTyProgressBar:动画、竖向、任意范围、点击定位、禁用 |
| radiobutton | TTyRadioButton:分组、GroupIndex、助记符、StyleOverride |
| scrollbar | TTyScrollBar:各种滚动手势、OnScroll 改写目标值、滑块动画、闲置自动隐藏 |
| shapes | 形状控件 + StyleOverride |
| shell | 文件浏览器:目录树、文件列表、位置下拉、类型过滤 |
| spinedit | 整数与小数微调框:范围、步长、对齐、只读、超范围时的处理 |
| splitter | TTySplitter:左右上下分隔、限制窗格尺寸、松开鼠标才落位 |
| statusbar | TTyStatusBar:多面板、尺寸手柄、简单模式、运行时增删面板 |
| tabcontrol | TTyPageControl:增删页、关闭按钮、隐藏页签条 |
| tabset | TTyTabSet:拖动排序、关闭、禁选某页、溢出滚动、助记符 |
| toggleswitch | TTyToggleSwitch:禁用、OnChange 与 OnClick、关闭动画、键盘操作 |
| toolbar | TTyToolBar:自动折行、扁平与立体、六种工具按钮样式、下拉菜单、自绘按钮 |
| trackbar | 滑块:单滑块的刻度、数值和键盘操作,以及区间滑块、多值滑块、渐变色标编辑器 |
| 文档 | 内容 |
|---|---|
| getting-started.md | 安装、第一个窗体、主题、HiDPI |
| controls/ | 逐控件 API 说明 |
| themes.md | 写自己的主题 |
| tycss-reference.md | .tycss 语言参考 |
| themebuilder.md | 主题编辑器的用法 |
| events.md | 通用事件约定 |
| subclassing.md | 从 TTyCustomXxx 派生自己的控件;从 3.0 升级 |
| rtl.md | 双向文本与右到左布局 |
| lcl-differences.md | 与 LCL 的有意差异(移植时留意) |
| known-issues.md | 已知问题 |
| CHANGELOG.md | 更新日志 |
| CONTRIBUTING.md | 报告问题、功能建议、提交代码、路线图 |
库自带中英文界面。LCL 的 SetDefaultLang 只加载应用自己的 .po,库的翻译要多加一行:
uses ..., LCLTranslator;
SetDefaultLang('', LangDir); // 应用
TranslateUnitResourceStringsEx('', LangDir, 'tycontrols', 'tyControls.StrConsts'); // 控件库部署时把 languages/tycontrols.<语言>.po 与应用自己的 .po 放在同一个 languages/ 目录。注意几点:
- 部署文件名是
tycontrols.<语言>.po,由源码里的tycontrols.strconsts.<语言>.po改名而来。第三个参数必须传'tycontrols'(不能带点,LCL 会把点号后面当扩展名剥掉),第四个参数传真实单元名tyControls.StrConsts。 - 英文部署也要带
tycontrols.en.po,它是日历和日期框的月份、星期名跟随应用语言的开关。 - 用了数据感知控件(
tycontrols_db)的,再加一行TranslateUnitResourceStringsEx('', LangDir, 'tycontrols_db', 'tyControls.DB.StrConsts'),部署tycontrols.db.strconsts.<语言>.po改名后的tycontrols_db.<语言>.po。
完整示例见 examples/demo。
修改版 LGPL,与 FPC RTL / LCL / BGRABitmap 相同:可以静态链接进闭源商业软件分发;修改库本身的源码时,修改部分需以同样许可开放。
完整条款见 COPYING.modifiedLGPL.txt 与 COPYING.LGPL.txt。
















