Sign in Join

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

Catalog · How the catalog works

Random project

SkiaVclControlsFree

SkiaVclControls — 基于 Delphi Skia 的 Material Design VCL 控件库

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

SkiaVclControlsfree

基于 Delphi 内置 Skia 的 Material Design VCL 控件库(精简版)

English | 中文


特性

  • Material Design 3 风格设计
  • Skia 渲染 - 利用 Delphi 内置 Skia 支持,高质量图形渲染
  • DPI 感知 - 完美支持高 DPI 显示
  • 流畅动画 - 内置悬停、点击动画效果
  • MUI 主题 - 内置 Material-UI 配色方案
  • 中文支持 - 自动检测并使用系统中文字体
  • 透明渲染 - 支持 Alpha 通道透明度,父子控件透明合成
  • 禁用状态 - 完整的 Enabled 禁用状态视觉支持

控件列表

基础控件

控件 说明
TDSkLabel Skia 绘制的透明标签,支持渐变、描边、阴影和自动大小
TDSkButton Material Design 按钮,支持 MUI 配色、Ripple 动画、多种样式和图标
TDSkButtonGroup 按钮组,支持水平/垂直排列、互斥选择
TDSkPanel Material Design 面板,支持多种容器样式和悬停效果

选择控件

控件 说明
TDSkRadio 单选按钮,MUI 风格,支持透明背景
TDSkRadioGroup 单选按钮组,自绘模式,支持标题显示
TDSkCheckbox 复选框,支持三态(未选中/选中/不确定)
TDSkCheckboxGroup 复选框组,支持多选
TDSkSwitch 开关控件,轨道+滑块滑动开关
TDSkSwitchGroup 开关组
TDSkEdit 输入框,支持标签、占位符、清除按钮、错误状态
TDSkSelect 下拉选择,支持搜索、清除、多种尺寸

反馈控件

控件 说明
TDSkSlider 滑块控件,支持连续/间续/范围/垂直滑块
TDSkProgressBar 线性进度条,支持确定/不确定/缓冲模式
TDSkCircularProgress 环形进度条
TDSkSnackbar 消息条,支持自动隐藏和操作按钮

导航控件

控件 说明
TDSkTabs 选项卡,支持标准/底部导航样式,水平/垂直方向
TDSkStepper 步骤条,支持步骤状态管理和自定义内容

系统要求

  • Delphi 11 Alexandria 或更高版本(需内置 Skia 支持)
  • Windows 平台
  • Skia 包 - Delphi 安装时需选择 Skia 支持

安装

通过 Delphi IDE 安装

  1. 克隆或下载本仓库到本地
  2. 打开 SkiaVclControls.dpk(设计时包)
  3. 在 Project Manager 中右键点击 SkiaVclControls.bpl
  4. 选择 Compile,然后选择 Install
  5. 控件将出现在组件面板的 SkiaVclControlsfree 页签中

快速开始

TDSkButton 使用示例

delphi
uses
  SkiaVclControls.Button, SkiaVclControls.Types;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Button1 := TDSkButton.Create(Self);
  Button1.Parent := Self;
  Button1.ButtonText := '点击我';
  Button1.MUIColorScheme := muiPrimary;
  Button1.MUIStyle := muiContained;
  Button1.HoverEffect := heRipple;
end;

TDSkRadioGroup 使用示例

delphi
uses
  SkiaVclControls.RadioGroup, SkiaVclControls.Types;

procedure TForm1.FormCreate(Sender: TObject);
begin
  RadioGroup1 := TDSkRadioGroup.Create(Self);
  RadioGroup1.Parent := Self;
  RadioGroup1.Caption := '选择选项';
  RadioGroup1.Items.Add('选项一');
  RadioGroup1.Items.Add('选项二');
  RadioGroup1.Items.Add('选项三');
  RadioGroup1.ItemIndex := 0;
  RadioGroup1.MUIColorScheme := muiPrimary;
end;

项目结构

pascal
SkiaVclControlsfree/
????????? Sources/                         # ?????????
???   ????????? SkiaVclControls.Types.pas        # ?????????????????????
???   ????????? SkiaVclControls.Base.pas         # ??????
???   ????????? SkiaVclControls.LabelControl.pas # ??????
???   ????????? SkiaVclControls.Button.pas       # ??????
???   ????????? SkiaVclControls.ButtonGroup.pas  # ?????????
???   ????????? SkiaVclControls.Panel.pas        # ??????
???   ????????? SkiaVclControls.Radio.pas        # ????????????
???   ????????? SkiaVclControls.RadioGroup.pas   # ???????????????
???   ????????? SkiaVclControls.Checkbox.pas     # ?????????
???   ????????? SkiaVclControls.CheckboxGroup.pas# ????????????
???   ????????? SkiaVclControls.Switch.pas       # ??????
???   ????????? SkiaVclControls.SwitchGroup.pas  # ?????????
???   ????????? SkiaVclControls.Slider.pas       # ??????
???   ????????? SkiaVclControls.Edit.pas         # ?????????
???   ????????? SkiaVclControls.Select.pas       # ????????????
???   ????????? SkiaVclControls.ProgressBar.pas  # ?????????
???   ????????? SkiaVclControls.CircularProgress.pas # ???????????????
???   ????????? SkiaVclControls.Snackbar.pas     # ?????????
???   ????????? SkiaVclControls.Stepper.pas      # ?????????
???   ????????? SkiaVclControls.Tabs.pas         # ?????????
???   ????????? SkiaVclControls.MUIHelper.pas    # MUI ?????? Helper
???   ????????? SkiaVclControls.Register.pas     # ????????????
????????? Demo/                            # ????????????
???   ????????? AdminDemo/                   # ????????????Demo
????????? screenshots/                     # ??????
????????? SkiaVclControls.dpk              # ????????????
????????? build.bat                        # ????????????

截图

Admin 综合演示

TDSkLabel 标签

Label

TDSkButton 按钮

Button

TDSkPanel 面板

Panel

TDSkRadio 单选按钮

Radio

TDSkCheckbox 复选框

Checkbox

TDSkSwitch 开关

Switch

TDSkSlider 滑块

Slider

TDSkProgressBar / TDSkCircularProgress 进度条

Progress

TDSkSelect 下拉选择

Select

TDSkEdit 输入框

Edit

TDSkSnackbar 消息条

TDSkButtonGroup 按钮组

TDSkTabs 选项卡

TDSkStepper 步骤条


许可证

本项目采用 MIT 许可证


致谢