カスタム 'CreateInputOptionPage'を作成するためのこのサポートページでは、それらを変数に割り当てるだけでページの値を保存することをお勧めします。しかし、この課題がいつ起こるべきかは明らかではありません。グローバル変数を使用せずにカスタムウィザードページから値を読み取る
私が知る限り、ページを作成するときにこの権利を割り当てると、デフォルト値が取得されます。これは、ページが作成されるときに、ユーザーがまだ「入力クエリ」を入力していないので意味があります。
したがって、私は、ページの変数(Page.Values[0]
)にアクセスするために必要な、それを行うためにはfunction NextButtonClick(CurPageID: Integer): Boolean;
を使用して、「次へ」ボタンをクリックする変数にページから値を割り当てるために推論しましたNextButtonClick
の機能です。 Pageは別の関数で定義されているため、これらの値にアクセスしてPageをグローバル変数にする唯一の方法はありますか?それは私がやるべきことですが、そこにいる誰かがグローバル変数に代わるものを持っているのだろうかと思っていました。
これまでのコードのスタブ。
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "O"
#define MyAppVersion "0.0"
#define MyAppPublisher "O."
#define MyAppURL "http://www.o.com/"
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{ED5F31B8-32DD-4175-833A-C6D7CBD90DD9}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
DefaultDirName={sd}\{#MyAppName}
AllowNoIcons=yes
OutputDir={desktop}
OutputBaseFilename=dummy
Compression=lzma
SolidCompression=yes
[code]
var
Page: TInputOptionWizardPage;
InstallationTypeIsClient: boolean;
procedure InitializeWizard();
begin
Page := CreateInputOptionPage(wpWelcome,'Installation Type', 'Select Installation Type', 'No really, do some selecting', True, False)
Page.Add('Server Install');
Page.Add('Client Install');
Page.Values[1] := True;
end;
function NextButtonClick(CurPageID: Integer): Boolean;
begin
if CurPageID=100 then
begin
InstallationTypeIsClient := Page.Values[1];
MsgBox('InstallationTypeIsClient value is ' + Format('%d', [InstallationTypeIsClient]), mbInformation, MB_OK);
end;
Result := True;
end;
グローバル変数にはどのような問題がありますか? –
なし、私は単なる素人プログラマーであり、グローバル変数が汚いと言われています。 –
はい、アプリケーション全体を開発しているときに、スタンドアロンコードで汚れています。この場合、既存のアプリケーションのイベントフックを実装するだけなので、他に選択肢はありません。 –