Вопрос форма сообщения при нажатии на кнопку "Отмена"

Djinn

Новичок
Всем привет! как на эту форму наложить маленькую картинку bmp 40x40


Код:
    [Setup]
    AppName=Custom Cancel Form
    AppVersion=1.0
    DefaultDirName={pf}\Custom Cancel Form
    AppPublisher=YURSHAT
    AppPublisherURL=http://krinkels.org

    [Languages]
    Name: "RU"; MessagesFile: "compiler:Languages\Russian.isl"

    [Code]
    const
      SND_ALIAS  = $10000;
      SND_ASYNC  = 1;
      SND_NOWAIT = $2000;

    var
      CancelForm: TSetupForm;
      YesButton: TNewButton;
      NoButton: TNewButton;
      FormClose: Boolean;

    function PlaySound(pszSound: PAnsiChar; hmod: Cardinal; fdwSound: DWORD): BOOL;
      external 'PlaySoundA@winmm stdcall';

    function PlaySystemSound(const Sound: String): BOOL;
    begin
      Result := PlaySound(PAnsiChar(Sound), 0, SND_ALIAS or SND_ASYNC or SND_NOWAIT);
    end;

    procedure CancelFormButtonClick(Sender: TObject);
    begin
      case TNewButton(Sender) of
        YesButton: FormClose := True;
        NoButton:  FormClose := False;
      end;
      CancelForm.Close;
    end;

    function ShowCancelMessage(): Boolean;
    begin
      CancelForm := CreateCustomForm();
      try
        PlaySystemSound('SystemQuestion');

        with CancelForm do
        begin
          ClientWidth := ScaleX(473);
          ClientHeight := ScaleY(129);
          BorderIcons := [];
          Caption := SetupMessage(msgExitSetupTitle);
          CenterInsideControl(WizardForm, False);
        end;

        with TLabel.Create(CancelForm) do
        begin
          Parent := CancelForm;
          SetBounds(ScaleX(60), ScaleY(10), ScaleX(400), ScaleY(80));
          AutoSize := False;
          Caption := SetupMessage(msgExitSetupMessage);
        end;

        YesButton := TNewButton.Create(CancelForm);
        with YesButton do
        begin
          Parent := CancelForm;
          SetBounds(ScaleX(157), ScaleY(95), ScaleX(75), ScaleY(23));
          OnClick := @CancelFormButtonClick;
          Caption := SetupMessage(msgButtonYes);
        end;

        NoButton := TNewButton.Create(CancelForm);
        with NoButton do
        begin
          Parent := CancelForm;
          SetBounds(ScaleX(241), ScaleY(95), ScaleX(75), ScaleY(23));
          OnClick := @CancelFormButtonClick;
          Caption := SetupMessage(msgButtonNo);
        end;

        CancelForm.ShowModal;
        Result := FormClose;
      finally
        CancelForm.Free;
      end;
    end;

    procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
    begin
      Confirm := False;
      Cancel := ShowCancelMessage;
    end;
 

sergey3695

Ветеран
Модератор
Djinn,
Код:
[Setup]
AppName=Custom Cancel Form
AppVersion=1.0
DefaultDirName={pf}\Custom Cancel Form

[Languages]
Name: "RU"; MessagesFile: "compiler:Languages\Russian.isl"

[Code]
var
  Lang: boolean;

function InitializeSetup(): Boolean;
begin
if ActiveLanguage= 'RU' then
  Lang:= True;
  Result:= True;
end;

// ShowMessageEx
#include "ShowMessageEx.iss"

procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
  Confirm := False;
  Cancel:=False;
if ShowMessageEx(ExpandConstant(SetupMessage(msgExitSetupMessage)), ExpandConstant(SetupMessage(msgExitSetupTitle)), MB_YESNO, mQuestion,1) = IDYES then
  Cancel:=True;
end;
Ты же так хочешь? (как пользоваться - сам посмотришь в модуле).
 

Вложения

Последнее редактирование:
Сверху