【Delphi 开箱即用 4】动态切换主题皮肤(明亮 or 暗黑)

Delphi的原始窗口界面看起来并不够吸引人。尝试下载并安装第三方皮肤可能会导致应用程序尺寸急剧增加,并且可能会出现不稳定的情况。事实上,Delphi自带了皮肤功能,完全可以满足我们对窗口界面的美化需求,并且还支持动态切换皮肤。

文章目录

    • 1. 最终效果图
    • 2. 部分核心代码
    • 3. 完整Demo源码下载

1. 最终效果图

请添加图片描述

2. 部分核心代码

function TForm1.LoadLightTheme: Boolean;
varLStyleInfo: TStyleInfo;LFilePath : string;
beginResult    := False;LFilePath := GetCurrentDir + '\theme\Light.vsf';if TStyleManager.IsValidStyle(LFilePath, LStyleInfo) thenbeginif (TStyleManager.Style[LStyleInfo.Name] <> nil) then // already loaded...beginif TStyleManager.TrySetStyle(LStyleInfo.Name) then// Memo1.Lines.Add(LStyleInfo.Name + ' was defined with success!');Result := True;end else beginif not((TStyleManager.LoadFromFile(LFilePath) <> nil) and TStyleManager.TrySetStyle(LStyleInfo.Name, False)) then// Memo1.Lines.Add('It was not possible use this style = ' + LStyleInfo.Name)else// Memo1.Lines.Add(LStyleInfo.Name + ' was defined with success!');Result := True;end;endelseShowMessage('The file VSF was not valid to load it...');
end;function TForm1.LoadDarkTheme: Boolean;
varLStyleInfo: TStyleInfo;LFilePath : string;
beginResult    := True;LFilePath := GetCurrentDir + '\theme\Dark.vsf';if TStyleManager.IsValidStyle(LFilePath, LStyleInfo) thenbeginif (TStyleManager.Style[LStyleInfo.Name] <> nil) then // already loaded...beginif TStyleManager.TrySetStyle(LStyleInfo.Name) then// Memo1.Lines.Add(LStyleInfo.Name + ' was defined with success!');Result := True;end else beginif not((TStyleManager.LoadFromFile(LFilePath) <> nil) and TStyleManager.TrySetStyle(LStyleInfo.Name, False)) then// Memo1.Lines.Add('It was not possible use this style = ' + LStyleInfo.Name)else// Memo1.Lines.Add(LStyleInfo.Name + ' was defined with success!');Result := True;end;endelseShowMessage('The file VSF was not valid to load it...');
end;

3. 完整Demo源码下载

来源链接
csdn下载:点击下载Demo[完整源码]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/17052.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hive的Sort by Order by Distribute by Cluster by

sort by是分区内排序&#xff0c;一个Reduce对一个Map的数据排序&#xff0c;效率高。 order by是全局排序&#xff0c;一个Reduce对所有Map内的数据排序&#xff0c;效率低。 distribute by 是对数据分区&#xff0c;根据字段哈希值取模来划分到不容的MR内。注意哈希碰撞 哈…

Python I/O操作笔记

打开文件&#xff1a; 使用 open() 函数&#xff0c;其中文件路径可以是相对路径或绝对路径。 模式除了常见的 r&#xff08;只读&#xff09;、w&#xff08;写入&#xff0c;会覆盖原有内容&#xff09;、a&#xff08;追加&#xff09;外&#xff0c;还有一些其他组合模式&…

基于springboot实现旅游管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现旅游管理系统演示 摘要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本旅游管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助使用者在…

周报 | 24.5.20-24.5.26文章汇总

为了更好地整理文章和发表接下来的文章&#xff0c;以后每周都汇总一份周报。 OpenCV与AI深度学习 | YOLOv8自定义数据集训练实现火焰和烟雾检测&#xff08;代码数据集&#xff01;&#xff09;-CSDN博客 周报 | 24.5.13-24.5.19文章汇总-CSDN博客 DeepDriving | 目标检测中…

来自Java的“菱形继承“,你听说过吗?

一、菱形继承的概念 菱形继承又叫做钻石继承&#xff0c;指的是不同的类同时继承自相同的父类&#xff0c;存在一个子类同时继承这些不同的类&#xff0c;即我们常说的“多继承”问题。 例如&#xff1a;B类和C类分别继承A类&#xff0c;而D类同时继承B类和C类。 如此图所示 二…

Oladance、韶音、南卡开放式耳机选哪个?2024年主流产品硬核测评!

近期&#xff0c;不少朋友向我咨询关于挑选开放式耳机的建议&#xff0c;希望找到既适合自己又具有高品质的选项。鉴于市场上开放式耳机品牌繁多&#xff0c;每款产品在音质、佩戴感受及整体性能上的表现各有千秋&#xff0c;正确选择一款耳机成为了音乐爱好者们关注的焦点。错…

R绘图学习笔记

1、R语言绘制海岸线边界 参考&#xff1a; Drawing beautiful maps programmatically with R, sf and ggplot2 — Part 1: Basics 使用R绘制世界地图及纬度统计图 Drawing maps with R. A basic tutorial&#xff1a;https://dr2blog.hcommons.org/2020/03/23/drawing-maps-wit…

【408精华知识】指令字长、存储字长、机器字长大总结!

