2016-10-12 5 views
1

Hier ist das Skript, das ich bei Inno-Setup verwende. Es ist mein erstes Skript, bitte verstehe, wenn ich etwas Offensichtliches verlange.Inno-Setup: CreateInputQueryPage gibt keinen Wert zurück

Es scheint, dass die Variable ServerAddress nie einen Wert hat, auch wenn ich das Eingabefeld fülle. Es sieht so aus, als ob Page.Values[0] immer ein leeres Ergebnis zurückgibt. Was ist falsch an meinem Code?

Wie Sie sehen können, habe ich einen Test mit einer testvar Variable gemacht, um auszuschließen, dass es eine Frage des variablen Umfangs war, aber das ist nicht der Fall.

[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; 

Antwort

1

Die InitializeWizard event function aufgerufen wird (und beendet), bevor das Fenster des Assistenten wird auch gezeigt.

So ein Wert (den der Benutzer in Zukunft eingeben wird) kann zu diesem Zeitpunkt kaum bekannt sein. Sie müssen den Wert erst lesen, nachdem die benutzerdefinierte Seite angezeigt wurde. Wie in Ihrem 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

Es funktioniert, danke Martin – mark

Verwandte Themen