Inno setup Inno如何添加<;跳过>;可选向导页的按钮?

Inno setup Inno如何添加<;跳过>;可选向导页的按钮?,inno-setup,Inno Setup,我有一个TInputDirWizardPage类型的可选向导页面。 如何添加在未输入数据时不会验证数据和跳过的按钮?您是否查看了inno帮助,在这里您可以看到TinputDirWizard页面上的可用功能 TInputDirWizardPage = class(TWizardPage) function Add(const APrompt: String): Integer; property Buttons[Index: Integer]: TNewButton; read; pr

我有一个TInputDirWizardPage类型的可选向导页面。

如何添加在未输入数据时不会验证数据和跳过的按钮?

您是否查看了inno帮助,在这里您可以看到TinputDirWizard页面上的可用功能

TInputDirWizardPage = class(TWizardPage)
  function Add(const APrompt: String): Integer;
  property Buttons[Index: Integer]: TNewButton; read;
  property Edits[Index: Integer]: TEdit; read;
  property PromptLabels[Index: Integer]: TNewStaticText; read;
  property SubCaptionLabel: TNewStaticText; read;
  property Values[Index: Integer]: String; read write;
end;

只有当我需要在页面上输入文本时,我才使用这种方式。我建议您创建一个完整的自定义向导页面,这样您会更加灵活。为了创建可以使用设计器的页面,我使用InnoSetup表单设计器创建了所有自定义页面。在这里,您可以看到它的实际作用

我找到了简单有效的解决方案。而不是添加额外的按钮,以避免验证空路径。我刚刚添加了默认目录创建。在[Dirs]部分

[Dirs]
Name: {code:WrkGetWorkingDir}; Flags: uninsneveruninstall
我的应用程序可以接受working dir cmdline arg,如果未指定,则可以创建默认值。所以我总是在安装脚本中指定cmdline arg并创建默认目录(如果用户未更改该路径)。

希望这会有所帮助

procedure OnClickMyButton(Sender: TObject);
begin
MsgBox('OnClickMyButton', mbInformation, MB_OK);
end;
procedure CurPageChanged(CurPageID: Integer);
begin

      if CurPageID = YourPageID.ID then
      begin
          MyButton := TButton.Create(YourPageID);
          MyButton.Parent := YourPageID.Buttons[0].Parent;
          MyButton.Top := YourPageID.Edits[0].Top + YourPageID.Edits[0].Height + 10;
          MyButton.Left := YourPageID.Edits[0].Left;
          MyButton.Width := 100;
          MyButton.Caption := 'My Custom Button';
          MyButton.OnClick  := @OnClickMyButton;           
      end; 
end;