我在德尔福柏林有以下问题。
我有一个数据模块,它使用编译器指令保留多个平台函数。
例如
{$IFDEF ISVCLAPP} functions for VCL
{$IFDEF ISFMXAPP} for FMX
的函数
等等但是我无法摆脱FireDAC.VCLUI.Wait在Android(FMX)环境中的使用子句。
我放了FireDAC.FMXUI.Wait,但它似乎被编译器忽略了,并继续添加我做VCLUI单元的问候。
我相信代码中的东西一直在告诉德尔福环境这是一个VCL框架。有没有办法找到这样的东西?
不幸的是,没有可以检查的内置定义,但您可以自己创建。在 %APPDATA%\Embarcadero\BDS\18.0 中创建(或以有意义的方式扩展)一个名为 UserTools.proj 的文件(对于 Delphi Berlin),其中包含以下内容:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<DCC_Define>FrameWork_$(FrameworkType);$(DCC_Define)</DCC_Define>
</PropertyGroup>
</Project>
这允许检查源文件中的当前框架,如下所示:
{$IFDEF FrameWork_VCL}
或
{$IFDEF FrameWork_FMX}
请注意,在某些情况下,这两者可能根本无法定义。
请注意,上面提到的文件位于您的用户 appdata 文件夹中,因此其他用户需要自己的副本才能使用它。