функции С и C++, библиотек 0+Builder, API Windows_______________905

case mrYes: Tablel->Post() ;

break;

case mrNo : Tablel->Cancel ();

break;

case mrCancel : Close ();

}

Функция MessageDlgPos, во всем подобна MessageDIg, но отображает диало-
говое окно сообщений в заданном месте экрана. Координаты левого верхнего угла
диалогового окна определяются параметрами Х и Y. Остальные параметры тожде-
ственны функции MessageDIg. Например, оператор

MessageDlgPos("Будьте внимательнее.", mtWarning, TMsgDIgButtons()
« mbOK, 0, 250, 0);

вызовет появление окна сообщения вверху экрана (параметр Y=0) примерно в цен-
тре. А оператор

MessageDlgPos("Ошибка в этом окне!", mtError,
TMsgDIgButtons() « mbOK, О,
BoundsRect.Left,BoundsRect.Bottom);

отобразит диалоговое окно вблизи нижнего левого угла формы, в которой записан
данный оператор.

Функция CreateMessageDialog позволяет создать диалоговое окно сообщения
в виде объекта формы. Функция только создает окно, но не отображает его. Ото-
бражение осуществляется обычными для форм методами Show или ShowModal.
Одним из преимуществ создания объекта диалогового окна является то, что в нем,
как в обычной форме, можно задать русский текст заголовка. В предыдущих фун-
кциях это было невозможно. Недостатком применения функции CreateMessageDi-
alog является то, что объект диалогового окна хранится в памяти все время, пока
он не будет уничтожен явно методом Free. Это приводит к непроизводительным за-
тратам памяти. Приведем пример. Операторы

TForm *FMess;

FMess = CreateMessageDialog("Будьте внимательнее.", mtWarning,
TMsgDIgButtons() « mbOK) ;

FMess->Caption = "Предупреждение";

создают объект FMess диалогового окна, задают текст его сообщения и заголовок
«Предупреждение». Оператор

FMess->ShowModal() ;

отображает окно как модальную форму. Оператор

FMess->Free() ;

уничтожает объект, после чего окно уже не сможет отображаться.

Функция MessageBox, строго говоря, является не функцией, а методом пере-
менной Application типа TApplication. Поэтому MessageBox надо было бы рас-
сматривать в главе 15 наряду с другими методами. Но поскольку тематически этот
метод очень близок рассмотренным выше функциям, обсудим его в данном разде-
ле.

Метод MessageBox отображает диалоговое окно с заданными кнопками, сооб-
щением и заголовком и позволяет проанализировать ответ пользователя. Во мно-
гих отношениях это окно подобно окнам, создаваемым функциями MessageDIg и
CreateMessageDialog. Но имеются и существенные отличия, связанные с возмож-
ностью русификации окна. Заголовок окна может быть написан по-русски, что от-
личает эту функцию от функции MessageDIg (впрочем, в окне, созданном Create-