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]セクションにあります。

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

私のアプリケーションは、作業ディレクトリcmdline argを受け入れるか、指定されていない場合はデフォルトのargを作成できます。それで。私は常にそのcmdlineargを指定し、インストールスクリプトでそのデフォルトのdirを作成します(ユーザーがそのパスを変更しなかった場合)。

于 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 に答える