1

我有一个 TInputDirWizardPage 类型的可选向导页面。
如果未输入数据,如何添加不会验证数据并跳过的按钮?

4

3 回答 3

1

您是否检查过 inno 帮助,在这里您可以看到 TInputDirWizardPage 上的可用功能

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;

只有当我需要在页面上输入文本时,我才会使用这种方式。我建议您创建一个完整的自定义 WizardPage,这样您会更加灵活。您可以使用设计器来创建页面,我使用 InnoSetup 表单设计器创建了所有自定义页面。在这里你可以看到它在行动http://www.cenadep.org/2012/02/09/innosetup-form-designer/

于 2013-01-11T22:59:56.107 回答
1

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

[Dirs]
Name: {code:WrkGetWorkingDir}; Flags: uninsneveruninstall

如果未指定,我的应用程序可以接受工作目录 cmdline arg 或创建默认值。所以。我总是在安装脚本中指定该 cmdline arg 并创建该默认目录(如果用户没有更改该路径)。

于 2013-01-14T13:59:42.160 回答
0

希望这会有所帮助

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;
于 2013-04-09T13:43:29.043 回答