编程考古-VCL跨平台革命:CrossVCL如何让Delphi开发者梦想成真(上)

embedded/2025/3/14 10:14:17/

在软件开发的世界里,有一句老话:“技术的发展总是出乎意料”。对于使用Delphi的开发者而言,这句话从未如此真实。今天,我们将探索一项名为CrossVCL的技术,它不仅重新定义了我们对Visual Component Library(VCL)的认知,而且彻底改变了Delphi应用跨平台开发的游戏规则。

VCL的历史与挑战

自1995年首次亮相以来,VCL一直是Delphi的核心组件之一,提供了快速且直观的Windows应用程序开发体验。然而,随着移动和Web技术的兴起,VCL的局限性也逐渐显现——它主要针对Windows平台设计,这使得向其他操作系统扩展变得困难重重。尽管有FireMonkey(FMX)作为跨平台解决方案,但许多开发者依然怀念VCL的简洁性和高效性。

CrossVCL:打破壁垒的新时代

就在开发者们认为将永远受限于单一平台之时,CrossVCL横空出世。这项创新技术通过一系列复杂的编译器优化和技术改进,实现了VCL组件在iOS、Android、macOS等多个平台上的原生运行。这意味着,现在您可以利用熟悉的VCL工具集创建跨平台的应用程序,而无需学习全新的框架或大幅度修改现有代码。

KSDEV

https://www.ksdev.com/index.html

KSDev是一家由Evgene Kryukov(尤金·克留科夫)创立的精简型开发工作室。自Delphi的第一版起,该工作室便专注于应用程序开发,累积了从初代到最新版本的全方位经验。KSDev的使命是让Delphi开发者能够为iOS、Mac OS、Android平台构建真正的原生应用程序,就如同KSDev为Microsoft Windows平台提供的开发技术一样。KSDev们热爱Delphi,并致力于帮助全球的Delphi开发者充分利用这一多功能的通用开发工具。通过KSDev的努力,希望能让开发者体验到跨平台开发的无限可能。

CrossVcl

https://www.crossvcl.com/

CrossVCL 是一套专为 Delphi 开发者设计的工具集,它使得利用 Embarcadero Delphi 创建适用于 macOS 和 Linux 的 VCL 应用程序成为可能。这项技术不仅仅是一个概念上的突破,更是实际开发中的一大飞跃。

CrossVCL 的核心构成

从概念上讲,CrossVCL 由两个主要组件构成:

  • 运行时库

    全新实现的 WinAPI 版本,专门针对 macOS 和 Linux 系统进行了优化,并与原生操作系统运行时紧密结合。

  • 设计时管理器

    一个集成于 IDE 中的专家系统,允许开发者将 macOS64 和 Linux64 平台添加到 VCL 项目中,并通过 CrossVCL 进行设置。

不是模拟器,而是真正的跨平台解决方案

重要的是要理解,CrossVCL 并非传统意义上的模拟器。实际上,它是对其他平台上 WinAPI 的一种实现,专注于覆盖 VCL 所需的 UI 部分(除了 DirectX)。这意味着,对于应用程序的非 UI 组件,开发者应依赖 RTL(Run-Time Library)和其他框架提供的跨平台例程来完成开发工作。

使用 CrossVcl 的先决条件

要使用 CrossVcl 进行开发,您需要满足以下条件:

  • Embarcadero Delphi 10.3

    确保您的开发环境已升级到 Delphi 10.3 或更高版本。这是因为 CrossVcl 需要利用特定于该版本及之后的特性与改进。

  • macOS 编译器

    为了构建 macOS 应用程序,您的 Delphi 环境必须包含对 macOS 编译器的支持。这允许您将 VCL 应用程序编译为 macOS 原生应用。

  • 企业版许可(针对 Linux 开发)

    如果您计划扩展开发范围至 Linux 平台,请确保您拥有 Delphi 的企业版许可证。企业版提供了必要的工具和资源,支持跨平台开发,包括 Linux64 目标平台的支持。

如何使用 CrossVcl 进行工作

