首页 > 其他分享 >TSkSvg组件使用

TSkSvg组件使用

时间:2024-06-10 16:14:08浏览次数:22  
标签:end Sender Vcl System TObject SkSvg1 使用 组件 TSkSvg

1. 把svg静态字符串写死程序里

image

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, System.Skia, Vcl.Skia, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    SkSvg1: TSkSvg;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

const
  /// <summary>
  /// 把图片写死在程序里
  /// </summary>
  svgStr = '<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1717364678249" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6571" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M0 0h1024v1024H0z" fill="#FFFFFF" fill-opacity="0" p-id="6572"></path><path d="M760.901604 195.216203m5.656854 5.656854l56.568543 56.568542q5.656854 5.656854 0 11.313709l-554.371717 554.371716q-5.656854 5.656854-11.313708 0l-56.568543-56.568542q-5.656854-5.656854 0-11.313709l554.371717-554.371716q5.656854-5.656854 11.313708 0Z" fill="#000000" p-id="6573"></path><path d="M828.783855 760.901627m-5.656854 5.656855l-56.568543 56.568542q-5.656854 5.656854-11.313708 0l-554.371717-554.371716q-5.656854-5.656854 0-11.313709l56.568543-56.568542q5.656854-5.656854 11.313708 0l554.371717 554.371716q5.656854 5.656854 0 11.313709Z" fill="#000000" p-id="6574"></path></svg>';

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  SkSvg1.Svg.Source := svgStr;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  SkSvg1.Svg.Source := '';
end;

end.

//这个SkSvg1.Svg.Source 的定义我们看下,父类是这样的
property Source: TSkSvgSource read FSource write SetSource;
//再点击 TSkSvgSource 进去,我们会看到 是 string的一个别名,所以可以直接string赋值
TSkSvgSource = type string;

看下以上代码的效果:

image

2. 动态加载svg图片

image

image

标签:end,Sender,Vcl,System,TObject,SkSvg1,使用,组件,TSkSvg
From: https://www.cnblogs.com/del88/p/18240747

相关文章

  • Serverless部署应用并使用Cloudflare加速和支持HTTPS
    ServerlessServerless是一种云计算模型,它使开发人员能够构建和运行应用程序,而无需关心底层的服务器基础设施。在传统的应用程序开发中,开发人员需要管理服务器的配置、扩展和维护等任务。而在Serverless模型中,这些任务都由云服务提供商来处理,开发人员只需专注于编写应用程序的......
  • C语言 & 图形化界面方式连接MySQL【C/C++】【图形化界面组件分享】
      博客主页:花果山~程序猿-CSDN博客文章分栏:MySQL之旅_花果山~程序猿的博客-CSDN博客关注我一起学习,一起进步,一起探索编程的无限可能吧!让我们一起努力,一起成长!目录一.配置开发环境 二,接口介绍1.mysql_init2.mysql_real_connect3.mysql_query4.对select结果分析......
  • VCL 和 FMX 中 使用 skia
    VCL组件化使用skia我们实例测试:然后生成exe,在本机运行,不会有任何问题,可以立即运行起来;把exe放到纯净的没有delphi没有skia的环境中,运行这个exe;就不行,就不会报任何错,双击exe没有反应;怎么办呢,在IDE里启用skia然后我们把project1.exe和sk4d.dll放到同一个目录里,在......
  • idea Webstorm Pycharm2024最新版 永久使用教程 附激活码亲测可用2099年
    IDEA2024的激活与安装(全网最靠谱,最快捷的方式)大家都在为使用IDEA需要收费而烦恼。IDEA,即IntelliJIDEA,是一款强大的集成开发环境,广泛应用于Java开发。但是IDEA是付费的,免费版功能有太少,怎么才能既免费,又能使用上正式版呢!当然还是激活啦(不是正版用不起,而是‘激活’更有性价比)......
  • 科学使用Typora 1.8.10.0,2024新版,保姆级手把手教程,破解困扰
    写一篇如何在此版本解除付费的文章,希望能帮助更多跟我一样的学生党或者有需要的人,有能力的各位还是希望大家尊重一下知识付费。非常简单,大家跟着一步步做就行了。下载Typora官网链接:Typora官方中文站(typoraio.cn)首先是安装后的激活到Typora\resources\page-dist\stati......
  • 将这张图片修复为彩色高清,然后在Python中,可以使用以下库来执行上述任务
    将这张图片修复为彩色高清,然后在Python中,可以使用以下库来执行上述任务OpenCV:用于图像处理、面部检测等。dlib:用于面部检测和特征点标记。Scikit-image:用于图像处理和修复。TensorFlow或PyTorch:用于训练和使用深度学习模型,如图像修复GAN和超分辨率模型。首先,我们需要将......
  • 字符相关函数的使用以及模拟实现
    库函数中有许多函数与字符串有关,一些常见的有strlen测量字符串的长度,strcpy拷贝字符串到新的字符串下,strcat进行字符串的追加等等,这篇文章会详细实现上述字符串函数的模拟实现。1.strlen的模拟实现首先我们先了解一下strlen函数,strlen是统计字符串内字符的数量的,而字符串的数......
  • C语言——使用函数创建动态内存
    一、堆和栈的区别1)栈(Stack):栈是一种自动分配和释放内存的数据结构,存储函数的参数值、局部变量的值等。栈的特点是后进先出,即最后进入的数据最先出来,类似于我们堆盘子一样。栈的大小和生命周期是由系统自动管理的,不需要程序员手动释放。2)堆(Heap):堆是由程序员手动分配和释......
  • 使用Python去除PNG图片背景
    要使用Python自动去除PNG图片的背景,你可以使用remove.bg的API,或者使用一些图像处理库如OpenCV和Pillow结合MaskR-CNN等深度学习模型。以下是一个使用Pillow库的简单示例:安装所需库:pipinstallpillownumpy使用以下代码去除背景:fromPILimportImageimportnumpyas......
  • vite Glob 实现 责任链、注册组件
    场景下面是其中一种场景,我们定义二种方法对外提供一个方案,按需调用。//list/test1.tsexportdefault()=>{console.log("test")}//list/test2.tsexportdefault()=>{console.log("test")}//index.tsimporttest1from"./list/test1";import......