INNO设置 - 安装完成后CreateInputQueryPage返回初始值,而不是编辑的值

时间:2014-12-23 16:03:13

标签: inno-setup

我是INNO的新手并且每次都变得更好,但我遇到安装完成后运行的CreateInputQueryPage的问题。它将我输入的初始值作为默认值返回,而不是用户编辑的编辑值。

以下是创建页面的代码。这似乎很好。

procedure InitializeWizard();
var
    ret      : boolean;
begin

  SvrSetup := CreateInputQueryPage(wpInfoAfter,
    'i2x Server setup', '',
    'Please specify your Company name, Listener host name and Port. then click Next.');
  SvrSetup.Add('Company name:', False);
  SvrSetup.Add('Listener host name:', False);
  SvrSetup.Add('Port:', False);
  SvrSetup.Values[1] := 'computer name'
  SvrSetup.Values[2] := '5551';

end;

我在NEXTBUTTONCLICK事件上运行此代码以验证我的输入

function NextButtonClick(CurPageID: Integer): Boolean;
begin
    Result := true;

  { Validate certain pages before allowing the user to proceed }
  if CurPageID = SvrSetup.ID then 
    begin
      if SvrSetup.Values[0] = ''  then  begin
         MsgBox('You must enter company name.', mbError, MB_OK);
         Result := False;
      end;
      if SvrSetup.Values[1] = ''  then begin
         MsgBox('You must enter listner host.', mbError, MB_OK);
         Result := False;
      end;
      if SvrSetup.Values[2] = ''  then  begin
          MsgBox('You must enter listner port.', mbError, MB_OK);
          Result := False;
      end;
    end;

end;

现在当安装结束但在最后一页之前我就这样做了。

procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep = ssPostInstall then 
  begin
    WriteXML;       
  end;
end;

WriteXML就是这个。

procedure WriteXML;
var
    FileData: String;
begin

    FileData := ''
    LoadStringFromFile(ExpandConstant('{app}\EMailer\EMailer.exe.config'), FileData);
    StringChange(FileData, '!OVERRIDE_COMP!',ExpandConstant('{code:GetEmailerCompany}'));
    SaveStringToFile(ExpandConstant('{app}\EMailer\EMailer.exe.config'), FileData, False);


end;

我需要将值作为代码插入到XML中:GetEmailerCompanyas

function GetEmailerCompany(Param: String): String;
begin
  // Return the company for email
  Result := SvrSetup.Values[0];
end;

Aagain,它返回我作为默认值输入的初始值,而不是用户编辑的编辑值。我错过了什么?

由于

0 个答案:

没有答案