プログラムのキャプションに、プログラムがどのように準拠したかを示したいと思います。最も重要なのは、コンパイラの最適化がオンかオフかを示すことです。
(範囲チェックやこのような他のものも表示するのは興味深いですが、主にコンパイラの最適化に興味があります)。
それを行う方法はありますか?
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;