0

設定クラスで次のコードを使用して、何を使用するかを決定します。しかし今、正しい .INC ファイルをプロジェクト フォルダーにコピーするのを忘れていたという問題に遭遇しました。定義が見つからないため、AV が返されます。定義が見つからない場合、U_SettingsConnIni が常に uses セクションにあることを確認するにはどうすればよいですか

 uses
  Dialogs, Forms, SysUtils,
{$IFDEF SETTINGSINI}
  U_SettingsConnIni,
{$ENDIF}
{$IFDEF SETTINGSREG}
  U_SettingsConnReg,
{$ENDIF}
{$IFDEF SETTINGSXML}
  U_SettingsConnXml,
{$ENDIF}
  U_SectionNames;
4

3 に答える 3

3

if通常のブロックと同様に、$ifdefコンパイラ ディレクティブは$else. さらに、ネストすることもできます。

uses
  Dialogs, Forms, SysUtils,
{$IFDEF SETTINGSREG}
  U_SettingsConnReg,
{$ELSE}
  {$IFDEF SETTINGSXML}
  U_SettingsConnXml,
  {$ELSE}
  U_SettingsConnIni,
  {$ENDIF}
{$ENDIF}
  U_SectionNames;
于 2013-08-23T16:33:26.377 に答える
3

$IFこれは、限られた人よりも強力な人に適したシナリオです$IFDEF

uses
  Dialogs, Forms, SysUtils,
{$IF Defined(SETTINGSREG)}
  U_SettingsConnReg,
{$ELSEIF Defined(SETTINGSXML)}
  U_SettingsConnXml,
{$ELSE}
  U_SettingsConnIni,
{$IFEND}
  U_SectionNames;

Delphi の最新バージョンでは、必要に応じて$ENDIFここで使用でき$IFENDます。

条件が定義されていない場合に失敗する場合は、次のようにします。

uses
  Dialogs, Forms, SysUtils,
{$IF Defined(SETTINGSREG)}
  U_SettingsConnReg,
{$ELSEIF Defined(SETTINGSXML)}
  U_SettingsConnXml,
{$ELSEIF Defined(SETTINGSINI)}
  U_SettingsConnIni,
{$ELSE}
  {$Message Fatal 'Settings file format conditional must be defined'}
{$IFEND}
  U_SectionNames;
于 2013-08-23T19:56:10.430 に答える