• Delphi D10.X 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。

    1. FireMonkey与VCL的差异
    • Actions

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

    • 复选框

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

    • 控件的父子关系

    在VCL中,只能通过TForms,TFrames,TPanels和Data Modules作为其他组件的父对象。

    在FireMonkey中,您可以将任何对象作为其他对象的父对象,并且可以在“ 结构视图”中轻松建立此关系。控件间的关系显得更多样,从而可以完成多样化组合使用,这是非常大的进步。

    • 颜色

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

    • 控制定位

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

    • 数据库表格事件

    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属性。

  • 相关阅读:
    “.NET研究”带你走进缓存世界 狼人:
    晚绑定场景下对象属性赋值和取值可以不需要Pro“.NET研究”pertyInfo 狼人:
    一“.NET研究”句代码实现批量数据绑定[下篇] 狼人:
    使用WC“.NET研究”F实现SOA面向服务编程——简单的WCF开发实例 狼人:
    在ASP.NET MVC3中使用“.NET研究”EFCodeFirst 1.0 狼人:
    一句代码实现批量“.NET研究”数据绑定[下篇] 狼人:
    在ASP.NET M“.NET研究”VC3 中利用JSONP跨域登录WEB系统 狼人:
    一句代码实现批量数“.NET研究”据绑定[上篇] 狼人:
    转发重定向Servlet之请求转发与重定向区别
    估计实例R语言: 极大似然估计实例
  • 原文地址:https://www.cnblogs.com/karkash/p/16228291.html
Copyright © 2020-2023  润新知