我是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,它返回我作为默认值输入的初始值,而不是用户编辑的编辑值。我错过了什么?
由于