1

インストールの最後に表示される「インストールの完了」ページのように、アンインストールの最後に「アンインストールの完了」ページを表示し、同時に自動アンインストール完了メッセージボックスをスキップ/非表示にする方法を見つけようとしています。 .

CreateCustomPage などのページ関数を作成しようとしましたが、アンインストール プロセス中にこれらの関数を呼び出すことができないというメッセージが表示されたため、これは機能しません...

では、そのようなページを表示 (および制御) する方法はありますか?

または、アンインストールが完了した唯一のメッセージボックスに対処する必要がありますか?

私の最初の目標は、このページにチェックボックスを表示して、ユーザーがアンインストールされていないデータ フォルダーを開くかどうかを選択できるようにすることです...

4

3 に答える 3

1

カスタム フォームでこれらのコンポーネントをテストするために、パネルとビットマップを追加しようとしました。

エラーはありません。「BitmapFileName」のパスは問題ありませんが、パネルもビットマップも表示されません:

procedure FormCheckOuvrirRepDonnees();
var
  Form: TSetupForm;
  OKButton: TNewButton;
  CheckBox: TNewCheckBox;
  Label1: TNewStaticText;
  Label2: TLabel;
  Panel: TPanel;
  BitmapImage: TBitmapImage;
  BitmapFileName: String;
begin
  Form := CreateCustomForm();
  try
    Form.ClientWidth := ScaleX(700);
    Form.ClientHeight := ScaleY(500);
    Form.Caption := ExpandConstant('{#MyAppName} {#MyAppVersion}');
    //Form.CenterInsideControl(WizardForm, False);
    Form.Center;

    Label1 := TNewStaticText.Create(Form);
    Label1.Parent := Form;
    //Label1.Width := Form.ClientWidth - ScaleX(2 * 10);
    Label1.AutoSize := true;
    Label1.Height := ScaleY(50);
    Label1.Left := ScaleX(325);
    Label1.Top := ScaleY(10);
    Label1.Caption := ExpandConstant('{cm:MSG_Wizard_OuvrirRepDonneeDescription1}');

    Label2 := TLabel.Create(Form);
    Label2.Parent := Form;
    //Label1.Width := Form.ClientWidth - ScaleX(2 * 10);
    Label2.AutoSize := true;
    Label2.Height := ScaleY(50);
    Label2.Left := ScaleX(325);
    Label2.Top := ScaleY(60);
    Label2.Caption := ExpandConstant('{cm:MSG_Wizard_OuvrirRepDonneeDescription1}');

    Panel := TPanel.Create(Form);
    Panel.Top := ScaleY(120);
    Panel.Width := Form.ClientWidth - ScaleX(2 * 10);
    Panel.Left := ScaleX(325);
    Panel.Height := ScaleY(50);
    Panel.Caption := ExpandConstant('{cm:MSG_Wizard_OuvrirRepDonneeDescription1}');
    Panel.Color := clWindow;
    //Panel.ParentBackground := False;
    //Panel.Parent := Form.Surface;

    BitmapImage := TBitmapImage.Create(Form);
    BitmapImage.Left := Form.left;
    BitmapImage.top := Form.top;
    BitmapImage.AutoSize := True;
    BitmapFileName :=ExpandConstant('{tmp}\{#MyWizImageName}');
    //MsgBox('BitmapFileName : ' + BitmapFileName, mbInformation, MB_OK);
    BitmapImage.Bitmap.LoadFromFile(BitmapFileName);
    //BitmapImage.Cursor := crHand;

    CheckBox := TNewCheckBox.Create(Form);
    CheckBox.Parent := Form;
    CheckBox.Width := Form.ClientWidth - ScaleX(2 * 10);
    CheckBox.Height := ScaleY(17);
    CheckBox.Left := ScaleX(325);
    CheckBox.Top := ScaleY(200);
    CheckBox.Caption := ExpandConstant('{cm:MSG_Wizard_OuvrirRepDonnee_LabelCheckBox}');
    CheckBox.Checked := False;

    OKButton := TNewButton.Create(Form);
    OKButton.Parent := Form;
    OKButton.Width := ScaleX(75);
    OKButton.Height := ScaleY(23);
    OKButton.Left := ((Form.ClientWidth - OKButton.Width)/2);
    OKButton.Top := Form.ClientHeight - ScaleY(23 + 10);
    OKButton.Caption := 'OK';
    OKButton.ModalResult := mrOk;
    OKButton.Default := True;

    //CancelButton := TNewButton.Create(Form);
    //CancelButton.Parent := Form;
    //CancelButton.Width := ScaleX(75);
    //CancelButton.Height := ScaleY(23);
    //CancelButton.Left := Form.ClientWidth - ScaleX(75 + 10);
    //CancelButton.Top := Form.ClientHeight - ScaleY(23 + 10);
    //CancelButton.Caption := 'Cancel';
    //CancelButton.ModalResult := mrCancel;
    //CancelButton.Cancel := True;

    Form.ActiveControl := OKButton;

    if Form.ShowModal = mrOk then begin
      if CheckBox.Checked = true then begin
        CheckOuvrirRepDonnees := true;
      end;
    end;

  finally
    Form.Free();
  end;
end;

誰かがそこで何がうまくいかないのか知っていますか?

于 2015-09-10T12:58:59.367 に答える