Catalog · How the catalog works
TyControls
A skinnable / styleable Lazarus component library: every control is fully custom-drawn (BGRABitmap) and its appearance is driven uniformly by lightweight CSS-lite text themes (.tycss), rendering pixel-identical on Windows / Linux / macOS.
- ★ 81 on GitHub
Anyone may press Interesting, signed in or not. It helps others find this project.
In the Online Package Manager
Install it from inside Lazarus through Package, Online Package Manager.
README
TyControls
Lazarus 自绘控件库。195 个控件全部由 BGRABitmap 绘制,外观由 .tycss 文本主题统一控制,在 Windows、Linux、macOS 上显示效果完全一致。
English: README.en.md · 更新日志: CHANGELOG.md

同一个程序,只换一个主题名:
classic |
win11 |
material3 |
|---|---|---|
![]() |
![]() |
![]() |
三张图是同一个窗口、同一份代码,只改了主题名。主题不只换配色:classic 下按钮是立体边框、方角、渐变标题带。全部内置主题的对照见图库。
亮 / 暗 / 图片主题
| 亮色 | 暗色 | green(图片主题) |
|---|---|---|
![]() |
![]() |
![]() |
亮暗是同一个主题文件里的两套 @mode 取值,可跟随操作系统。green 是照片背景加半透明控件的图片主题。
几个控件的样子
TTyStringGrid 按列指定编辑器:复选、星级、取色、按钮 |
|
![]() |
TTyTreeView 虚拟树、多列、三态复选 |
![]() |
|
| 富输入控件 数值 / 货币 / 掩码 / 滑块 / 计算器 | |
![]() |
TTyChart 折线、柱状、饼图、环形图 |
TTyRibbon 功能区、快速访问栏、Alt 键提示 |
|
TTyCalendar 周数、今日高亮、可选日期范围 |
|
TTyAdvanceChart 直接读 ECharts 的配置,示例里是官方图库的例子 |
|
TTyDBGrid 绑数据集的表格:勾选、查找下拉、格式化金额、多选 |
|
TTyPropertyGrid 属性表格:点哪个控件就检查哪个,改了直接写回 |
|
| 多滑块 TrackBar 区间、多值、渐变色标 | |
每个示例每个标签页的亮色、暗色截图都在图库里。
特性
- 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/。
核心 · TyControls(2)
| 控件 | 说明 |
|---|---|
TTyStyleController |
样式控制器:加载主题、切换密度、跟随系统亮暗 |
TTyNativeStyler |
让原生 / 第三方 LCL 控件跟随当前主题着色 |
按钮 · TyControls Buttons(8)
| 控件 | 说明 |
|---|---|
TTyButton |
按钮,支持 primary / danger / ghost 变体和数字徽标 |
TTyGlyphButton |
带图标的按钮 |
TTyGlyphContainerButton |
只放图标的方形按钮,常用于工具条 |
TTySpeedButton |
可保持按下态的快捷按钮 |
TTyDropDownButton |
分裂按钮:左半执行、右半展开菜单 |
TTyMenuButton |
整个按钮都是下拉触发器 |
TTyColorButton |
显示并选择颜色的按钮 |
TTyButtonGroup |
分段按钮条,相邻段共边、单选 |
标签与标记 · TyControls Labels(7)
| 控件 | 说明 |
|---|---|
TTyLabel |
文本标签,支持自动换行(含中日韩逐字断行)和助记符 |
TTyHtmlLabel |
支持行内 HTML 子集(粗体 / 斜体 / 链接 / 颜色)的标签 |
TTyLinkLabel |
超链接文字 |
TTyShadowLabel |
带投影的标签 |
TTyGlowLabel |
带发光描边的标签 |
TTyTag |
可关闭的标签胶囊 |
TTyBadge |
数字 / 圆点角标,可吸附到任意控件 |
文本与数值输入 · TyControls Edits(15)
| 控件 | 说明 |
|---|---|
TTyEdit |
单行文本框:选区、剪贴板、词级导航 |
TTyMemo |
多行文本框 |
TTyTerminalView |
终端:画程序输出、把按键编码交给宿主,照 xterm.js;可用独立配色方案(读写 Windows Terminal 格式);带内协议钩子与解析器钩子(示例里有 ZModem 收发) |
TTySpinEdit |
整数微调框 |
TTyFloatSpinEdit |
小数微调框,步长可小于 1 |
TTyNumericEdit |
只接受数字的输入框,失焦时千分位格式化 |
TTyCurrencyEdit |
货币输入框 |
TTyMaskEdit |
掩码输入框(电话、身份证、日期等) |
TTyURLEdit |
网址输入框,尾部带打开按钮 |
TTyComboEdit |
文本框 + 下拉箭头,下拉内容自定义 |
TTyTrackEdit |
内嵌滑块的数值输入框 |
TTyCalcEdit |
内嵌计算器的输入框 |
TTyCalcCurrencyEdit |
货币版计算器输入框 |
TTyCalculator |
独立计算器面板 |
TTyUpDown |
独立的上下微调按钮,可绑定其他控件 |
勾选与开关 · TyControls Choices(6)
| 控件 | 说明 |
|---|---|
TTyCheckBox |
复选框,支持三态 |
TTyRadioButton |
单选按钮 |
TTyToggleSwitch |
开关 |
TTyRadioGroup |
带标题框的单选组 |
TTyCheckGroup |
带标题框的复选组 |
TTySegmented |
分段控制器 |
列表与下拉 · TyControls Lists(15)
| 控件 | 说明 |
|---|---|
TTyComboBox |
下拉框,可编辑,支持前缀补全 |
TTyListBox |
列表框 |
TTyCheckListBox |
每行带复选框的列表 |
TTyMRUComboBox |
记住最近输入的下拉框 |
TTyComboBoxEx |
每项可带图标的下拉框 |
TTyOfficeComboBox |
带分组标题的下拉框 |
TTyOfficeListBox |
带分组标题的列表 |
TTyAdvancedComboBox |
每项两行(标题 + 副标题 + 图标)的下拉框 |
TTyAdvancedListBox |
每项两行的富列表 |
TTyCheckComboBox |
可多选的下拉框 |
TTyValueListEditor |
名/值编辑器:左键右值,每行可指定编辑器 |
TTyPropertyGrid |
属性表格:列出一个对象的 published 属性,改了直接写回 |
TTyTransfer |
双列表穿梭框 |
TTyTreeSelect |
树形下拉选择器 |
TTyCascader |
级联选择器(省 / 市 / 区) |
颜色 / 字体 / 文件选择器 · TyControls Pickers(11)
| 控件 | 说明 |
|---|---|
TTyColorBox |
颜色下拉框 |
TTyColorComboBox |
颜色下拉框,末尾带「更多…」打开取色对话框 |
TTyColorListBox |
颜色列表 |
TTyColorGrid |
方格调色板 |
TTyLColorPicker |
亮度条取色器 |
TTyHSColorPicker |
色相 / 饱和度取色器 |
TTyFontComboBox |
字体下拉框,逐项用自身字体预览 |
TTyFontListBox |
字体列表 |
TTyFontSizeComboBox |
字号下拉框 |
TTyFilterComboBox |
文件类型过滤下拉框 |
TTyShellComboBox |
目录下拉框 |
仪表与指示器 · TyControls Gauges(12)
| 控件 | 说明 |
|---|---|
TTyGauge |
仪表:线性 / 弧形 / 环形 |
TTyMeter |
指针式仪表盘 |
TTyLevelMeter |
电平表,分段点亮 + 峰值保持 |
TTyDial |
旋钮 |
TTyGearDial |
齿轮外圈旋钮 |
TTyAnalogClock |
模拟时钟 |
TTyCircularProgress |
环形进度 |
TTyActivityIndicator |
旋转忙碌指示环 |
TTyActivityBar |
不确定进度条 |
TTyGearActivityIndicator |
齿轮忙碌指示 |
TTySparkline |
迷你趋势图 |
TTyRating |
星级评分 |
条状控件 · TyControls Bars(18)
| 控件 | 说明 |
|---|---|
TTyTrackBar |
滑块 |
TTyRangeTrackBar |
区间滑块:一条轨道上一个或多个可拖动的区间 |
TTyMultiTrackBar |
多值滑块:每个滑块可单独设颜色、提示和样式,滑块之间可分段着色 |
TTyGradientTrackBar |
渐变色标编辑器:轨道画成渐变,点击加色标、拖出删除、双击改颜色 |
TTyProgressBar |
进度条 |
TTyScrollBar |
滚动条:可随主题或按控件设置闲置时自动淡出(AutoHide) |
TTyStatusBar |
状态栏 |
TTyToolBar |
工具条 |
TTyToolButton |
工具条按钮:命令 / 开关 / 下拉 / 分组 / 分隔等六种样式 |
TTyToolSeparator |
工具条分隔符 |
TTyToolBarEx |
放不下的按钮自动折进溢出菜单的工具条 |
TTyControlBar |
按宽度自动折行分带的容器 |
TTyCoolBar |
可拖动的带条容器 |
TTyAlert |
内联警告条:信息 / 成功 / 警告 / 错误 |
TTyPagination |
分页器 |
TTySteps |
步骤条 |
TTyBreadcrumb |
面包屑导航 |
TTyHeaderControl |
独立列头条 |
容器与布局 · TyControls Containers(22)
| 控件 | 说明 |
|---|---|
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 |
工具窗口的跨侧拖动和布局保存 |
数据视图 · TyControls Data Views(10)
| 控件 | 说明 |
|---|---|
TTyStringGrid |
数据网格:冻结、虚拟化、编辑、筛选、分组、撤销重做 |
TTyDrawGrid |
内容自绘的网格 |
TTyTreeView |
虚拟树,可承载百万节点;多列、三态复选、内联编辑、拖放 |
TTyListView |
列表视图:报表 / 图标 / 平铺等五种视图 + 分组 + 虚拟模式 |
TTyShellTreeView |
文件系统目录树 |
TTyShellListView |
文件系统文件列表 |
TTyCalendar |
日历:日 / 月 / 年下钻 |
TTyDateTimePicker |
日期时间选择器,支持空值 |
TTyImageView |
图片查看器:平移、缩放、滤镜 |
TTyPreviewBox |
文件预览框 |
数据感知 · TyControls Data Controls(22)
单独的包 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 |
菜单 · TyControls Menus(4)
| 控件 | 说明 |
|---|---|
TTyMenuBar |
主菜单栏 |
TTyPopupMenu |
右键菜单 |
TTyImagesMenu |
带图标列的右键菜单,图标取自图像列表 |
TTyMenuEx |
增强右键菜单:在图标列之外加分节标题和侧边横幅 |
Ribbon · TyControls Ribbon(7)
| 控件 | 说明 |
|---|---|
TTyRibbon |
Ribbon 主体 |
TTyRibbonPage |
Ribbon 页 |
TTyRibbonGroup |
页内功能组 |
TTyRibbonAppMenu |
应用菜单(File)按钮 |
TTyRibbonQuickAccess |
快速访问工具栏 |
TTyRibbonGallery |
图库,可展开成弹出网格 |
TTyRibbonBackstage |
全窗口后台视图 |
图像与提示 · TyControls Images(11)
| 控件 | 说明 |
|---|---|
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 即可。
图形与图表 · TyControls Shapes & Charts(5)
| 控件 | 说明 |
|---|---|
TTyShape |
矢量形状:矩形 / 圆 / 三角 / 菱形 / 星形等 15 种,支持自定义多边形 |
TTyStarShape |
星形,角数可调 |
TTyArrow |
方向箭头 |
TTyChart |
图表:折线 / 柱状 / 饼图 |
TTyAdvanceChart |
高级图表:配置照 Apache ECharts 的 option 写,带缩放、视觉映射、提示框、工具栏 |
对话框 · TyControls Dialogs(20)
| 控件 | 说明 |
|---|---|
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(多滑块)· advancechart.md(TTyAdvanceChart)。
主题
内置主题编译进二进制,程序不用带 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。