文章目录 一、三种字长二、三种字长之间的关系三、三种字长与部件位数之间的关系 一、三种字长 机器字长&#xff1a;等于字长&#xff0c;CPU一次能够处理的数据的位数。通常等于寄存器、ALU的位数。例子&#xff1a;windows 64位/32位&#xff0c;这里的64位和32位指的就是该…

Pycharm最新安装教程(最新更新时间2024年5月27日)

ps&#xff1a;本教程Pycharm安装&#xff0c;最新更新时间&#xff1a;2024年5月27日&#xff0c;公众号持续更新关注公众号防失联哦 Pycharm 再次更新了一个小版本。又回到老话题&#xff0c;2023.3.2这个版本是否还能安装&#xff0c;笔者也亲测了一下。还是沿用本站之前的…

Livox-SDK2 用vs2017编译

Livox-SDK2 Livox-SDK2代码去上面下载&#xff0c;文章中给出的是用vs2019进行编译的&#xff0c;生成项目时用的 > cmake .. -G "Visual Studio 16 2019" -A x64 但如果我想用vs2017进行编译&#xff0c;那么只需要将上面语句改为如下&#xff1a; cmake .. -…

企业网络中的网络故障排除

目录 什么是网络故障排除&#xff1f; 企业网络中常见的网络问题 网络故障排除的步骤 1. 确认问题 2. 数据收集 3. 分析和诊断 4. 实施解决方案 5. 验证和监控 常用的网络故障排除工具 如何预防网络故障 结论 在当今高度互联的企业环境中&#xff0c;网络的可靠性和…

PostgreSQL的扩展(extensions)-常用的扩展之pg_store_plans

PostgreSQL的扩展&#xff08;extensions&#xff09;-常用的扩展之pg_store_plans pg_store_plans 是一个 PostgreSQL 扩展&#xff0c;用于捕获查询执行计划&#xff08;execution plans&#xff09;并将其存储在数据库中。通过存储和分析这些执行计划&#xff0c;数据库管理…

Spring IOC容器与Bean管理详解

一.IOC与DI 1. 传统的开发方式区别 对象直接引用导致对象硬性关联&#xff0c;程序难以扩展维护 loC容器是Spring生态的地基,用于统─创建与管理对象依赖 2. Spring IOC 控制反转 loC控制反转,全称Inverse of Control,是一种设计理念 由代理人来创建与管理对象,消费者通…

请允许自己偶尔情绪不稳定

最近看网上的讨论&#xff0c;发现一件事&#xff1a;许多人都把「情绪稳定」当作一个很难得的优点&#xff0c;狂热地去追捧。 什么叫情绪稳定呢&#xff1f;大抵指这些&#xff1a; 遇到问题时不容易发火或沮丧&#xff0c;而是能立刻切换成解决问题的视角&#xff1b; 心情…

Windows系统使用Docker部署Focalboard团队协作工具详细流程

文章目录 前言1. 使用Docker本地部署Focalboard1.1 在Windows中安装 Docker1.2 使用Docker部署Focalboard 2. 安装Cpolar内网穿透工具3. 实现公网访问Focalboard4. 固定Focalboard公网地址 前言 本篇文章将介绍如何使用Docker本地部署Focalboard项目管理工具&#xff0c;并且结…

铠侠KIOXIA KCD81PJE7T68 E3.S PCIe 5.0 NVMe 企业级SSD

今天介绍一下我们的新产品KCD81PJE7T68&#xff0c;这款企业级NVMe固态硬盘将为您的关键任务应用带来出色的性能和可靠支持。 提升业务效能 提速至关键 在当今高度数字化的商业环境中,企业对于数据存储系统的性能要求愈加苛刻。无论是大数据分析、人工智能训练,还是虚拟化和联…

微信小程序打印功能怎么用?

在数字化时代&#xff0c;微信小程序为我们提供了许多便捷的服务&#xff0c;其中就包括打印功能。而琢贝云打印小程序&#xff0c;作为一款功能强大、操作简便的线上打印平台&#xff0c;更是受到了广大用户的青睐。下面&#xff0c;我将为大家介绍如何使用琢贝云打印小程序完…

下雨天的短视频:成都鼎茂宏升文化传媒公司

下雨天的短视频&#xff1a;捕捉雨中的诗意与温情 在快节奏的现代生活中&#xff0c;短视频以其独特的魅力成为了人们记录生活、分享情感的重要工具。而下雨天&#xff0c;这个常常带有诗意与温情的场景&#xff0c;更是为短视频创作者们提供了无尽的灵感源泉。成都鼎茂宏升文…

Spring常用注解(超全面)

官网&#xff1a;核心技术SPRINGDOC.CN 提供 Spring 官方文档的翻译服务&#xff0c;可以方便您快速阅读中文版官方文档。https://springdoc.cn/spring/core.html#beans-standard-annotations 1&#xff0c;包扫描组件标注注解 Component&#xff1a;泛指各种组件 Controller、…

9. C++通过epoll+fork的方式实现高性能网络服务器

epollfork 实现高性能网络服务器 一般在服务器上&#xff0c;CPU是多核的&#xff0c;上述epoll实现方式只使用了其中的一个核&#xff0c;造成了资源的大量浪费。因此我们可以将epoll和fork结合来实现更高性能的网络服务器。 创建子进程函数–fork( ) 要了解线程我们先来了解…