Roh*_*pta 3 delphi components vcl firemonkey
Delphi成功地存在于FMX和VCLTLabel中。那么,如何创建两个具有相同名称的组件,除了一个用于VCL和一个用于FMX之外?
是的,我知道我ifdef每次都可以使用 s 并重新编译库。但这并不是完全干净的代码。
Rem*_*eau 12
在不同的Unit Scopes中实现两个组件,这些组件是为此目的而创建的。
例如,TMyComponent在 中实现 VCL Vcl.MyUnit.pas,TMyComponent在 中实现 FMX FMX.MyUnit.pas。
然后,要TMyComponent在任何其他单元中使用,您可以:
在子句中使用{$IFDEF}s 有条件地指定Vcl.MyUnitor 。FMX.MyUnituses
为 VCL 和 FMX 创建单独的项目,其中 VCL 项目Vcl在其Unit Scope Names 编译器设置中指定,FMX 项目指定FMX,然后您可以MyUnit在uses子句中使用 just 。
另请参阅为您自己的组件添加单元范围名称。
作为参考,VCLTLabel位于Vcl.StdCtrls单元范围内,FMXTLabel位于FMX.StdCtrls单元范围内。