MessageBox

Как сделать messagebox,чтобы было 3 кнопки Да Нет Отмена еще надо сделать что то с case!!!!!
1 ответ

var
  Res : Integer;
begin
  Res := MessageDlg(
    'Это сообщение в окне диалога.'
    , mtInformation, [mbYes, mbNo, mbCancel], 0
  );
  case Res of
    mrYes : begin
      //Действия в случае, когда пользователь нажал кнопку "Yes".
    end;
    mrNo : begin
      //Действия в случае, когда пользователь нажал кнопку "No".
    end;
    mrCancel : begin
      //Действия в случае, когда пользователь нажал кнопку "Cancel".
    end;
  end;
end;
Чтобы выводились кнопки с русскими словами ("Да", "Нет", "Отмена"), можно использовать MessageBox():
var
  Res : Integer;
begin
  Res := MessageBox(
    Self.Handle
    , PChar('Сообщение в окне диалога.')
    , PChar('Заголовок окна')
    , MB_YESNOCANCEL + MB_ICONINFORMATION //+ MB_APPLMODAL
  );
 
  case Res of
    IDYES : begin
      //Действия в случае, когда пользователь нажал кнопку "Да".
    end;
    IDNO : begin
      //Действия в случае, когда пользователь нажал кнопку "Нет".
    end;
    IDCANCEL : begin
      //Действия в случае, когда пользователь нажал кнопку "Отмена".
    end;
  end;
end;
Лучше всё-же с MB_APPLMODAL - окно диалога будет запущено в модальном режиме относительно приложения. Т. е. пользователь сможет продолжить работу только, когда нажмёт одну из кнопок.
...
  Res := MessageBox(
    Self.Handle
    , PChar('Сообщение в окне диалога.')
    , PChar('Заголовок окна')
    , MB_YESNOCANCEL + MB_ICONINFORMATION + MB_APPLMODAL
  );
...