我想在程序的标题中显示该程序是如何编写的。最重要的是,我想展示编译器优化是否开启/关闭。
(范围检查和其他类似的东西也很有趣,但主要是我对编译器优化很感兴趣。)
知道该怎么做吗?
基于Arioch的准备使用功能回答:
function CompilerOptimization: Boolean; { Importan note: $O+ has a local scope, therefore, the result of the function reflects only the optimization state at that specific source code location. }
begin
{$IfOpt O+}
Result:= TRUE;
{$Else}
Result:= FALSE;
{$EndIf}
end;
function CompilerOptimizationS: String;
begin
Result:= 'Compiler optimization is ' +
{$IfOpt O+}
'enabled'
{$Else}
'disabled'
{$EndIf}
end;
重要提示:如果您使用{$ O}开关优化代码片段,则必须将其用作此类子函数,否则,如果仅使用全局开关(在“项目选项”中),则可以将其用作正常(声明)函数。
// {$O+} or {$O-}
procedure TFrmTest.FormCreate(Sender: TObject);
function CompilerOptimizationS: String;
begin
Result:= 'Compiler optimization is ' +
{$IfOpt O+}
'enabled'
{$Else}
'disabled'
{$EndIf}
end;
begin
///...more code here
Caption:= 'Version: '+ GerVerStr+ ' '+ CompilerOptimizationS+ etc+ etc;
end;
答案 0 :(得分:6)
ShowMessage(' Optimization is ' +
{$IfOpt O+}
'enabled'
{$Else}
'disabled'
{$EndIf}
);
PS。文档...去Google阅读“Delphi IfOpt”将为您带来很多链接,包括
PPS。 gammatester 绝对正确“自{$ O +}具有本地范围,您的消息/标题仅反映该特定源代码位置的优化状态”