使用 CrossVcl 扩展您的 Delphi VCL 项目以支持 macOS 和 Linux 平台非常直接。请遵循以下步骤操作:

  1. 创建或打开一个 VCL 项目:首先,您需要在 Delphi 中创建一个新的 VCL 应用程序项目或者打开现有的 VCL 项目。

  2. 访问项目管理器:在 Project Inspector(项目管理器)中找到您的项目名称,右键点击它以显示上下文菜单。

  3. 添加新平台:从弹出的上下文菜单中选择“Add New Platforms”(添加新平台)选项。这一步是将其他平台的支持添加到您的现有项目中。

  4. 切换平台并运行:一旦添加了新的平台支持,您就可以通过项目的选项轻松地在不同的目标平台之间进行切换,如 OSX64(针对 macOS 应用)和 Linux64(针对 Linux 应用)。选择您想要的目标平台后,您可以编译并运行您的应用程序,以查看其在不同操作系统下的表现。

未安装CrossVCL的目标平台选项不可用,如下图:

下篇展示工程演示及支持的三方控件信息,敬请期待...


http://www.ppmy.cn/embedded/172465.html

相关文章

OpenAI智能体初探:使用 OpenAI Responses API 在 PDF 中实现检索增强生成(RAG)

大家好,我是大 F,深耕AI算法十余年,互联网大厂技术岗。 知行合一,不写水文,喜欢可关注,分享AI算法干货、技术心得。 欢迎关注《大模型理论和实战》、《DeepSeek技术解析和实战》,一起探索技术的无限可能! 引子 在信息爆炸的时代,从大量 PDF 文档中快速准确地检索信息…

高效图像处理工具:从需求分析到落地实现

高效图像处理工具:从需求分析到落地实现 在现代应用开发中,图像处理是一个不可或缺的功能模块。无论是社交媒体、电子商务还是企业级应用,都需要对图片进行各种处理操作,例如尺寸调整、背景替换、格式转换等。然而,实…

神经网络常用库-torch(基础操作张量)

1.理解张量 从简单到复杂逐步理解张量 标量:可以将标量看作是零维张量,它只有一个数值,比如温度、质量等。例如,今天的气温是 25 摄氏度,这里的 25 就是一个标量。向量:一维张量就是向量,它由一…

Android 11.0 监听某个app启动或者退出功能实现

1.前言 在进行11.0的系统定制开发中,在某些app的定制过程中,需要知道某个app的启动记录和退出记录, 所以就需要监听某个app的启动和退出的过程,需要在Activity的生命周期中来实现监听功能 2.监听某个app启动或者退出功能实现的核心类 frameworks\base\core\java\android…

Python 3.14尾调用解释器的性能剖析

在当今数字化浪潮中,编程语言的性能优化一直是开发者们关注的焦点。Python作为一种广泛使用的高级编程语言,其解释器的性能提升对于众多应用程序具有重要意义。近期,CPython项目引入了一种新的尾调用解释器实现策略,据称能带来显著…

Linux修改conda默认环境位置

# 1. 在终端查看conda 默认环境路径 conda infopackage为缓存路径,envs为虚拟环境路径。以Ubuntu系统为例,默认情况下 /.conda路径排在第一位,表示默认环境安装路径。 2. 修改默认环境路径方法: # 在对应的home/user_name 下&…

人工智能与人的智能,思维模型分享【3】直觉

我认为直觉是人的智能中,很神奇的部分,这是人工智能所不能达到的。 直觉:INTUITIVE THINKING 直觉就是未经逐步分析,仅依据内因的判断,就对事物的答案进行判断。或者突然获得“灵感”和“顿悟”。这是非常有魅力的时…

【深度学习】图像卷积

图像卷积 上节我们解析了卷积层的原理,现在我们看看它的实际应用。由于卷积神经网络的设计是用于探索图像数据,本节我们将以图像为例。 互相关运算 严格来说,卷积层是个错误的叫法,因为它所表达的运算其实是互相关运算&#xf…