Загрузка...

Функция TAppllication->MessageBox


Метод MessageBox позволяет устранить отсутствие русификации диалоговых окон (английские надписи на кнопках) и невозможность указать текст заголовка окна, а также добавить еще ряд кнопок в диалоговом окне.
Метод объявляется следующим образом:
int_fastcall MessageBox (const char * Text,
const char * Caption, int Flags);

Он отображает диалоговое окно с заданными кнопками, сообщением и заголовком и позволяет проанализировать ответ пользователя. Функция MessageBox инкапсулирует функцию MessageBox API Windows. Параметр Text представляет собой текст сообщения, которое может превышать 255 символов. Для длинных сообщений осуществляется автоматический перенос текста. Параметр Caption представляет собой текст заголовка окна. Он тоже может превышать 255 символов, но не переносится. Параметр Flags представляет собой множество флагов, определяющих вид и поведение диалогового окна. Этот параметр может комбинироваться операцией сложения по одному флагу из следующих групп.
Таблица 1. Флаги кнопок, отображаемых в диалоговом окне
Флаг Значения
MB_ABORTRETRYIGNORE Кнопки Abort (Стоп), Retry (Повтор) и Ignore (Пропуск)
MB_OK Кнопка OK. Этот флаг принят по умолчанию
MB_OKCANCEL Кнопка OK и Cancel (Отмена)
MB_RETRYCANCEL Кнопки Retry и Cancel
MB_YESNO Кнопки Yes (Да) и No (Нет)
MB_YESNOCANCEL Кнопки Yes, No и Cancel

Таблица 2. Флаги пиктограмм в диалоговом окне
Флаг Пиктограмма
MB_ICONWARNING Восклицательный знак (предупреждение)
MB_ICONINFORMATION Буква i в круге (подтверждение)
MB_ICONQUESTION Знак вопроса (ожидание ответа)
MB_ICONSTOP Знак креста на красном круге (ошибка)

Таблица 3. Флаги модальности
Флаг Пояснение
MB_APPLMODAL Пользователь должен ответить на запрос, прежде чем сможет продолжить работу с приложением. Но он может перейти в окна другого приложения. Он может также работать со всплывающими окнами данного приложения.
MB_SYSTEMMODAL То же самое, что MB_APPLMODAL, но окно диалога отображается в стиле WS_EX_TOPMOST, то есть всегда остается поверх других окон, даже если пользователь перешел к другим приложениям. Используется для предупреждения о серьезных ошибках, требующих немедленного вмешательства.

Функция возвращает 0, если не хватает памяти для создания диалогового приложения. Если же функция выполнена успешно, то возвращаемая величина свидетельствует о следующем:
Значение Числ. Значение Пояснение
IDABORT 3 Выбрана кнопка Abort (Стоп)
IDCANCEL 2 Выбрана кнопка Cancel (Отмена) или нажата клавиша ESC
IDIGNORE 5 Выбрана кнопка Ignore (Пропустить)
IDNO 7 Выбрана кнопка No
IDOK 1 Выбрана кнопка OK
IDRETRY 4 Выбрана кнопка Retry (Повтор)
IDYES 6 Выбрана кнопка Yes

ПРИМЕР:

If (проверка введения данных)
{
if (Application->MessageBox (
“Хотите занести текущую запись в БД?”,
“Подтвердите занесение в БД”,
MB_YESNOCANCEL+MB_ICONQUESTION) !=IDYES
{
DataSet->Cancel();
Abort();
}
else
{
Application->MessageBox(“Ошибочные данные”, “Ошибка”,MB_ICONSTOP);
Abort();
}
}

Загрузка...