Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works

Random project

antdesign2dexlphixe2

该组件包为Delphi XE2移植Ant Design界面能力,采用原生VCL与GDI+自绘。包含按钮、输入、表格、导航、反馈及布局控件,支持令牌、圆角渲染和示例,可安装、拖拽并构建中后台桌面端应用。

View on GitHub

Anyone may press Interesting, signed in or not. It helps others find this project.

Member rating

No ratings yet.

Sign in to rate this project.

README

Ant Design VCL for Delphi XE2 组件包

这是一个把 Ant Design 常用中后台 UI 组件移植到 Delphi XE2 / VCL 的组件包工程。

当前第一版目标是先提供可安装、可拖拽、可运行 Demo 的基础组件包,然后继续逐步补齐更多 Ant Design 组件和细节交互。

pascal
![](/catalog-images/2e/2eda77b667dec18d5fba9324.png)

当前已包含组件

  • TAntButton(Batch141 提供仅承载该组件的独立简体中文 Demo,展示默认/主要/危险/虚线/文本/链接变体、小/中/大尺寸、圆角/圆形/方角、图标按钮、Ghost、Loading 与 Block;Batch295 补齐 Demo 标题、截图入口、README、组件映射、历史文档、构建脚本和 Batch295ButtonComplianceSmoke 合规验证;Batch78 是行为及圆角像素 Smoke,覆盖颜色/变体解析、尺寸、图标布局、块级布局、点击保护和 Ghost/禁用优先级。按钮本体、圆角/圆形与加载指示器均使用 GDI+ AntDrawRoundRect 抗锯齿绘制)
  • TAntFloatButton(Batch194 提供仅承载悬浮按钮的独立简体中文 Demo,展示点状徽标、数字徽标、禁用态和点击反馈;Batch296 补齐 Demo 标题、截图入口、README、组件映射、历史文档、构建脚本和 Batch296FloatButtonComplianceSmoke 合规验证;保留 Batch119 的尺寸、圆角、几何和禁用点击保护)
  • TAntFloatButtonGroup(Batch209 提供仅承载 FloatButton.Group 的独立简体中文 Demo,展示点击触发、展开/收起、位置、形状与抗锯齿圆角;Batch35 覆盖点击/悬停触发与状态回调,Batch119 补充确定性触发器/子按钮几何辅助)
  • TAntBackTop(Batch202 独立简体中文 Demo;Batch34 覆盖阈值、自动隐藏、目标滚动复位和事件)
  • TAntIcon(Batch201 提供仅承载图标组件的独立简体中文 Demo,展示描边、双色、填充、加载和圆形抗锯齿像素回归;Batch258 补齐单组件 Demo 契约与简体中文说明 Smoke;Batch17 保留主题、尺寸、旋转和双色能力)
  • TAntInput(Batch167 提供仅承载基础输入框组件的独立简体中文 Demo,展示中文占位、清除/字符计数、错误和禁用状态;Batch265 补齐单组件 Demo 契约与简体中文说明 Smoke;Batch40 覆盖清除、字符计数、最大长度、回车与键盘事件)
  • TAntInputGroup(Batch140 提供仅承载输入框组合组件的独立简体中文 Demo,支持紧凑/块级/垂直子控件布局、尺寸传递、确定性子项几何,以及 GDI+ 抗锯齿圆角外壳;Batch266 补齐单组件 Demo 契约与简体中文说明 Smoke)
  • TAntInputSearch(Batch205 提供仅承载搜索输入框组件的独立简体中文 Demo,展示搜索、清除、加载、禁用与抗锯齿圆角;Batch260 补齐单组件 Demo 契约与简体中文说明 Smoke;Batch39 覆盖搜索按钮文本、加载状态、允许清除及搜索/清除事件)
  • TAntInputPassword(Batch206 提供仅承载密码输入框组件的独立简体中文 Demo,展示密码掩码、可配置显示/隐藏文案、可见性切换、清除、禁用与抗锯齿圆角;Batch261 补齐单组件 Demo 契约与简体中文说明 Smoke;Batch39 覆盖掩码、文案配置、切换与表单字段集成)
  • TAntInputOTP(Batch207 提供仅承载验证码输入框组件的独立简体中文 Demo,展示长度、分隔符、掩码、状态、禁用与抗锯齿圆角;Batch262 补齐单组件 Demo 契约与简体中文说明 Smoke;Batch37 覆盖验证码输入、长度和值截断、掩码、分隔符、状态、事件、表单集成与退格保护)
  • TAntInputNumber(Batch168 提供仅承载数字输入框组件的独立简体中文 Demo,展示步进、格式化/前后缀、受控越界警告、禁用状态与抗锯齿圆角;Batch264 补齐单组件 Demo 契约与简体中文说明 Smoke;Batch91 覆盖格式化/解析、步进、边界、受控越界与状态)
  • TAntTextArea(Batch208 提供仅承载多行输入框组件的独立简体中文 Demo,展示清除、字符计数、自动行数、错误/禁用状态与抗锯齿圆角;Batch263 补齐单组件 Demo 契约与简体中文说明 Smoke;Batch41 覆盖清除、计数、自适应行数、回车事件和键盘事件转发)
  • TAntAutoComplete(Batch187 提供仅承载自动完成输入框组件的独立简体中文 Demo,展示中文建议、错误状态、填充变体、加载文字、禁用状态与抗锯齿圆角;Batch267 补齐单组件 Demo 契约与简体中文说明 Smoke;Batch90 覆盖自由文本、候选项、受控打开、回填、筛选、状态和变体)
  • TAntColorPicker(Batch193 提供仅承载颜色选择器组件的独立简体中文 Demo,展示 HSB 色谱、预设颜色、透明度、键盘微调和抗锯齿圆角;Batch268 补齐单组件 Demo 契约与简体中文说明 Smoke;Batch108 保留拖拽、AlphaValue 与 HexAlphaValue,并兼容 Batch107 顶层弹层、Batch106 控件内面板和 Batch15 预设/清除)
  • TAntMentions(Batch203 提供仅承载提及输入框组件的独立简体中文 Demo,展示 @/# 前缀、中文候选项、禁用项与抗锯齿圆角;Batch269 补齐单组件 Demo 契约与简体中文说明 Smoke;Batch125 覆盖 Ant Design 风格选项元数据、多前缀、只读/禁用保护、状态/变体/位置诊断及输入框/浮层几何)
  • TAntSelect(Batch169 提供仅承载选择框组件的独立简体中文 Demo,展示分组、多选/清除、本地搜索、加载和禁用状态;Batch270 补齐单组件 Demo 契约与简体中文说明 Smoke;Batch29/70/132 覆盖搜索、选项、多选、浮层定位和远程响应)
  • TAntRangePicker(Batch174 提供仅承载日期范围选择器组件的独立简体中文 Demo,展示基础范围、悬停清除、自动排序、边界、错误和禁用状态;Batch272 补齐单组件 Demo 契约与简体中文说明 Smoke:Batch272RangePickerComplianceSmoke;Batch57/93 覆盖格式化范围、双 TAntCalendar 弹层、临时起止面板选择、显式提交和面板诊断)
  • TAntTimePicker(Batch173 提供仅承载时间选择器组件的独立简体中文 Demo,展示 24 小时制、悬停清除、15 分钟步进、12 小时制、错误和禁用状态;Batch273 补齐单组件 Demo 契约与简体中文说明 Smoke:Batch273TimePickerComplianceSmoke;Batch94/95/97/98 覆盖自绘弹层、确认提交、禁用选项、键盘/滚轮、页脚、现在、12 小时制和视口定位)
  • TAntTimeRangePicker(Batch175 提供仅承载时间范围选择器组件的独立简体中文 Demo,展示 24 小时范围、悬停清除、15 分钟步进、12 小时制、错误和禁用状态;Batch274 补齐单组件 Demo 契约与简体中文说明 Smoke:Batch274TimeRangePickerComplianceSmoke;Batch102 保留起止已提交范围、独立草稿视口、24/12 小时制、显式提交和弹层诊断)
  • TAntSwitch(Batch164 提供仅承载开关组件的独立简体中文 Demo,展示启用、禁用、加载和小尺寸状态;Batch275 补齐单组件 Demo 契约与简体中文说明 Smoke:Batch275SwitchComplianceSmoke;Batch74 覆盖值别名、状态文案、禁用/加载保护、事件、尺寸与键盘切换)
  • TAntCheckBox, TAntCheckBoxGroup(Batch165 提供仅承载复选框组件的独立简体中文 Demo,展示选中、半选、禁用和错误状态;Batch276 补齐单组件 Demo 契约与简体中文说明 Smoke:Batch276CheckBoxComplianceSmoke;Batch72 覆盖选中/半选状态、值、事件、禁用保护、复选框组选项和多值归一化)
  • TAntRadio, TAntRadioGroup(Batch166 提供仅承载单选框组件的独立简体中文 Demo,展示同组互斥、未选和禁用状态;Batch277 补齐单组件 Demo 契约与简体中文说明 Smoke:Batch277RadioComplianceSmoke;Batch72 覆盖单选值、分组辅助、组选项元数据、禁用保护、按钮样式、方向、块级模式、尺寸与选择事件)
  • TAntSlider(Batch170 提供仅承载滑动输入组件的独立简体中文 Demo,展示单值步进、标记圆点、范围选择、反向垂直和禁用状态;Batch278 补齐单组件 Demo 契约与简体中文说明 Smoke:Batch278SliderComplianceSmoke;Batch73 覆盖步进、范围、标记、反向、垂直和完成事件;Batch170Smoke 以像素检查验证禁用态不再使用启用主色)
  • TAntRate(Batch171 提供仅承载评分组件的独立简体中文 Demo,展示基础评分、半星、大尺寸、自定义评分字符和禁用状态;Batch279 补齐单组件 Demo 契约与简体中文说明 Smoke:Batch279RateComplianceSmoke;Batch73 覆盖半星、清除、尺寸、悬停和事件;Batch171Smoke 以像素检查验证星形边缘存在抗锯齿混色像素)
  • TAntDatePicker(Batch172 提供仅承载日期选择器组件的独立简体中文 Demo,展示预置日期、悬停清除、边界、错误和禁用状态;Batch271 补齐单组件 Demo 契约与简体中文说明 Smoke:Batch271DatePickerComplianceSmoke;Batch57/92 覆盖取值、边界、自绘 TAntCalendar 弹层、面板导航和选择保护)
  • TAntAlert(Batch142 提供仅承载 TAntAlert 的独立简体中文 Demo,展示 success/warning/error/banner、outlined/filled、关闭和文字动作;Batch79 是状态、关闭、动作及 PaintTo 圆角像素渲染路径 Smoke,覆盖别名、Banner 默认 warning、语义展示、关闭/动作回调与重复关闭保护。非 Banner 外壳使用 GDI+ AntDrawRoundRect 抗锯齿绘制;当前不支持 JSX/children、自定义动作控件、关闭动画、焦点管理、键盘/无障碍语义及响应式整页 Banner)
  • TAntCard(Batch143 提供仅承载 TAntCard 的独立简体中文 Demo 与截图,展示文本封面、Meta、正文、底部操作、小尺寸内嵌卡片页签和静态加载骨架;Batch80 提供 acvOutlined/acvBorderless 变体及 Bordered 兼容别名、中/小尺寸、默认/内嵌类型、页签与操作事件和显示辅助信息。卡片主体通过 GDI+ AntDrawRoundRect 绘制抗锯齿圆角,页头、封面与操作区遵循同一圆角路径分区填充;当前为 VCL 固定文本/字符串集合模型,不支持 React JSX/children、任意图片或自定义控件封面、复杂自定义操作控件、CSS 响应式布局、动画及完整键盘/无障碍语义)
  • TAntTag(Batch144 提供仅承载该组件的独立简体中文 Demo 与截图,展示 filled/solid/outlined、预设/语义色、图标、关闭、可勾选和禁用状态;Batch81 提供变体、颜色、显示辅助、可取消关闭、可勾选变更及旧版鼠标关闭通知兼容,4px 圆角通过 GDI+ AntDrawRoundRect 抗锯齿绘制。当前采用 VCL 固定文本模型,不支持 JSX/children、自定义子控件、CSS 响应式布局、关闭动画及完整键盘/无障碍语义)
  • TAntBadge(Batch145 提供仅承载 TAntBadge 的独立简体中文 Demo 与截图,展示数字计数、溢出与零值显示、默认/小号尺寸、点状徽标、自定义颜色与偏移,以及语义状态点;Batch77 覆盖计数/溢出/零值、点状/状态模式、尺寸与颜色辅助。数字胶囊、点状徽标和状态点均通过 GDI+ AntDrawRoundRect 的抗锯齿圆角或圆形路径绘制。当前是独立 VCL 自绘控件,不自动包裹其他控件;固定字符串模型不支持 JSX/children、富文本、自定义内容插槽、CSS 响应式布局、动画及完整键盘/无障碍语义)
  • TAntBadgeRibbon(Batch178 提供仅承载 Badge.Ribbon 的独立简体中文 Demo,展示结束/起始位置、自定义颜色、长文案和禁用状态;Batch243 补齐单组件 Demo 契约与简体中文说明 Smoke;Batch103 提供 AntD Badge.Ribbon 包裹控件、一个窗口化内容控件、起始/结束位置、自定义颜色、叠层命中测试和生命周期诊断。Ribbon 主体与折角使用 GDI+ 抗锯齿绘制)
  • TAntBorderBeam(Batch241 提供仅承载该组件的独立简体中文 Demo,展示默认光束、渐变进度和减少动画模式,并以专用 Smoke 验证 Demo 单组件契约和 GDI+ 圆角轨道抗锯齿像素。Batch110 保留一个窗口化内容子控件、圆角轨道、移动光束诊断、渐变 stops、ReducedMotion 降级、动画辅助和确定性几何诊断)
  • TAntProgress(Batch146 提供仅承载 TAntProgress 的独立简体中文 Demo,展示线形、圆形、仪表盘、成功段、异常/完成状态、格式化文本、自定义颜色、缺口和端点样式;Batch76 覆盖类型/状态、100% 自动成功、成功段、格式化、主题颜色回退、尺寸和缺口钳制。线形轨道/进度段通过 GDI+ AntDrawRoundRect 绘制抗锯齿圆角,圆形/仪表盘通过 GDI+ AntDrawArc 绘制抗锯齿圆弧;当前为固定字符串和单值的 VCL 自绘控件,不支持 React children、渐变/分步进度、浏览器 CSS/响应式、动画时间轴、复杂浮层及完整键盘/无障碍语义)
  • TAntSpin(Batch147 提供仅承载该组件的独立 Demo 与截图,展示尺寸、提示、延迟、文字指示器、进度和组件客户区遮罩;Batch75 提供 Size/Description、延迟、遮罩、指示器和进度辅助属性。8 个加载点使用 GDI+ AntDrawRoundRect 绘制抗锯齿圆形;当前为固定字符串 VCL 自绘模型,遮罩不接管整个窗体或桌面。)
  • TAntDivider(Batch148 提供仅承载该组件的独立简体中文 Demo,展示实线/虚线/点线、标题位置、常规标题和垂直分隔线;Batch82 覆盖线型、Dashed 兼容别名、间距、标题位置、Plain、垂直别名与显示辅助属性。水平和垂直线通过 GDI+ AntDrawLine 以抗锯齿和半像素偏移绘制;当前为固定 Caption 的 VCL 自绘控件,仅在自身客户区绘制,不支持 React children、富文本/插槽、浏览器响应式 CSS、DOM/ARIA 语义或完整键盘无障碍)
  • TAntTable(Batch189 独立简体中文 Demo 和视觉截图,展示订单列定义、行选择、分页、汇总与加载进度;Batch131 增强内建 HTTP 传输、超时、取消和旧响应保护;Batch130 保留 AntD 风格行选择 API)
  • TAntTabs(Batch185 提供仅承载标签页组件的独立简体中文 Demo,展示线型导航、卡片风格、可编辑卡片关闭、禁用保护、手工页同步和圆角抗锯齿回归;Batch300 将卡片型标签调整为贴近 TAntCard 的扁平 Header 风格,选中项使用主色文字和底部强调线;Batch301 去除 Tabs 原生 3D 深色阴影和焦点虚线,内容区改为 Card 式白色面与浅边框;Batch302 将标签头覆盖重绘为 TAntCard Header Tabs,连续白色页头、底部分隔线、纯文字标签和主色短下划线,不再露出原生按钮式边框;Batch303 统一 Header 与 Body 的白色 Card Surface,避免内容区露出工作台灰底;Batch304 清理内容区左侧原生深色阴影列,四边统一为浅色单像素线;Batch305 将设计期图标改为 Card Header Tabs 专属扁平图标并集成到 DCR;Batch306 鼠标点击异步投递切换消息,避免标签栏点击被同步重绘阻塞,同时合并 ActiveKey 切换期间的重绘并保持变更事件单次触发;Batch250 补齐单组件 Demo 契约与简体中文说明 Smoke;Batch58 保留受控项目、卡片形态、间距和变更/编辑事件能力)
  • TAntMenu(Batch186 提供仅承载菜单组件的独立简体中文 Demo,展示纵向子菜单、禁用菜单和暗色横向菜单;Batch251 补齐单组件 Demo 契约与简体中文说明 Smoke;Batch27 保留键盘导航、横向溢出和弹层自定义显示,Batch23 保留弹出子菜单行为)
  • TAntPagination(Batch163 提供仅承载分页组件的独立简体中文 Demo,展示标准页码、省略页和小尺寸紧凑模式,页码按钮通过 GDI+ 抗锯齿圆角绘制;Batch252 补齐单组件 Demo 契约与简体中文说明 Smoke;Batch59 保留页码/页大小回调、跳页与页大小辅助、总数与范围文本、少页模式、单页隐藏、禁用、对齐和尺寸)
  • TAntSpace(Batch197 提供仅承载间距组件的独立简体中文 Demo,展示横向和纵向分隔布局截图;Batch253 补齐单组件 Demo 契约与简体中文说明 Smoke;Batch83 保留尺寸、方向、对齐、换行、分隔符辅助和布局刷新能力)
  • TAntSpaceCompact(Batch196 提供仅承载紧凑间距组件的独立简体中文 Demo,展示横向紧凑查询组和纵向块级操作截图;Batch254 补齐单组件 Demo 契约与简体中文说明 Smoke;Batch36 保留紧凑布局、方向、尺寸与连接边框能力)
  • TAntFlex(Batch198 提供仅承载弹性布局组件的独立简体中文 Demo,展示两端对齐、交叉轴居中、自动换行和抗锯齿圆角辅助项;Batch255 补齐单组件 Demo 契约与简体中文说明 Smoke;Batch14 保留方向、换行、间距、主轴与交叉轴对齐能力)
  • TAntMasonry(Batch199 提供仅承载瀑布流组件的独立简体中文 Demo,展示三列最短列分配和不同高度业务卡片截图;Batch256 补齐单组件 Demo 契约与简体中文说明 Smoke;Batch17 保留确定性卡片布局能力)
  • TAntSplitter(Batch200 提供仅承载分割器组件的独立简体中文 Demo,展示水平三栏、垂直三栏和抗锯齿圆角面板截图;Batch257 补齐单组件 Demo 契约与简体中文说明 Smoke;Batch17 保留尺寸、最小值钳制、折叠与重置能力)
  • TAntTypography(Batch204 提供仅承载文字排版组件的独立简体中文 Demo,展示复制、编辑、省略与文本装饰;Batch259 补齐单组件 Demo 契约与简体中文说明 Smoke;Batch126 覆盖可复制/可编辑生命周期、剪贴板复制、mark/code/keyboard/delete/underline 装饰、省略后缀显示与确定性文本/复制/编辑几何)
  • TAntImage(Batch221 新增仅创建一个组件的图片独立简体中文 Demo,使用“订单预览图片”、确定性蓝青黄白位图、Radius=16 与 aifCover;圆角外部区域回填后以 GDI+ AntDrawRoundRect 绘制抗锯齿边框,红色覆盖图片 Smoke 验证外角不红、内部为红。Batch292 补齐图片与图片预览组 Demo 标题、截图入口、README、组件映射、历史文档、构建脚本和 Batch292ImageComplianceSmoke 合规验证。Preview 当前仅存储状态,不提供单图点击预览;网络图片加载、缩放、移动、焦点陷阱和无障碍尚未实现)
    • TAntImagePreviewGroup(Batch176 提供图片预览组独立简体中文 Demo 与缩略图点击打开;Batch105 增加项目列表、受控打开/当前项、计数、导航、事件和确定性预览几何)
  • TAntCarousel(Batch179 提供仅承载 Carousel 的独立简体中文 Demo,展示箭头切换、顶部/侧边圆点、进度圆点、拖动、淡入效果和禁用状态;Batch244 补齐单组件 Demo 契约与简体中文说明 Smoke;Batch54 增强圆点位置、进度圆点、淡入、拖动、速度/缓动、几何辅助和切换前后事件。轮播主体和圆点使用 GDI+ AntDrawRoundRect 抗锯齿绘制)
  • TAntWatermark(Batch181 提供仅承载水印组件的独立简体中文 Demo,展示文字平铺、有效图片平铺、损坏图片文字回退和真实旋转文字抗锯齿像素回归;Batch246 补齐单组件 Demo 契约与简体中文说明 Smoke;Batch127 增强字体族、字重、斜体、文本对齐、ZIndex 元数据和确定性平铺/文字几何)
  • TAntForm(Batch192 独立简体中文业务表单示例,补齐布尔/选项/数值字段适配、紧凑选择控件布局与带文字 Switch 尺寸;Batch88 保留递归、dirty、validateOnly 校验和字段状态)
  • TAntFormItem
  • TAntFormProvider(Batch88 增强多表单校验、提交聚合和状态摘要)
  • TAntConfigProvider(Batch242 提供只创建一个非可视配置提供器的独立简体中文 Demo,使用原生 VCL 标签和色块展示主色、组件尺寸、禁用状态、方向和语言;Batch38 覆盖主题令牌、组件尺寸/禁用状态、方向和语言元数据)
  • TAntApp(Batch222 新增应用上下文独立简体中文 Demo:仅创建一个非可视应用上下文,并由其内部 Message 服务展示中文反馈;Batch293 补齐 Demo 标题、中文异常、截图入口、README、组件映射、历史文档、构建脚本和 Batch293AppComplianceSmoke 合规验证;Batch109 提供 Message、NotificationService、Modal、全局当前对象和默认反馈配置)
  • TAntAvatar(Batch149 提供只创建该组件的独立演示工程;Batch69 覆盖形状、尺寸、回退和圆形兼容辅助。圆形/方形主体采用 GDI+ AntDrawRoundRect 抗锯齿路径绘制;Src 仅表示图像状态并绘制内置占位符,不加载本地或网络图片。)
  • TAntAvatarGroup(Batch150 提供只创建该组件的独立简体中文演示工程,原生 VCL TLabel 仅用于标题与说明,不混合其他 Ant Design 组件;演示覆盖重叠、MaxCount 溢出、负间距、大尺寸与方形外观。绘制时先以 GDI+ AntDrawRoundRect 抗锯齿路径绘制白色重叠边框,再绘制内部头像或 +N 溢出标记,避免圆形和圆角边缘毛边。Batch234 是独立 Smoke,覆盖最大数量、间距下限、溢出和真实像素;当前为 VCL 自绘实现,头像项由字符串 Items 提供,不支持 React children、JSX、DOM、CSS、响应式布局、动画或完整 ARIA/键盘无障碍语义,也不负责每个头像的图片加载与独立交互。)
  • TAntStatistic(Batch151 提供只创建该组件的独立简体中文 Demo,展示数值分组、前后缀、异常色、固定倒计时和加载骨架;Batch65 覆盖数值格式和状态,Batch120 覆盖倒计时,Batch235 提供加载骨架的 GDI+ 抗锯齿圆角像素 Smoke。当前不支持 JSX/children、数字滚动动画、网络时间同步、响应式 CSS 或完整 ARIA/键盘无障碍。)
  • TAntSteps(Batch152 提供只创建该组件的独立简体中文 Demo,展示横向百分比、垂直点状步骤、标题布局和 MaxCount 折叠;Batch60 覆盖元数据解析、状态推导、方向/类型/标题位置文本、百分比、折叠摘要和点击事件;Batch236 提供专用像素 Smoke,验证默认圆形节点与点状节点的 GDI+ AntDrawRoundRect 抗锯齿边缘。当前为 VCL 自绘步骤条,不支持 React items 对象数组、DOM/CSS 响应式布局、动画或完整 ARIA/键盘无障碍语义。)
  • TAntTimeline(Batch153 提供只创建该组件的独立简体中文 Demo,展示横向交替、垂直倒序、实心/描边节点、pending 和 loading 文本状态;Batch62 覆盖元数据解析、模式/位置/方向/reverse/pending/variant、颜色与显示摘要;Batch237 提供专用像素 Smoke,验证实心节点、描边节点、pending 节点和连接线的 GDI+ AntDrawRoundRect 抗锯齿绘制。当前为 VCL 自绘时间轴,不支持 React items 对象数组、DOM/CSS 响应式布局、动画、自定义 dot 渲染或完整 ARIA/键盘无障碍语义。)
  • TAntTree(Batch154 提供只创建该组件的独立简体中文 Demo,展示中文 TreeData、原生层级、展开键、整行选择、复选传导、禁用节点和禁用复选框规则;Batch282 补齐独立 Demo 标题、截图入口、README、组件映射和文档合规 Smoke:Batch282TreeComplianceSmoke;Batch71 覆盖元数据解析、受控 selected/expanded/checked keys、半选传导、严格复选、block node/show line、滚动辅助和 titleHeight/indentSize token;Batch238 提供专用 Smoke,验证中文标题、原生 Items、Selected、ExpandedKeys 和 StateIndex 同步。当前继承 VCL TTreeView,节点、线条、选中行和复选框使用 Windows 原生渲染,不支持 React treeData 对象数组、虚拟滚动、拖拽、异步加载或完整 ARIA/键盘无障碍语义。)
  • TAntDirectoryTree(Batch177 提供仅承载目录树组件的独立简体中文 Demo,展示项目目录结构和禁用态输入保护;Batch247 补齐单组件 Demo 契约与简体中文说明 Smoke;Batch104 增加 AntD Tree.DirectoryTree 默认行为、目录元数据识别、click/doubleClick/false 展开动作、目录图标诊断和选中目录 token 颜色)
  • TAntUpload(Batch239 新增只创建该组件的独立简体中文 Demo,展示基础文件列表、拖拽上传、图片卡片、圆形缩略项、进度和错误状态;Batch280 补齐 Batch239 展示 Demo 与 Batch133 HTTP 传输 Demo 的简体中文界面契约,并登记 Batch280UploadComplianceSmoke;新增 DraggerHint 让拖拽区副标题可中文化,并以专用 Smoke 验证 picture-circle 与进度条的 GDI+ 抗锯齿圆角像素。Batch133 覆盖默认 HTTP multipart/form-data 传输,Batch123 覆盖 customRequest 传输桥,Batch89 保留 fileList/defaultFileList 元数据。)
  • TAntTooltip(Batch213 新增仅承载文字提示组件的独立简体中文 Demo,以原生 VCL TButton 作为弹层宿主,展示顶部弹层、居中箭头、中文文本、圆角与抗锯齿箭头;Batch283 补齐独立 Demo 标题、截图入口、README、组件映射和文档合规 Smoke:Batch283TooltipComplianceSmoke;Batch111 增强 AntD Tooltip 圆角弹层/箭头表现、pointAtCenter 几何诊断、弹层 token 默认值和自动文字对比色)
  • TAntPopconfirm(Batch214 新增仅承载气泡确认框的独立简体中文 Demo:原生 VCL TButton 仅作为 ShowFor 的弹层宿主,展示顶部确认弹层、中文标题/说明、取消/确认按钮、警告图标、居中箭头、圆角与抗锯齿箭头;Batch112 增强 AntD Popconfirm 圆角弹层、抗锯齿箭头/图标、ArrowPointAtCenter 几何诊断、弹层 token 默认值和自定义图标颜色/文本;Batch284 补齐独立 Demo 标题、截图入口、README、组件映射和文档合规 Smoke:Batch284PopconfirmComplianceSmoke)
  • TAntDrawer(Batch195 独立简体中文 Demo、抗锯齿圆角 Surface、阴影带和可重复截图验证;Batch114 覆盖 AntD Drawer 尺寸预设、起止关闭位置、遮罩透明度、额外/页脚操作、骨架屏、push-distance 基础和头部/正文/页脚几何诊断;Batch286 补齐独立 Demo 标题、截图入口、README、组件映射和文档合规 Smoke:Batch286DrawerComplianceSmoke)
  • TAntNotification(Batch216 新增只创建一个 TAntNotification 的独立简体中文 Demo:无边框白色 VCL 宿主仅作截图背景,固定持久成功通知展示“订单已发货”、68% 进度和“查看物流”;可靠截图直接捕获真实顶层通知窗体并处理当前 Windows DPI 虚拟化环境,抗锯齿圆角进度修复避免底部进度条覆盖圆角。Batch115 增加 AntD 尺寸/圆角参数、关闭与视觉操作控件、进度轨道、堆叠偏移和几何诊断;Batch287 补齐独立 Demo 标题、截图入口、README、组件映射和文档合规 Smoke:Batch287NotificationComplianceSmoke)
  • TAntBreadcrumb(Batch155 独立单组件示例;Batch61 覆盖元数据、分隔符、路由和点击辅助方法)
  • TAntSegmented(Batch157 提供仅承载分段控件的独立简体中文 Demo,展示元数据选项、禁用选项、圆角选中态和纵向布局;Batch294 补齐 Demo 标题、选项文案、截图入口、README、组件映射、历史文档、构建脚本和 Batch294SegmentedComplianceSmoke 合规验证;Batch63 覆盖元数据、禁用选项、选择和布局设置)
  • TAntDescriptions(Batch158 独立单组件示例;Batch64 覆盖元数据、跨列、布局和显示设置)
  • TAntEmpty(Batch159 独立单组件中文示例;Batch46 覆盖插图、说明、底部操作和绘制设置)
  • TAntResult(Batch160 独立单组件中文示例;Batch121 增强 AntD Result token 默认值、有效诊断、确定性内容/操作几何辅助方法和统一绘制)
  • TAntCalendar(Batch161 独立单组件中文示例;Batch67 覆盖日期范围、模式、周数、事件和中文显示文本)
  • TAntTreeSelect(Batch190 独立简体中文 Demo、真实 popup 搜索、原生复选状态图像、受控展开、禁用键盘保护和圆角抗锯齿回归)
  • TAntDropdown(Batch191 独立简体中文 Demo、可绑定 VCL 触发控件、点击/悬停/右键触发、受控重开与圆角抗锯齿 popup 回归)
  • TAntMessage(Batch217 新增只创建一个 TAntMessage 的独立简体中文 Demo:无边框白色原生 VCL 窗体仅作截图背景,持久成功提示展示“订单提交成功,正在为您生成电子凭证。”;截图实际捕获 Message 顶层无边框置顶窗体,并按当前 Windows DPI 虚拟化比例换算。Batch116 增强宽度/高度/圆角/padding token、顶部居中弹层几何、有效图标诊断、堆叠偏移与圆角外观;Batch288 补齐独立 Demo 标题、截图入口、README、组件映射和文档合规 Smoke:Batch288MessageComplianceSmoke;PauseOnHover 与 StackThreshold 目前仅为配置属性,尚未实现悬停暂停或折叠堆叠交互)
  • TAntAnchor(Batch156 独立单组件示例;Batch16 覆盖 key 选择和方向设置)
  • TAntLayout(Batch210 提供仅承载 Layout 的独立简体中文 Demo,展示直角 Header/Sider/Content/Footer 分区、侧边栏折叠与断点配置;Batch85 覆盖可折叠 Sider、主题、响应式断点辅助和布局矩形)
  • TAntRow(Batch211 提供 TAntRow 独立简体中文 Demo,可使用受 Row 管理的 TAntCol 作为布局子项;Batch84 提供 Gutter、Justify、AlignItems、Wrap 等 24 栅格辅助能力)
  • TAntCol(Batch212 提供 TAntCol 独立简体中文 Demo,仅实例化多个 TAntCol,不实例化 TAntRow;Batch84 提供 Span、Offset、Order、Push、Pull 与 Span=0 隐藏语义)
  • TAntCascader(Batch188 独立简体中文 Demo、多列逐级 popup、分支切换、安全延迟释放和键盘跳过禁用项;禁用时立即关闭 popup,并阻断选择/键盘/清除/批量 Values 改写;Batch87 覆盖元数据路径、changeOnSelect、多选及 open/placement/status/variant helpers)
  • TAntTransfer(Batch182 提供只创建该组件的独立简体中文 Demo,展示带搜索的双向迁移、选中项移动、全选和带警告边框的单向迁移;Batch281 补齐独立 Demo 标题、截图入口、README、组件映射和文档合规 Smoke:Batch281TransferComplianceSmoke;Batch240 新增 SearchPlaceholder 与 EmptyText,搜索占位符和空态文本可完全中文化,并补充搜索框圆角像素 Smoke;Batch55 覆盖受控目标键、受控选中键、全选、单向模式、过滤、状态和迁移/选择/搜索事件)
  • TAntTour(Batch220 新增只创建一个 TAntTour 的引导提示独立简体中文 Demo;原生 TButton 仅作 ShowFor 锚点,首步 primary/bottom 显示“订单处理引导”和“查看待处理订单”,并使用 Mask=True、Arrow=False、332x176。Popup 以 #F5F5F5 透明色键和透明标签配合 AntDrawRoundRect 绘制抗锯齿圆角;真实顶层窗体 Smoke 验证圆角外侧遮罩与内部 Container 背景。Batch291 补齐 Demo 标题、截图入口、README、组件映射、历史文档、构建脚本和 Batch291TourComplianceSmoke 合规验证。Arrow=True 仅为文字方向指示,Mask 不是真正挖空且不能点击穿透;切换步骤会重建 Popup,焦点陷阱和无障碍尚未实现。Batch86 保留步骤元数据、状态、定位、类型、弹层边界与导航事件)
  • TAntAffix(Batch183 提供仅承载吸附组件的独立简体中文 Demo,展示普通位置、已吸顶状态、自定义顶部偏移和真实圆角主体抗锯齿像素回归;Batch248 补齐单组件 Demo 契约与简体中文说明 Smoke;Batch16 增加同父级吸附状态、偏移、释放和变更事件行为)
  • TAntCollapse(Batch162 独立单组件中文示例;Batch53 覆盖活动面板、元数据项目、多开/手风琴、边框、幽灵、尺寸、箭头位置、触发模式和事件)
  • TAntList(Batch184 提供仅承载列表组件的独立简体中文 Demo,展示服务运维元数据、分页列表、禁用列表和真实圆角页头抗锯齿回归;Batch249 补齐单组件 Demo 契约与简体中文说明 Smoke;Batch124 保留 List.Item.Meta 元数据,Batch42 保留尺寸、分割线、分页和选择能力)
  • TAntQRCode(Batch180 提供仅承载二维码组件的独立简体中文 Demo,展示编码边界提示、禁用态视觉令牌和真实圆角外框抗锯齿像素回归;Batch245 补齐单组件 Demo 契约与简体中文说明 Smoke;Batch66/307 增强标准 Version 1-4 byte-mode 自动选版,覆盖短内容和常见 ASCII 网址,并支持 L/M/Q/H 容错级别、Reed-Solomon 校验码、分块交织、掩码评分和矩阵诊断;Batch308 提供可手动输入网址或英文后点击确定生成二维码的测试项目)
  • TAntPopover(Batch215 新增只承载一个气泡卡片的独立简体中文 Demo:原生 VCL TButton 仅作为 ShowFor 弹层宿主,展示 apopTop、ArrowPointAtCenter、中文标题/正文/关闭按钮、300x136、8px 圆角、黄色背景、自动文字对比色,以及按宿主和顶层 Popup 实际物理边界合并并处理 Windows DPI 虚拟化的可靠截图验收;Batch113 增强 AntD Popover 圆角弹层、抗锯齿定位箭头、pointAtCenter 几何诊断、自定义弹层颜色、自动文字对比色、弹层 token 默认值,以及默认值为 Close、打开时修改会重建弹层的 CloseText;Batch285 补齐独立 Demo 标题、截图入口、README、组件映射和文档合规 Smoke:Batch285PopoverComplianceSmoke)
  • TAntSkeleton(Batch219 新增只创建一个骨架屏组件的独立简体中文 Demo:原生 TLabel 仅用于标题/说明,展示“商品信息加载中”、静态活动填充、大圆形头像、标题宽度 184、3 行段落、末行宽度 228、Round=True、BlockRadius=8 和小号圆角按钮;Batch118 增加 Skeleton token 默认值、填充色诊断、确定性几何辅助与基于辅助方法的圆角绘制;Batch290 补齐独立 Demo 标题、截图入口、README、组件映射、历史文档和构建脚本合规 Smoke:Batch290SkeletonComplianceSmoke)
  • TAntSkeletonAvatar(Batch137:独立头像占位符,支持圆形/方形、尺寸、裁剪几何和 GDI+ 抗锯齿圆角绘制;已有只承载该组件的独立简体中文 Demo 与 Smoke)
  • TAntSkeletonButton(Batch138:独立按钮占位符,支持尺寸、块级布局、默认/方形/圆角/圆形和 GDI+ 抗锯齿圆角绘制;已有只承载该组件的独立简体中文 Demo 与 Smoke)
  • TAntSkeletonInput(Batch134:独立输入框占位符,支持尺寸、Block、裁剪几何和 GDI+ 抗锯齿圆角绘制;已有只承载该组件的独立简体中文 Demo 与 Smoke)
  • TAntSkeletonImage(Batch135:独立图片占位符,支持居中图标、裁剪几何和抗锯齿圆角背景;已有只承载该组件的独立简体中文 Demo 与 Smoke)
  • TAntSkeletonNode(Batch136:独立通用节点占位符,支持与 Loading 状态联动的绘制;已有只承载该组件的独立简体中文 Demo 与 Smoke)
  • TAntModal(Batch218 新增只创建一个 TAntModal 的独立简体中文 Demo;Batch117 增强默认宽度、几何诊断与透明色键圆角 Popup 绘制;Batch289 补齐独立 Demo 标题、截图入口、README、组件映射、历史文档和构建脚本合规 Smoke:Batch289ModalComplianceSmoke)

目录结构

  • Source:运行时组件、主题、绘图和设计时注册单元
  • Packages\DelphiXE2:Delphi XE2 运行时包和设计时包
  • Demo:纯代码 VCL 示例工程,无需 DFM
  • Docs:组件映射和路线图

Delphi XE2 安装方式

  1. 打开 Packages\DelphiXE2\AntDesignVCL_XE2.dpk。
  2. 编译运行时包。
  3. 打开 Packages\DelphiXE2\AntDesignVCLDesign_XE2.dpk。
  4. 编译并安装设计时包。
  5. 在组件面板中找到 Ant Design VCL 页签。

如果 IDE 提示找不到源文件,请把本项目的 Source 目录加入 Delphi Library Path。

Demo

打开并运行:

text
Demo\AntDesignDemo.dpr

Demo 会展示按钮 color/variant/block API、输入框、多行文本、选择器、选择器远程搜索/虚拟窗口/多字段搜索、AutoComplete 自由输入/options/open/backfill、日期/范围/时间选择、开关、复选框/复选框组、单选框/单选框组、滑块 step/marks/range、评分 half/tooltip/clear、表单 RuleDefs、分组校验、依赖字段、动态 Form.List/嵌套 Form.List 风格字段、OnValuesChange、Provider 联动、异步校验状态、错误汇总、reset、提示、标签、徽标、进度、加载、表格排序筛选、服务端请求绑定、拖拽预览排序、固定列滚动阴影、隐藏列 metadata、server query adapter、可编辑单元格、树形数据、loading 状态、菜单选中路径、步骤条、时间轴、树、Upload fileList/Dragger、Modal、抽屉、通知、确认弹层、Tooltip、Tabs、分页、头像、统计、Collapse、List、Skeleton、Popover、Result 和 Empty 组件。

设计原则

  • 以 Delphi XE2 / VCL 原生 GDI 绘制为主,不依赖 WebView。
  • 公共 token 集中在 AntDesign.Theme.pas,后续可以扩展暗色主题、紧凑主题和企业自定义主题。
  • 常用组件优先做到“能安装、能拖拽、能运行、视觉接近 Ant Design”。
  • 对复杂组件如 Table、Tree、DatePicker、Upload、Form,会分阶段增强。

当前限制

  • 这是初始可用骨架,还不是 Ant Design 全量像素级实现。
  • Modal 组件 TAntModal 为自绘 Ant Design 风格弹窗,支持遮罩、OK/Cancel、打开状态、MaskClosable、基础 Keyboard/Esc、Loading、ConfirmLoading、页脚控制和生命周期回调;Popup 以 #F5F5F5 透明色键清空画布,再用 AntDrawRoundRect 绘制白色 8px 抗锯齿圆角卡片和边框,不使用 alpha 窗口或 layered window。Batch117 增强默认宽度 520、圆角/header/footer/body padding/mask alpha token、分区几何诊断和顶层窗体像素回归;Batch218 提供一个 TAntModal 的独立简体中文 Demo 和真实无边框弹窗截图;Batch289 通过 Batch289ModalComplianceSmoke 固化独立 Demo、简体中文说明、Demos\Batch218Modal\batch-218-components.png 截图入口、README/ComponentMap 登记和构建脚本入口。ConfirmLoading 仅给确认按钮文案追加省略号,Loading 仅替换正文并绘制占位条;动画、焦点陷阱、自动焦点、destroyOnHidden、异步 onOk、完整 Info/Error 类型视觉、RTL 与无障碍尚未实现。
  • 骨架屏组件 TAntSkeleton 的 Active=True 仅切换静态活动填充色,不包含真实 gradient 或 shimmer 动画;Loading=False 仅清空占位内容。Batch219Smoke 以原生 TForm 作为 PaintTo 父容器,核对圆形头像、标题、段落和圆角按钮的圆角像素,以及按钮不与最后一行段落重叠;Batch290 通过 Batch290SkeletonComplianceSmoke 固化独立 Demo、简体中文说明、Demos\Batch219Skeleton\batch-219-components.png 截图入口、README/ComponentMap 登记和构建脚本入口。
  • TAntTable 目前基于 TStringGrid 做视觉增强;Batch189 补齐独立简体中文 Demo、截图和针对订单列定义、行选择、分页、汇总及加载进度的 Smoke。组件已支持基础排序、筛选、AntD-style 空状态图形/描述/操作按钮诊断、分页状态、base-row 管线、rowKey 选择保持、列元数据、列 summary、分组表头、自定义单元格渲染、虚拟窗口、可编辑单元格 API、树形数据投影、可展开详情行、Spin-style loading 覆盖层/百分比、服务端请求生命周期、旧响应防覆盖、拖拽预览/提交排序、固定列/表头阴影、键盘交互、HTTP 与事件传输、列宽调整和 sticky 横向滚动条诊断;更丰富的无障碍事件互操作仍待后续补充。
  • TAntSelect 已使用自绘下拉层,并支持基础搜索、多选、标签模式、分词标签、最大选择数、清空动作、option metadata、分组、disabled option、custom tag text、NotFoundContent、LoadingText、远程搜索生命周期、旧异步结果防覆盖、虚拟 option 窗口、多字段搜索、内建 HTTP remote search、JSON/text options 响应应用、timeout、取消和诊断;完整键盘无障碍与更精细浮层定位后续继续补。
  • 日期选择器已使用自绘 TAntCalendar 作为弹层,支持面板年月导航、面板 cell/bounds helper、popup 诊断和 min/max 选择保护;完整 header 交互后续继续补。
  • TAntMenu 当前支持横向/纵向菜单、折叠、key、选中路径、打开键集合、多选、暗色主题、项目图标、弹出子菜单、父级子菜单行为、键盘活动项导航、横向溢出状态和弹层显示自定义;Batch186 补齐弹出子项的绘制/鼠标命中共用几何、禁用子项与整体禁用保护,以及独立中文示例。弹出层仍在控件内部自绘并按控件边界裁剪;更完整的跨宿主浮层定位与无障碍细节后续继续补。
  • TAntForm 当前支持字段名和值读写、Switch/Checkbox 布尔状态、Radio/Slider/Rate 等选项与数值字段、必填/自定义校验、RuleDefs、分组字段、初始值、reset、错误汇总、依赖字段、动态 Form.List 风格字段、嵌套列表路径、OnValuesChange、异步校验状态、旧异步结果防覆盖、ValidateFields recursive/dirty/validateOnly 语义,以及 touched/validated/dirty 字段状态;TAntFormProvider 已支持非可视命名表单注册、OnFormChange、OnFormFinish、外部 SubmitForm、all-form value summary、多表单 ValidateForms/SubmitForms 和聚合状态摘要;完整 Promise 风格异步规则编排和更完整表单布局后续继续补。 补充:TAntUpload 当前支持 fileList/defaultFileList 字符串元数据、uid/name/status/percent/url/thumbUrl helper、唯一隐式 uid、accept/beforeUpload、本地 listType/Dragger/DraggerHint 状态、preview/download/remove helper,并保留 Batch13 的 Items 路径列表兼容;Batch123 增加 customRequest 传输桥、请求参数构造、响应/错误诊断和 data/header/credentials 透传,Batch133 增加默认 HTTP multipart/form-data 上传、timeout、transport kind、request content type/body 和响应/错误诊断。按钮、拖拽区、图片卡片、圆形缩略项、状态点和进度条均使用 AntDrawRoundRect 抗锯齿圆角路径;directory/paste 和异步请求队列后续继续补。
  • TAntList 在 Batch124 增加 AntD List.Item.Meta 风格元数据,支持 key/title/description/avatar/actions/extra/disabled 辅助读取、disabled 点击拦截,以及 item/avatar/meta/extra/actions 几何诊断,同时保留 Batch42 的 Title=Description 旧格式、分页和选择事件。
  • TAntInputNumber 当前支持格式化/解析辅助、前缀/后缀、步进按钮、键盘步进、OnStep、受控越界辅助、状态和变体渲染,并保留 Batch11 的 Value 最小值/最大值裁剪兼容;高精度字符串值、滚轮变更、失焦提交和独立微调器模式后续继续补齐。
  • TAntAutoComplete 当前支持自由文本 Value、键盘字符/退格/Delete 输入、运行时建议列表、Options/Items 字符串元数据、受控 Open、Backfill、DefaultActiveFirstOption、FilterOption、状态和变体渲染;Batch187 增加 ReadOnly、禁用时自动关闭建议列表和安全的延迟释放,ReadOnly 仅阻断用户交互,外部 Value 受控赋值保持可用;Batch267 增加单组件 Demo 契约与简体中文说明 Smoke。自定义输入子组件、自定义建议列表渲染、回调式筛选、完整中文输入法组合处理和嵌入式文本光标编辑后续继续补。
  • TAntCascader 在 Batch188 增加独立中文 Demo、多列逐级 popup 与禁用态回归:普通模式按路径前缀创建多列,点击父级展开下一列、切换分支替换右侧旧列,单选叶子提交并关闭,多选叶子保持打开;上下键在当前列跳过禁用项且不回绕,左右键跨列,Enter/Space 提交,Esc 关闭。带搜索词时保留完整路径结果列。禁用会关闭已打开 popup,并阻断选择、键盘、清除、ItemIndex 与批量 Values 改写;输入框圆角由真实窗口像素回归覆盖。popup 容器圆角、嵌入式搜索输入和完整无障碍键盘模型仍待后续专门实现。
  • 日期范围选择器已使用双 TAntCalendar 自绘弹层,支持临时 start/end 面板选择、显式 apply、panel/bounds 诊断和 min/max 保护;更完整的 hover range preview 与键盘交互后续继续补。
  • 时间选择器已使用自绘输入框和自绘时间列弹层,支持 NeedConfirm 临时选择、ApplyPanelTime 提交、步进截断、禁用时间项、隐藏禁用项、动态禁用事件、键盘导航、滚轮联动、ShowNow、OnRenderExtraFooter、12 小时 AM/PM 列,以及可测的滚动窗口/选中项定位;后续继续补更细的交互动效。
  • 时间范围选择器在 Batch102 增加 Start/End 已提交范围、独立草稿与滚动视口、SelectRange、BeginPanelRange、ApplyActivePanelTime、24/12 小时格式、禁用时间代理、弹窗和页头几何诊断。Use12Hours 会转换显示格式,使范围输入正确显示 AM/PM。官方参考:Ant Design TimePicker。
  • TAntBadgeRibbon 在 Batch103 增加 AntD Badge.Ribbon 包裹控件,支持一个窗口化内容子控件、起始/结束位置、自定义 RibbonColor、深色折角、叠层点击转发、透明命中测试和可测几何诊断;折角使用 GDI+ 抗锯齿多边形绘制。Batch178 提供独立简体中文 Demo 和截图,Batch243 增加文档中文化与单组件契约 Smoke。
  • TAntDirectoryTree 在 Batch104 增加 AntD Tree.DirectoryTree 包装控件,默认启用 BlockNode、ShowLine、Multiple,支持 ExpandAction 的 click/doubleClick/false 语义、目录元数据识别、目录图标诊断和选中目录 token 颜色。
  • TAntImagePreviewGroup 在 Batch105 增加 AntD Image.PreviewGroup 风格的多图预览组,支持 Items、Preview、Open、Current、OpenPreview、Next、Prev、PreviewCountText、OnOpenChange、OnChange 和可测缩略图/预览区域几何。
  • TAntImage 在 Batch221 增加图片独立简体中文 Demo:单个组件展示“订单预览图片”,程序生成确定性蓝青黄白位图,并以 Radius=16、Fit=aifCover 验证圆角覆盖模式。图片先按矩形 StretchDraw,再回填圆角外部区域并使用 GDI+ AntDrawRoundRect 绘制抗锯齿边框;红色覆盖图片的像素 Smoke 验证圆角外侧不红、内部为红。Batch292 使用 Batch292ImageComplianceSmoke 固化图片与图片预览组 Demo 标题、截图入口、文档和构建脚本登记。Preview 仍仅是状态属性,未实现单图点击预览;网络图片加载、缩放、移动、焦点陷阱和无障碍尚未实现。
  • TAntColorPicker 在 Batch106 增强 AntD 颜色选择器弹出面板语义,支持 Open、DropDown、CloseUp、OnOpenChange、点击/悬停触发、ColorFormat 的 hex/rgb/hsb 文本、DisabledAlpha、预设色块命中和可测面板/色谱/滑块/清除按钮几何。
  • TAntColorPicker 在 Batch107 增加顶层弹层模式,支持 PopupMode=acpmPopup、Placement、AutoAdjustOverflow、PopupWidth/PopupHeight、PopupVisible、LastPopupBounds 与 PopupBoundsFor,用于贴近 AntD 颜色选择器的定位弹层语义。
  • TAntColorPicker 在 Batch139 增加真实 HSB 色谱、Hue/Saturation/Brightness 诊断、游标位置和键盘面板编辑,同时保留 Batch108 的拖拽编辑模型、透明度持久化和 RGB rgba(...) 显示;Batch268 增加颜色选择器系列 Demo 标题与简体中文说明 Smoke。
  • TAntInputGroup 在 Batch140 增加 AntD 输入框组合风格的 Compact、Block、BorderOverlap、Direction、GroupSize 和子项几何诊断,支持紧凑、块级、水平及垂直布局;它只管理直接子控件的布局,Ant 子控件接收尺寸 token,原生 VCL 子控件仅接收匹配尺寸而保留自身绘制和交互。独立简体中文 Demo Demos\Batch140InputGroup\Batch140InputGroupDemo.dpr 仅承载该组件;Batch266 增加单组件契约与中文说明 Smoke;外层壳体通过 GDI+ AntDrawRoundRect 绘制抗锯齿圆角并保留统一边框。
  • TAntApp 在 Batch222 增加应用上下文独立简体中文 Demo:Demo 仅创建一个 TAntApp,通过其内部 Message 服务展示中文上下文反馈,截图入口为 Demos\Batch222App\batch-222-components.png;原生 VCL 窗体仅作承载和截图背景,Notification 与 Modal 不在同一截图中叠加。Batch293 使用 Batch293AppComplianceSmoke 固化 Demo 标题、中文异常、截图入口、文档和构建脚本登记。Batch109 提供 Ant Design App 风格的非可视上下文,统一暴露 Message、NotificationService、Modal,支持 InstallGlobal、Current、HasCurrent、默认反馈配置下推和 CloseAll。它不直接绘制界面,不等同于 React App/useApp,也不负责主题或语言配置。
  • TAntBorderBeam 在 Batch110 增加 AntD BorderBeam 风格装饰容器,支持一个窗口化内容子控件、圆角轨道、移动光束、渐变 stops、ReducedMotion 降级和几何诊断;Batch241 补齐只创建 TAntBorderBeam 的独立简体中文 Demo、截图和圆角轨道像素 Smoke。
  • 反馈弹层组件:TAntTooltip 在 Batch213 新增仅承载文字提示组件的独立简体中文 Demo,并通过 Batch283 登记合规 Smoke;原生 VCL TButton 仅作为 ShowFor 的弹层宿主,展示 apopTop、ArrowPointAtCenter、中文文本、圆角与抗锯齿箭头;Batch111 增强 AntD Tooltip 圆角弹层、抗锯齿箭头、pointAtCenter、自动文字对比色、padding/radius token 默认值和几何诊断;TAntPopconfirm 在 Batch214 新增仅承载气泡确认框的独立简体中文 Demo,并通过 Batch284 登记 Batch284PopconfirmComplianceSmoke;原生 VCL TButton 仅作为 ShowFor 的弹层宿主,展示顶部确认弹层、中文标题/说明、取消/确认按钮、警告图标、居中箭头、圆角与抗锯齿箭头;Batch112 增强 AntD Popconfirm 圆角弹层、自绘箭头/图标、ArrowPointAtCenter、自定义图标色和几何诊断;TAntPopover 在 Batch215 新增只承载一个气泡卡片的独立简体中文 Demo,并通过 Batch285 登记 Batch285PopoverComplianceSmoke;原生 VCL TButton 仅作为 ShowFor 弹层宿主,展示 apopTop、ArrowPointAtCenter、中文标题/正文/关闭按钮、300x136、8px 圆角、黄色背景、自动文字对比色,以及按宿主和顶层 Popup 实际物理边界合并并处理 Windows DPI 虚拟化的可靠截图验收;Batch113 增强 AntD Popover 圆角弹层、自绘箭头、pointAtCenter、自定义弹层颜色、自动文字对比色、几何诊断,以及默认值为 Close、打开时修改会重建弹层的 CloseText;TAntDrawer 在 Batch195 新增抽屉独立简体中文 Demo,并通过 Batch286 登记 Batch286DrawerComplianceSmoke;Batch114 增强 AntD Drawer size preset、start/end close placement、mask alpha、extra/footer、Skeleton loading 和几何诊断;TAntNotification 在 Batch216 新增单通知独立简体中文 Demo 与可靠截图,并通过 Batch287 登记 Batch287NotificationComplianceSmoke:无边框白色 VCL 宿主只作截图背景,截图直接捕获真实顶层通知窗体并处理当前 Windows DPI 虚拟化环境,私有自绘进度条按抗锯齿圆角路径裁剪,避免覆盖底部圆角;Batch115 增强 AntD Notification 宽度/圆角 token、关闭与视觉操作控件、进度条、堆叠偏移和几何诊断;TAntMessage 在 Batch217 新增只创建一个 Message 的独立简体中文 Demo,并通过 Batch288 登记 Batch288MessageComplianceSmoke:无边框白色原生 VCL 窗体仅作截图背景,持久成功提示展示“订单提交成功,正在为您生成电子凭证。”;截图实际捕获 Message 顶层无边框置顶窗体,并按当前 Windows DPI 虚拟化比例换算,未声明或验证多显示器支持及 PerMonitorV2 DPI 感知。Batch116 增强 AntD Message 宽度/高度/圆角/padding token、top-center popup 几何诊断、有效图标诊断、堆叠偏移和圆角 chrome;PauseOnHover 与 StackThreshold 目前仅为配置属性,尚未实现悬停暂停或折叠堆叠交互;TAntModal 在 Batch117 增强 AntD 默认宽度 520、圆角/header/footer/body padding/mask alpha token、分区几何诊断和圆角 chrome,并通过 Batch289 登记 Batch289ModalComplianceSmoke,确保独立示例、文档、截图入口和构建脚本不回退。
  • TAntConfigProvider 在 Batch38 提供全局主题令牌写入、目标 owner/control tree 的组件尺寸与禁用状态传播、方向和语言元数据;Batch242 补齐只创建该非可视组件的独立简体中文 Demo 和截图。多个 Provider 目前遵循最后写入者生效。

XE2 构建脚本

bat
Scripts\build_xe2.bat

脚本使用:

text
C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\bin

截图

  • Screenshots\batch-04-components.png
  • Docs\Batch04.md
  • Screenshots\batch-05-components.png
  • Docs\Batch05.md
  • Screenshots\batch-06-components.png
  • Docs\Batch06.md
  • Screenshots\batch-07-components.png
  • Docs\Batch07.md
  • Screenshots\batch-08-components.png
  • Docs\Batch08.md
  • Screenshots\batch-09-components.png
  • Docs\Batch09.md
  • Screenshots\batch-10-components.png
  • Docs\Batch10.md
  • Screenshots\batch-11-components.png
  • Docs\Batch11.md
  • Docs\Batch12.md
  • Screenshots\batch-13-components.png
  • Docs\Batch13.md
  • Docs\Batch14.md
  • Screenshots\batch-15-components.png
  • Docs\Batch15.md
  • Screenshots\batch-16-components.png
  • Docs\Batch16.md
  • Docs\Batch17.md
  • Screenshots\batch-18-components.png
  • Docs\Batch18.md
  • Screenshots\batch-19-components.png
  • Docs\Batch19.md
  • Screenshots\batch-20-components.png
  • Docs\Batch20.md
  • Screenshots\batch-21-components.png
  • Docs\Batch21.md
  • Screenshots\batch-22-components.png
  • Docs\Batch22.md
  • Screenshots\batch-23-components.png
  • Docs\Batch23.md
  • Screenshots\batch-24-components.png
  • Docs\Batch24.md
  • Screenshots\batch-25-components.png
  • Docs\Batch25.md
  • Screenshots\batch-26-components.png
  • Docs\Batch26.md
  • Screenshots\batch-27-components.png
  • Docs\Batch27.md
  • Screenshots\batch-28-components.png
  • Docs\Batch28.md
  • Screenshots\batch-29-components.png
  • Docs\Batch29.md
  • Screenshots\batch-30-components.png
  • Docs\Batch30.md
  • Screenshots\batch-31-components.png
  • Docs\Batch31.md
  • Screenshots\batch-32-components.png
  • Docs\Batch32.md
  • Screenshots\batch-33-components.png
  • Docs\Batch33.md
  • Screenshots\batch-34-components.png
  • Docs\Batch34.md
  • Screenshots\batch-35-components.png
  • Docs\Batch35.md
  • Screenshots\batch-36-components.png
  • Docs\Batch36.md
  • Screenshots\batch-37-components.png
  • Docs\Batch37.md
  • Screenshots\batch-38-components.png
  • Docs\Batch38.md
  • Screenshots\batch-242-components.png
  • Docs\Batch242.md
  • Docs\Batch243.md
  • Docs\Batch244.md
  • Docs\Batch245.md
  • Docs\Batch246.md
  • Docs\Batch247.md
  • Docs\Batch248.md
  • Docs\Batch249.md
  • Docs\Batch250.md
  • Docs\Batch251.md
  • Docs\Batch252.md
  • Docs\Batch253.md
  • Docs\Batch254.md
  • Docs\Batch255.md
  • Docs\Batch256.md
  • Docs\Batch257.md
  • Docs\Batch258.md
  • Docs\Batch259.md
  • Docs\Batch260.md
  • Docs\Batch261.md
  • Docs\Batch262.md
  • Docs\Batch263.md
  • Docs\Batch264.md
  • Docs\Batch265.md
  • Docs\Batch266.md
  • Docs\Batch267.md
  • Docs\Batch268.md
  • Docs\Batch269.md
  • Docs\Batch270.md
  • Docs\Batch271.md
  • Docs\Batch39.md
  • Screenshots\batch-40-components.png
  • Docs\Batch40.md
  • Screenshots\batch-41-components.png
  • Docs\Batch41.md
  • Screenshots\batch-42-components.png
  • Docs\Batch42.md
  • Demos\Batch215Popover\batch-215-components.png
  • Docs\Batch43.md
  • Screenshots\batch-44-components.png
  • Docs\Batch44.md
  • Screenshots\batch-45-components.png
  • Docs\Batch45.md
  • Screenshots\batch-46-components.png
  • Docs\Batch46.md
  • Demos\Batch217Message\batch-217-components.png
  • Docs\Batch47.md
  • Demos\Batch216Notification\batch-216-components.png
  • Docs\Batch48.md
  • Screenshots\batch-49-components.png
  • Docs\Batch49.md
  • Demos\Batch213Tooltip\batch-213-components.png
  • Docs\Batch50.md
  • Demos\Batch214Popconfirm\batch-214-components.png
  • Docs\Batch51.md
  • Demos\Batch195Drawer\batch-195-components.png
  • Docs\Batch52.md
  • Screenshots\batch-53-components.png
  • Docs\Batch53.md
  • Screenshots\batch-54-components.png
  • Docs\Batch54.md
  • Screenshots\batch-55-components.png
  • Docs\Batch55.md
  • Screenshots\batch-56-components.png
  • Docs\Batch56.md
  • Screenshots\batch-57-components.png
  • Docs\Batch57.md
  • Screenshots\batch-58-components.png
  • Docs\Batch58.md
  • Screenshots\batch-59-components.png
  • Docs\Batch59.md
  • Screenshots\batch-60-components.png
  • Docs\Batch60.md
  • Screenshots\batch-61-components.png
  • Docs\Batch61.md
  • Screenshots\batch-62-components.png
  • Docs\Batch62.md
  • Demos\Batch157Segmented\batch-157-components.png
  • Docs\Batch63.md
  • Screenshots\batch-64-components.png
  • Docs\Batch64.md
  • Screenshots\batch-65-components.png
  • Docs\Batch65.md
  • Screenshots\batch-66-components.png
  • Docs\Batch66.md
  • Screenshots\batch-67-components.png
  • Docs\Batch67.md
  • Demos\Batch218Modal\batch-218-components.png
  • Docs\Batch68.md
  • Screenshots\batch-69-components.png
  • Docs\Batch69.md
  • Screenshots\batch-70-components.png
  • Docs\Batch70.md
  • Screenshots\batch-71-components.png
  • Docs\Batch71.md
  • Screenshots\batch-72-components.png
  • Docs\Batch72.md
  • Screenshots\batch-73-components.png
  • Docs\Batch73.md
  • Screenshots\batch-74-components.png
  • Docs\Batch74.md
  • Screenshots\batch-75-components.png
  • Docs\Batch75.md
  • Screenshots\batch-76-components.png
  • Docs\Batch76.md
  • Screenshots\batch-77-components.png
  • Docs\Batch77.md
  • Screenshots\batch-78-components.png
  • Docs\Batch78.md
  • Screenshots\batch-79-components.png
  • Docs\Batch79.md
  • Screenshots\batch-80-components.png
  • Docs\Batch80.md
  • Screenshots\batch-81-components.png
  • Docs\Batch81.md
  • Screenshots\batch-82-components.png
  • Docs\Batch82.md
  • Screenshots\batch-83-components.png
  • Docs\Batch83.md
  • Screenshots\batch-84-components.png
  • Docs\Batch84.md
  • Screenshots\batch-85-components.png
  • Docs\Batch85.md
  • Screenshots\batch-86-components.png
  • Docs\Batch86.md
  • Screenshots\batch-87-components.png
  • Docs\Batch87.md
  • Screenshots\batch-88-components.png
  • Docs\Batch88.md
  • Screenshots\batch-89-components.png
  • Docs\Batch89.md
  • Screenshots\batch-90-components.png
  • Docs\Batch90.md
  • Screenshots\batch-91-components.png
  • Docs\Batch91.md
  • Screenshots\batch-92-components.png
  • Docs\Batch92.md
  • Screenshots\batch-93-components.png
  • Docs\Batch93.md
  • Screenshots\batch-94-components.png
  • Docs\Batch94.md
  • Screenshots\batch-95-components.png
  • Docs\Batch95.md
  • Screenshots\batch-96-components.png
  • Docs\Batch96.md
  • Screenshots\batch-97-components.png
  • Docs\Batch97.md
  • Screenshots\batch-98-components.png
  • Docs\Batch98.md
  • Screenshots\batch-99-components.png
  • Docs\Batch99.md
  • Screenshots\batch-100-components.png
  • Docs\Batch100.md
  • Screenshots\batch-101-components.png
  • Docs\Batch101.md
  • Screenshots\batch-122-components.png
  • Docs\Batch122.md
  • Screenshots\batch-102-components.png
  • Docs\Batch102.md
  • Screenshots\batch-103-components.png
  • Docs\Batch103.md
  • Screenshots\batch-104-components.png
  • Docs\Batch104.md
  • Demos\Batch176ImagePreviewGroup\batch-176-components.png
  • Docs\Batch105.md
  • Screenshots\batch-106-components.png
  • Docs\Batch106.md
  • Screenshots\batch-107-components.png
  • Docs\Batch107.md
  • Screenshots\batch-108-components.png
  • Docs\Batch108.md
  • Screenshots\batch-109-components.png
  • Docs\Batch109.md
  • Demos\Batch222App\batch-222-components.png
  • Docs\Batch222.md
  • Docs\Batch293.md
  • Screenshots\batch-110-components.png
  • Docs\Batch110.md
  • Screenshots\batch-241-components.png
  • Docs\Batch241.md
  • Demos\Batch213Tooltip\batch-213-components.png
  • Docs\Batch111.md
  • Demos\Batch214Popconfirm\batch-214-components.png
  • Docs\Batch112.md
  • Demos\Batch215Popover\batch-215-components.png
  • Docs\Batch113.md
  • Demos\Batch195Drawer\batch-195-components.png
  • Docs\Batch114.md
  • Demos\Batch216Notification\batch-216-components.png
  • Docs\Batch115.md
  • Demos\Batch216Notification\batch-216-components.png
  • Docs\Batch216.md
  • Demos\Batch217Message\batch-217-components.png
  • Docs\Batch217.md
  • Demos\Batch218Modal\batch-218-components.png
  • Docs\Batch218.md
  • Demos\Batch219Skeleton\batch-219-components.png
  • Docs\Batch219.md
  • Docs\Batch290.md
  • Demos\Batch220Tour\batch-220-components.png
  • Docs\Batch220.md
  • Docs\Batch291.md
  • Demos\Batch221Image\batch-221-components.png
  • Docs\Batch221.md
  • Docs\Batch292.md
  • Demos\Batch217Message\batch-217-components.png
  • Docs\Batch116.md
  • Demos\Batch218Modal\batch-218-components.png
  • Docs\Batch117.md
  • Docs\Batch289.md
  • Screenshots\batch-118-components.png
  • Docs\Batch118.md
  • Docs\Batch119.md
  • Docs\Batch120.md
  • Screenshots\batch-121-components.png
  • Docs\Batch121.md
  • Screenshots\batch-123-components.png
  • Docs\Batch123.md
  • Screenshots\batch-124-components.png
  • Docs\Batch124.md
  • Screenshots\batch-125-components.png
  • Docs\Batch125.md
  • Screenshots\batch-126-components.png
  • Docs\Batch126.md
  • Screenshots\batch-127-components.png
  • Docs\Batch127.md
  • Screenshots\batch-128-components.png
  • Docs\Batch128.md
  • Screenshots\batch-129-components.png
  • Docs\Batch129.md
  • Screenshots\batch-130-components.png
  • Docs\Batch130.md
  • Screenshots\batch-131-components.png
  • Docs\Batch131.md
  • Screenshots\batch-132-components.png
  • Docs\Batch132.md
  • Screenshots\batch-133-components.png
  • Docs\Batch133.md