2016-10-12 8 views
1

Inno Setupで使用しているスクリプトは次のとおりです。私の最初のスクリプトです。何か明白なことを聞​​いていれば分かります。Innoセットアップ:CreateInputQueryPageが値を返さない

入力フィールドを入力しても、変数ServerAddressには値がないようです。 Page.Values[0]は常に空の結果を返します。私のコードで何が間違っていますか?

ご覧のとおり、testvarという変数を使用してテストを行いましたが、可変範囲の問題だったため除外していますが、そうではありません。

[Code] 

var 
    Page: TInputQueryWizardPage; 
    ServerAddress: String; 
    testvar: String; 

procedure InitializeWizard(); 
begin 
    Page := CreateInputQueryPage(wpWelcome, 
    'Server Informations', '', 
    'Please specify the IP address, then click Next.'); 

    { Add items (False means it's not a password edit) } 
    Page.Add('IP Address:', False); 
    ServerAddress := Page.Values[0]; 
    testvar := 'testvalue'; 
end; 

procedure CurStepChanged(CurStep: TSetupStep); 
begin 
    if CurStep = ssPostInstall then begin 
    MsgBox(ExpandConstant('{app} '+testvar+' : '+ServerAddress),mbInformation,MB_OK); 
    SaveStringToFile(ExpandConstant('{app}')+'\config.txt', 'test'+ServerAddress, True); 
    end; 
end; 

答えて

1

は、ウィザードウィンドウが表示される前に呼び出され、終了します。

その時点で(ユーザーが将来入力する)値を知ることはほとんどできません。カスタムページが表示された後でのみ値を読み取る必要があります。あなたのようにCurStepChanged(ssPostInstall)

procedure CurStepChanged(CurStep: TSetupStep); 
var 
    ServerAddress: string; 
begin 
    if CurStep = ssPostInstall then 
    begin 
    { This is the right time to read the value } 
    ServerAddress := Page.Values[0]; 

    SaveStringToFile(ExpandConstant('{app}') + '\config.txt', ServerAddress, True); 
    end; 
end; 
+0

マーティン – mark

関連する問題