Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для nik1967

Старожил


Сообщения: 440
Благодарности: 251

Профиль | Сайт | Отправить PM | Цитировать


Цитата ErikPshat:
Есть какой-то готовый вариант для подобного MessageBox? А то у меня уже голова не шарит. »
Набросал на скорую руку пример

Код: Выделить весь код
[Setup]
AppName = MyApp
AppVerName = MyApp
DefaultDirname = {pf}\MyApp
OutputDir=.

[Code]
var
  NewButton1: TNewButton;
  NewForm: TSetupForm;
  YesButton: TNewButton;
  NoButton: TNewButton;
  Check: array [0..3] of TCheckBox;

procedure NewFormButtonClick(Sender: TObject);
begin
  case TNewButton(Sender) of
    YesButton: MsgBox('Запустилась упаковка.', mbInformation, MB_OK); //  Сюда вешаешь выполнение, если да
    NoButton: MsgBox('Ничего не произошло.', mbInformation, MB_OK);   //  Сюда, если нет
  end;
  NewForm.Close;
end;

procedure GetCheck(Sender: TObject);
begin
  case sender of
    Check[0]: if Check[0].Checked then begin Check[1].Checked:= False; Check[2].Checked:= False; end;
    Check[1]: if Check[1].Checked then begin Check[2].Checked:= False; Check[0].Checked:= False; end;
    Check[2]: if Check[2].Checked then begin Check[1].Checked:= False; Check[0].Checked:= False; end;
  end;
end;

procedure TestOnClick(Sender: TObject);
begin
  NewForm:= CreateCustomForm();
  with NewForm do begin
    ClientWidth:= ScaleX(473);
    ClientHeight:= ScaleY(233);
    BorderIcons:= [];
    Caption:= 'Тест';
    Color:= clWindow;
    CenterInsideControl(WizardForm, False);
  end;

  with TLabel.Create(NewForm) do begin
    Parent:= NewForm;
    SetBounds(ScaleX(-1), ScaleY(187), ScaleX(475), ScaleY(47));
    Transparent:= false;
    Color:= clBtnFace;
  end;

  with TLabel.Create(NewForm) do begin
    Parent:= NewForm;
    SetBounds(ScaleX(60), ScaleY(10), ScaleX(400), ScaleY(80));
    AutoSize:= False;
    Caption:= 'Вы хотите упаковать папку в PKG?';
  end;

  Check[0]:= TCheckBox.Create(NewForm);
  with Check[0] do begin
    Parent:= NewForm;
    Checked:= True;
    Left:=ScaleX(60);
    Top:= ScaleY(90);
    Width:=ScaleX(280);
    OnClick:= @GetCheck;
    Caption:= ' Тест 1';
  end;

  Check[1]:= TCheckBox.Create(NewForm);
  with Check[1] do begin
    Parent:= NewForm;
    Left:=ScaleX(60);
    Top:= ScaleY(115);
    Width:=ScaleX(280);
    OnClick:= @GetCheck;
    Caption:= ' Тест 2';
  end;

  Check[2]:= TCheckBox.Create(NewForm);
  with Check[2] do begin
    Parent:= NewForm;
    Left:=ScaleX(60);
    Top:= ScaleY(140);
    Width:=ScaleX(280);
    OnClick:= @GetCheck;
    Caption:= ' Тест 3';
  end;

  YesButton:= TNewButton.Create(NewForm);
  with YesButton do begin
    Parent:= NewForm;
    SetBounds(ScaleX(304), ScaleY(200), ScaleX(75), ScaleY(23));
    OnClick:= @NewFormButtonClick;
    Caption:= SetupMessage(msgButtonYes);
  end;

  NoButton := TNewButton.Create(NewForm);
  with NoButton do begin
    Parent:= NewForm;
    SetBounds(ScaleX(389), ScaleY(200), ScaleX(75), ScaleY(23));
    OnClick:= @NewFormButtonClick;
    Caption:= SetupMessage(msgButtonNo);
  end;

  NewForm.ShowModal;
  NewForm.Free;
end;

procedure InitializeWizard();
begin
  NewButton1:= TNewButton.Create(WizardForm);
  with NewButton1 do
  begin
    Parent:= WizardForm;
    SetBounds(ScaleX(10),ScaleY(327),ScaleX(75),ScaleY(23));
    Caption:= 'Тест';
    OnClick:= @TestOnClick;
  end;
end;

И да, зачем ты в MsgBox пихаешь ExpandConstant? Совершенно лишнее.
Код: Выделить весь код

if MsgBox('Выбрана следующая папка :'+#10#10+FolderName+#10#10+'Вы хотите упаковать папку в PKG менее 4 ГБ?', mbInformation, MB_YESNO) = IDYES then

-------
Если сообщение оказалось полезным для Вас, то помимо спасибо, можно нажать на "Полезное сообщение".


Последний раз редактировалось nik1967, 20-11-2018 в 16:04.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:10, 20-11-2018 | #149