Delphi D10.X VCL和FireMonkey之间的常见差异介绍

摘要:
DelphiD10.XVCL与FireMonkey之间的常见差异VCL和FireMonkey简介VCL和FireMonkey不兼容在这里,我们介绍它们的差异主要是为了帮助熟悉VCL的朋友快速了解控件使用中的差异,并快速改变FireMonkey的开发思路。换句话说,模块应该是FireMonkey或VCL之一。这种不兼容性是由FireMonkey和VCL之间的框架差异造成的。它可以在VCL应用程序中自动迁移FireMonkey的某些方面。FireMonkey和VCL操作之间的差异与VCL操作不同。FireMonkey操作不支持操作管理器。复选框在FireMonkey中,该复选框应使用OnChange事件而不是OnClick来响应所选状态的更改。
 Delphi D10.X VCL和FireMonkey之间的常见差异介绍
VCL与FireMonkey不兼容

 这里介绍他们的差异主要是帮助已熟悉VCL的朋友可以快速的了解控件使用上的不同,快速的转变到FireMonkey的开发思路上来。

  • 警告:

FireMonkey与VCL本质上是完全不同的,FireMonkey(FMX)和可视组件库(VCL)不兼容,因此不应在同一模块中一起使用。

也就是说,一个模块应该是FireMonkey或VCL之一。不兼容是由FireMonkey(FMX)和VCL之间的框架差异引起的。

您可以:
  • 如适用于macOS的共享库中所述,将FireMonkey库与VCL应用程序一起使用,或将VCL库与FireMonkey应用程序一起使用。
  • 了解将VCL应用程序转换为FireMonkey的一般准则,然后做迁移。
  • 了解一般操作,再迁移VCL应用到FireMonkey。
  •  在http://www.midaconverter.com/上获取VCL-to-FireMonkey转换器程序。可以自动迁移VCL应用FireMonkey的某些方面。

RAD Studio提供了三个主要的库:

FireMonkey(FMX)是一个视觉组件库,具有复杂的图形,动画和样式功能。您可以为任何受支持的目标平台创建FireMonkey应用程序。

视觉组件库(VCL)  是仅在Windows(在Win32和Win64应用程序中)支持的视觉组件的对象层次结构。

运行时库(RTL)     是Delphi和C ++为任何受支持的目标平台共享的过程库。RTL由 System, System.SysUtils, System.IOUtils和 System.Classes单元的成员组成。

  • 您可以在FireMonkey应用程序中自由使用RTL,但不能在FireMonkey应用程序模块中直接使用VCL。

