在此用于创建自定义的支持页面上CreateInputOptionPage
,他们建议仅通过将其分配给变量来存储页面的值。目前尚不清楚何时应执行此任务。”
据我所知,如果在创建页面时分配此权限,则将获得默认值。这很有意义,因为在创建页面时,用户尚未输入任何“输入查询”。
因此,我有理由在单击“下一步”按钮时使用以下方法将页面中的值分配给变量: function NextButtonClick(CurPageID: Integer): Boolean;
为此,我需要Page.Values[0]
在NextButtonClick
函数中访问页面的变量()。由于Page
是在其他函数中定义的,因此访问这些值以Page
使其成为全局变量的唯一方法是吗?这就是我决心要做的,但是我想知道是否有人可以替代全局变量。
到目前为止,我的代码存根。
[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;
使用全局变量存储对自定义页面的引用是正确和最简单的方法。
相关问题:Inno设置:从另一个控件的OnClick事件访问自定义控件。
尽管是否确实需要将用户值存储到另一个变量中值得怀疑。只需在需要时从自定义页面中读取值即可。
总体上,使用全局变量确实不受欢迎。但这就是在开发独立代码时。在这种情况下,您只是为现有应用程序实现事件挂钩,因此您别无选择。
唯一的其他方法是在的子控件中递归查找自定义页面WizardForm
。它的代码很多而且效率很低。
请参阅我对Inno Setup:OnHover事件的回答,以获取递归组件迭代的示例。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句