MB_ICONWARNING Предупреждение (знак «!») MB_ICONINFORMATION Информация (буква «i») MB_ICONQUEST I ON Вопрос (знак «?») MB_ICONSTOP Остановка (стоп-знак)

Например, чтобы показать диалоговое окно с кнопками Да и Нет и значком Вопрос, в качестве третьего параметра надо использовать выражение

MB_YESNO I MB_ICONQUESTION

Функция MessageBoxQ возвращает либо значение 0 (показать диалоговое окно не удалось), либо одно из семи значений, которые определяют, на какой из кнопок диалогового окна произошел щелчок.

IDOK

;". нажата ОК

IDCANCEL

нажата «Отменить»

IDABORT

нажата «Стоп»

IDRETRY

нажата «Повтор»

IDIGNORE

нажата «Пропустить»

IDYES

нажата «Да»

IDNO

нажата «Нет»


К сожалению, нельзя в качестве первых двух параметров MessageBoxQ использовать константы описанного в C++Builder типа AnsiString. Дело в том, что MessageBoxQ — это стандартная функция Windows, а не C++Builder, и она требует параметров другого, базового типа char.

Строка в Windows представляет собой последовательность символов, кончающихся символом с кодом 0. Каждый такой символ имеет тип char и занимает один байт. Чтобы передать в MessageBoxQ значение типа AnsiString, приведенное к типу char (точнее, к указателю на последовательность символов в памяти — «char *»), надо воспользоваться методом класса AnsiString, который называется c_str().

h02301.jpg

Методы классов можно применять к любым данным соответствующих типов — не только к переменным, но и ко константам. -

Например, если строка «абвгд» описана как константа типа const AnsiString STR = "абвгд";

230