FireMonkey与VCL的差异

  Actions
       与VCL操作不同,FireMonkey操作不支持操作管理器。因此,您不能使用VCL Action Manager编辑器来管理FireMonkey操作。

  复选框
        在FireMonkey中,复选框应使用OnChange事件而不是OnClick对已选中状态的更改做出反应。是否选中的状态属性是 IsChecked,VCL中使用的是Checked。

  控件的父子关系
         在VCL中,只能通过TForms,TFrames,TPanels和Data Modules作为其他组件的父对象。在FireMonkey中,您可以将任何对象作为其他对象的父对象,并且可以在“ 结构视图”中轻松建立此关系。

         控件间的关系显得更多样,从而可以完成多样化组合使用,这是非常大的进步。(可参阅我另一篇博客介绍:Delphi D10.X 移动开发中APP界面基本布局(二))

  颜色

    除RGB外,FireMonkey颜色还具有alpha(不透明度)成分。颜色由系统类型TAlphaColor和TAlphaColorRec表示。FireMonkey使用System.UIConsts单元中的颜色常量。这些颜色常量的前缀为“ cla”而不是“ cl”。

  控制定位
    在VCL中,控件的位置由其顶部和左侧属性表示。
    在FireMonkey中,控件使用具有嵌套X和Y属性的TPosition类型的Position。3D控件的Position属性是TPosition3D的一个实例,带有一个附加的Z坐标。对于大小,FireMonkey使用宽度和高度(对于3D控件使用深度)。

    (可参阅我另一篇博客介绍:Delphi D10.X 移动开发中APP界面基本布局(二))

  数据库表格事件

    VCL的事件OnDrawDataCell或OnDrawColumnCell可以使用 FireMonkey中的TStringGrid与 LiveBindings替换
    在FireMonkey不使用VCL那样的DB显示控件,而 FireMonkey中几乎所有的控件都可以使用LiveBindings来绑定数据, 包括是否显示、禁用某控件都可以直接绑定,并由数据内容直接控制,从而完全不需要编写代码处理

  显示文字
    FireMonkey标签中显示的文本的属性是Text,不是Caption

  字体大小
    在VCL中,字体大小以点表示,每英寸72个点。
    在FireMonkey中,字体大小以与设备无关的像素(DIP)表示,每英寸96像素。因此,在FireMonkey中使用相同Font.Size的设置,显示出来的文本会感觉较小。

  Masked编辑
    VCL中的TMaskEdit或TEDIT在FireMonkey中使用来TEDIT和Password 属性来处理。将TEDIT中Password 属性设置为True,使此编辑控件隐藏其字符,以进行类似密码的输入。

    将Password 设置为False可使此编辑控件显示其所有字符。

  单选按钮和组
    要将VCL TRadioGroup转换为FireMonkey,可以使用TPanel或TGroupBox
    注:在FireMonkey,TPanel不支持项目单选按钮
      每个VCL TGroupBox中的单选按钮都是独立的。如果将多个VCL TGroupBox转换为FireMonkey TGroupBox,则包含的单选按钮将相互关联(一个组中的选择将清除其他组中的选择)。

    要在FireMonkey中恢复独立性,需要为每个转换的TRadioButton手动指定GroupName属性

  相关或类似文章
    1、Delphi D10.3 LayoutsPro 控件简介 -避免输入焦点被虚拟键盘遮挡推荐到这里,不是因为控件,是因为这个DEMO里有较多的可用于界面布局学习的内容,可直观的了解VCL与FireMonkey的差异;

    2、Delphi D10.1 移动开发中APP界面基本布局(一)

    3、Delphi D10.X 移动开发中APP界面基本布局(二)


与本博客内容有相关更详细描述。

免责声明:文章转载自《Delphi D10.X VCL和FireMonkey之间的常见差异介绍》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Java实现 蓝桥杯 素因子去重C# linq根据属性分组,并累加计算下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Delphi指针的定义和取值

效果图如下: 要点: 1.指针的2中定义方法 PInteger 和 ^Integer 2.取地址符号 @ 和 Addr函数 3.取内容符号 ^ ,比如MyPointInt1^则是取MyPointInt1指针所指向的内容了。 program MyPoint; //指针详解 {$APPTYPE CONSOLE} usesSysUtils,windows,G...

DELPHI第三方控件及组件大全(安装方法与使用)

一,DELPHI第三方控件安装方法介绍 1、对于单个控件,Componet–>install component..–>PAS或DCU文件–>install; 2、对于带*.dpk文件的控件包,File–>Open(下拉列表框中选*.dpk)–>install即可; 3、对于带*.bpl文件的控件包,Install P...

Delphi安装/卸载OCX控件的方法

delphi 安装卸载ocx 请参见 如下 http://blog.csdn.net/xt_chaoji/article/details/7027298 打开Delphi,关闭所有项目。 1.安装OCX控件 点击菜单项:Component -> Import ActiveX Control… 进入如下界面: 然后点击按钮“Add..”,弹出如下界面...

Delphi 中的字符串函数(6) StrUtils 中的 Ansi 字符串函数

//从左右两端提取指定数目的字符串: AnsiLeftStr、AnsiRightStr var ss,s: AnsiString; begin ss := 'abcdefg'; s := AnsiLeftStr(ss, 2); ShowMessage(s); {ab} s := AnsiRightStr(ss, 2); Show...

小结一下:Delphi 与 UniGui 的安装

1、Delphi  的安装      最近安装最新的 10.3.2 ,下载的ISO文件必须是:delphicbuilder10_3_2_496593b.iso      网上目前只有 6593 版本的 注册消息。      安装到要求:注册信息时,返回(Back),生成有关消息后,再继续(Next),特别注意,留下提示! 2、UniGui 的安装    ...

Delphi 10.3.2 社区版的安装

1、去 https://www.embarcadero.com/cn/products/delphi/starter 下载安装程序 首先你要有一个embarcadero社区账号,国内线路下载有点慢,下载到了大约 127MB 左右的安装文件,如下图; 2、勾选“I agree …”; 3、点击<Options>按钮可以选择安装路径; 4、输...