InitializeSetup を使用する理由
ウィザードが開始する前に条件付きでセットアップを終了したい場合は、例外を発生させるInitializeWizard
イベント関数を使用しないでください。Abort
ウィザード フォーム全体を作成するために必要な時間を無駄にします。InitializeSetup
代わりにイベント関数を使用してください。そこで、Abort
例外を発生させるか、ブール値の結果に False を返して、関数を終了することができます。最終的な結果は間違いなく同じになります。
内部的には、関数は、スクリプトから False を返すと、InitializeSetup
まさにこの例外を発生させます。Abort
イベントとは対照的にInitializeWizard
、イベントが発生したときInitializeSetup
、ウィザード フォームはまだ作成されていないため、時間を無駄にすることはなく、システム リソースを使用することもありません。
コード例:
次の疑似コードUserDownloadedWrongVersion
では、True を返すとセットアップが終了し、それ以外は何も起こらないような関数が必要です。
[Code]
function UserDownloadedWrongVersion: Boolean;
begin
// make your check here and return True when you detect a wrong
// version, what causes the setup to terminate; False otherwise
end;
function InitializeSetup: Boolean;
begin
Result := not UserDownloadedWrongVersion;
if not Result then
begin
MsgBox('You''ve downloaded the wrong version. Setup will now exit!',
mbError, MB_OK);
Exit; // <-- or use Abort; instead, but there's no need for panic
end;
end;