Delphi成功让TLabel
在FMX和VCL中存在。那么,我该如何创建两个组件,它们的名称相同,只是一个是为VCL而设计的,另一个是为FMX而设计的?
是的,我知道可以使用ifdef
并每次重新编译库。但这并不是优秀的代码。
Delphi成功让TLabel
在FMX和VCL中存在。那么,我该如何创建两个组件,它们的名称相同,只是一个是为VCL而设计的,另一个是为FMX而设计的?
是的,我知道可以使用ifdef
并每次重新编译库。但这并不是优秀的代码。
Vcl.MyUnit.pas
中为VCL实现TMyComponent
,在FMX.MyUnit.pas
中为FMX实现TMyComponent
。TMyComponent
,可以选择:
使用{$IFDEF}
条件性地在uses
子句中指定Vcl.MyUnit
或FMX.MyUnit
。
为VCL和FMX创建单独的项目,其中VCL项目在其Unit Scope Names编译器设置中指定Vcl
,FMX项目指定FMX
,然后您可以在uses
子句中仅使用MyUnit
。
TLabel
位于Vcl.StdCtrls
单元作用域中,而FMX的TLabel
位于FMX.StdCtrls
单元作用域中。