Difference between revisions of "Dialog Examples/ru"
Line 2: | Line 2: | ||
= Несколько полезных диалогов= | = Несколько полезных диалогов= | ||
− | Вот некоторые полезные диалоги, которых нет в палитре компонентов: | + | Вот некоторые полезные диалоги, которых нет в [[Component Palette/ru|палитре компонентов]]: |
− | * procedure ShowMessage (const Msg: string); | + | * <syntaxhighlight lang="pascal" inline>procedure ShowMessage (const Msg: string);</syntaxhighlight> |
− | * function MessageBox (Text, Caption : PChar; Flags: Word): Integer; | + | * <syntaxhighlight lang="pascal" inline>function MessageBox (Text, Caption : PChar; Flags: Word): Integer;</syntaxhighlight> |
− | * function MessageDlg (const Msg: string; AType: TMsgDlgType; AButtons: TMsgDlgButtons; HelpCtx: LongInt): Word; | + | * <syntaxhighlight lang="pascal" inline>function MessageDlg (const Msg: string; AType: TMsgDlgType; AButtons: TMsgDlgButtons; HelpCtx: LongInt): Word;</syntaxhighlight> |
− | * function InputBox (const ACaption, APrompt, ADefault: string); string; | + | * <syntaxhighlight lang="pascal" inline>function InputBox (const ACaption, APrompt, ADefault: string); string;</syntaxhighlight> |
− | * function InputQuery (const ACaption, APrompt: string; var Value: string): Boolean; | + | * <syntaxhighlight lang="pascal" inline>function InputQuery (const ACaption, APrompt: string; var Value: string): Boolean;</syntaxhighlight> |
− | * function PasswordBox(const ACaption, APrompt : String) : String; | + | * <syntaxhighlight lang="pascal" inline>function PasswordBox(const ACaption, APrompt : String) : String;</syntaxhighlight> |
Каждый из этих компонентов приводит к отображению небольшого всплывающего окна, которое содержит некоторую информацию и требует ответа пользователя: либо нажатия кнопки, либо ввода текста, либо и то и другое. Программист практически не контролирует формат, размер или положение этих всплывающих окон, но может влиять на их текстовое содержимое. | Каждый из этих компонентов приводит к отображению небольшого всплывающего окна, которое содержит некоторую информацию и требует ответа пользователя: либо нажатия кнопки, либо ввода текста, либо и то и другое. Программист практически не контролирует формат, размер или положение этих всплывающих окон, но может влиять на их текстовое содержимое. | ||
Line 20: | Line 20: | ||
===ShowMessage=== | ===ShowMessage=== | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang="pascal"> |
procedure ShowMessage(const Msg: string);</syntaxhighlight> | procedure ShowMessage(const Msg: string);</syntaxhighlight> | ||
− | + | { Определено в Dialogs.pp } | |
− | Простейшее диалоговое окно сообщения: принимает в качестве параметра простую строку, отображает ее в стереотипном поле и ожидает события щелчка мышью или клавиши ввода, прежде чем вернуться к вызывающей подпрограмме или программе. | + | |
+ | Простейшее диалоговое окно сообщения: принимает в качестве параметра простую строку, отображает ее в стереотипном поле и ожидает события щелчка мышью или клавиши ввода, прежде чем вернуться к вызывающей [[Routine/ru|подпрограмме]] или [[Program/ru|программе]]. | ||
Это модальный вызов процедуры, то есть окно отображается, получает фокус и не оставляет фокус, пока не будет нажата кнопка ОК или не выбрано что-либо иное. | Это модальный вызов процедуры, то есть окно отображается, получает фокус и не оставляет фокус, пока не будет нажата кнопка ОК или не выбрано что-либо иное. | ||
Line 29: | Line 30: | ||
Пример: | Пример: | ||
− | <syntaxhighlight>program LazMessage; | + | <syntaxhighlight lang="pascal">program LazMessage; |
uses | uses | ||
Dialogs; | Dialogs; | ||
Line 43: | Line 44: | ||
'''Пример из нескольких строк:''' | '''Пример из нескольких строк:''' | ||
− | <syntaxhighlight>program LazMessage; | + | <syntaxhighlight lang="pascal">program LazMessage; |
uses | uses | ||
Dialogs; | Dialogs; | ||
Line 51: | Line 52: | ||
===MessageBox=== | ===MessageBox=== | ||
− | <syntaxhighlight>{ Определено в Forms.pp как часть TApplication; следовательно, должно вызываться как Application.Messagebox() | + | <syntaxhighlight lang="pascal">{ Определено в Forms.pp как часть TApplication; следовательно, должно вызываться как Application.Messagebox() |
или с использованием конструкции 'with Application do ...'} | или с использованием конструкции 'with Application do ...'} | ||
Line 67: | Line 68: | ||
Пример: | Пример: | ||
− | <syntaxhighlight>uses | + | <syntaxhighlight lang="pascal">uses |
Forms, Dialogs, LCLType; | Forms, Dialogs, LCLType; | ||
Line 87: | Line 88: | ||
===MessageDLG=== | ===MessageDLG=== | ||
− | <syntaxhighlight>function MessageDlg(const aMsg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer; | + | <syntaxhighlight lang="pascal">function MessageDlg(const aMsg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer; |
function MessageDlg(const aCaption, aMsg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;</syntaxhighlight> | function MessageDlg(const aCaption, aMsg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;</syntaxhighlight> | ||
Line 99: | Line 100: | ||
Пример: | Пример: | ||
− | <syntaxhighlight>uses | + | <syntaxhighlight lang="pascal">uses |
Forms, Dialogs, LCLType, Controls; | Forms, Dialogs, LCLType, Controls; | ||
Line 114: | Line 115: | ||
Пример: | Пример: | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang="pascal"> |
case QuestionDlg ('Caption','Message',mtCustom,[mrYes,'Positive', mrNo, 'Negative', 'IsDefault'],'') of | case QuestionDlg ('Caption','Message',mtCustom,[mrYes,'Positive', mrNo, 'Negative', 'IsDefault'],'') of | ||
mrYes: QuestionDlg ('Caption','So you mean „Yes“',mtCustom,[mrOK,'That is right'],''); | mrYes: QuestionDlg ('Caption','So you mean „Yes“',mtCustom,[mrOK,'That is right'],''); | ||
Line 128: | Line 129: | ||
Расширенные примеры для кнопок (из файла promptdialog.inc) | Расширенные примеры для кнопок (из файла promptdialog.inc) | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang="pascal"> |
[mrOk,mrCancel,'Cancel now',mrIgnore,300,'Do it','IsDefault'] | [mrOk,mrCancel,'Cancel now',mrIgnore,300,'Do it','IsDefault'] | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 139: | Line 140: | ||
Обычно кнопки в диалогах Lazarus имеют значки. Для предотвращения отображения значков можно использовать нестандартизированные значения для результатов сообщения. В настоящее время наибольшее стандартизированное значение равно 11. Например: | Обычно кнопки в диалогах Lazarus имеют значки. Для предотвращения отображения значков можно использовать нестандартизированные значения для результатов сообщения. В настоящее время наибольшее стандартизированное значение равно 11. Например: | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang="pascal"> |
case QuestionDlg ('Caption','Message',mtCustom,[20,'Positive', 21, 'Negative',22,'I do not know','IsCancel'],'') of | case QuestionDlg ('Caption','Message',mtCustom,[20,'Positive', 21, 'Negative',22,'I do not know','IsCancel'],'') of | ||
20: QuestionDlg ('Caption','So you mean „Yes“',mtCustom,[20,'That is right'],''); | 20: QuestionDlg ('Caption','So you mean „Yes“',mtCustom,[20,'That is right'],''); | ||
Line 148: | Line 149: | ||
Для облегчения работы можно определить константы. Например: | Для облегчения работы можно определить константы. Например: | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang="pascal"> |
const | const | ||
mrNoneNI= 20; | mrNoneNI= 20; | ||
Line 177: | Line 178: | ||
Диалоги ввода текста: отображение сообщения и ожидание ввода текста пользователем | Диалоги ввода текста: отображение сообщения и ожидание ввода текста пользователем | ||
− | <syntaxhighlight>function InputBox(const ACaption, APrompt, ADefault: String): String;</syntaxhighlight> | + | <syntaxhighlight lang="pascal">function InputBox(const ACaption, APrompt, ADefault: String): String;</syntaxhighlight> |
Отображает поле с определенным заголовком и приглашением, и ожидает ввода пользователя в текстовом поле. По умолчанию строка может быть отображена в текстовом поле. Введенная пользователем строка или строка по умолчанию возвращается как результат функции. | Отображает поле с определенным заголовком и приглашением, и ожидает ввода пользователя в текстовом поле. По умолчанию строка может быть отображена в текстовом поле. Введенная пользователем строка или строка по умолчанию возвращается как результат функции. | ||
Line 183: | Line 184: | ||
Пример: | Пример: | ||
− | <syntaxhighlight>uses | + | <syntaxhighlight lang="pascal">uses |
Forms, LCLType, Dialogs, Controls; | Forms, LCLType, Dialogs, Controls; | ||
Line 195: | Line 196: | ||
===InputQuery=== | ===InputQuery=== | ||
− | <syntaxhighlight>function InputQuery(const ACaption, APrompt : String; MaskInput : Boolean; var Value : String) : Boolean; | + | <syntaxhighlight lang="pascal">function InputQuery(const ACaption, APrompt : String; MaskInput : Boolean; var Value : String) : Boolean; |
function InputQuery(const ACaption, APrompt : String; var Value : String) : Boolean;</syntaxhighlight> | function InputQuery(const ACaption, APrompt : String; var Value : String) : Boolean;</syntaxhighlight> | ||
Line 202: | Line 203: | ||
Пример: | Пример: | ||
− | <syntaxhighlight>uses | + | <syntaxhighlight lang="pascal">uses |
Forms, LCLType, Dialogs, Controls; | Forms, LCLType, Dialogs, Controls; | ||
Line 223: | Line 224: | ||
===PasswordBox=== | ===PasswordBox=== | ||
− | <syntaxhighlight>Function PasswordBox(const ACaption, APrompt : String) : String;</syntaxhighlight> | + | <syntaxhighlight lang="pascal">Function PasswordBox(const ACaption, APrompt : String) : String;</syntaxhighlight> |
Ведет себя очень похоже на функцию InputQuery с MaskInput = TRUE; разница в том, что введенный пароль возвращается как результат функции (как в InputBox). | Ведет себя очень похоже на функцию InputQuery с MaskInput = TRUE; разница в том, что введенный пароль возвращается как результат функции (как в InputBox). | ||
Line 233: | Line 234: | ||
целочисленные константы для определения типов кнопок и иконки для отображения в MessageBox | целочисленные константы для определения типов кнопок и иконки для отображения в MessageBox | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang="pascal"> |
const { Defined in LCLType.pp } | const { Defined in LCLType.pp } | ||
Line 254: | Line 255: | ||
целочисленные константы, определяющие возвращаемое значение из MessageBox в зависимости от того, какая кнопка была нажата | целочисленные константы, определяющие возвращаемое значение из MessageBox в зависимости от того, какая кнопка была нажата | ||
− | <syntaxhighlight>IDOK = 1; ID_OK = IDOK; | + | <syntaxhighlight lang="pascal"> |
+ | IDOK = 1; ID_OK = IDOK; | ||
IDCANCEL = 2; ID_CANCEL = IDCANCEL; | IDCANCEL = 2; ID_CANCEL = IDCANCEL; | ||
IDABORT = 3; ID_ABORT = IDABORT; | IDABORT = 3; ID_ABORT = IDABORT; | ||
Line 266: | Line 268: | ||
определяет, будет ли первая, вторая или третья кнопка по умолчанию | определяет, будет ли первая, вторая или третья кнопка по умолчанию | ||
− | <syntaxhighlight>MB_DEFBUTTON1 = $00000000; | + | <syntaxhighlight lang="pascal"> |
+ | MB_DEFBUTTON1 = $00000000; | ||
MB_DEFBUTTON2 = $00000100; | MB_DEFBUTTON2 = $00000100; | ||
MB_DEFBUTTON3 = $00000200; | MB_DEFBUTTON3 = $00000200; | ||
Line 274: | Line 277: | ||
Типы для использования в MessageDlg, для которого требуются параметры AType TMsgDlgType и AButtons of TMSgDlgButtons | Типы для использования в MessageDlg, для которого требуются параметры AType TMsgDlgType и AButtons of TMSgDlgButtons | ||
− | <syntaxhighlight>{ Defined in Dialogs.pp } | + | <syntaxhighlight lang="pascal"> |
+ | { Defined in Dialogs.pp } | ||
type | type | ||
TMsgDlgType = (mtWarning, mtError, mtInformation, mtConfirmation, | TMsgDlgType = (mtWarning, mtError, mtInformation, mtConfirmation, |
Revision as of 11:07, 10 November 2019
│
Deutsch (de) │
English (en) │
español (es) │
suomi (fi) │
français (fr) │
日本語 (ja) │
polski (pl) │
русский (ru) │
slovenčina (sk) │
中文(中国大陆) (zh_CN) │
Несколько полезных диалогов
Вот некоторые полезные диалоги, которых нет в палитре компонентов:
procedure ShowMessage (const Msg: string);
function MessageBox (Text, Caption : PChar; Flags: Word): Integer;
function MessageDlg (const Msg: string; AType: TMsgDlgType; AButtons: TMsgDlgButtons; HelpCtx: LongInt): Word;
function InputBox (const ACaption, APrompt, ADefault: string); string;
function InputQuery (const ACaption, APrompt: string; var Value: string): Boolean;
function PasswordBox(const ACaption, APrompt : String) : String;
Каждый из этих компонентов приводит к отображению небольшого всплывающего окна, которое содержит некоторую информацию и требует ответа пользователя: либо нажатия кнопки, либо ввода текста, либо и то и другое. Программист практически не контролирует формат, размер или положение этих всплывающих окон, но может влиять на их текстовое содержимое.
Причина, по которой часто существует несколько очень похожих альтернатив, заключается в том, что разные методы могут вызывать компонент и получать данные обратно из процедуры или функции. Эти диалоги могут быть «платформозависимыми», то есть они могут отображаться по-разному. Например, строки, которые полностью отображаются в Windows XP, могут быть усечены в Windows 7.
Диалоги сообщений
Диалоги сообщений отображают сообщение и ждут реакции [пользователя в виде] нажатия клавиши или щелчка мыши.
ShowMessage
procedure ShowMessage(const Msg: string);
{ Определено в Dialogs.pp }
Простейшее диалоговое окно сообщения: принимает в качестве параметра простую строку, отображает ее в стереотипном поле и ожидает события щелчка мышью или клавиши ввода, прежде чем вернуться к вызывающей подпрограмме или программе.
Это модальный вызов процедуры, то есть окно отображается, получает фокус и не оставляет фокус, пока не будет нажата кнопка ОК или не выбрано что-либо иное.
Пример:
program LazMessage;
uses
Dialogs;
begin
ShowMessage('Это сообщение от Lazarus');
end.
У вас есть возможность создавать многострочные сообщения, используя следующие разделители строк, все они будут работать:
- sLineBreak
- LineEnding
- или код символьный код: #13#10
Пример из нескольких строк:
program LazMessage;
uses
Dialogs;
begin
ShowMessage('Это - многострочное' + sLineBreak + 'сообщение!' );
end.
MessageBox
{ Определено в Forms.pp как часть TApplication; следовательно, должно вызываться как Application.Messagebox()
или с использованием конструкции 'with Application do ...'}
function Application.MessageBox(Text, Caption: PChar; Flags: LongInt): Integer;
Параметры включают
- Text: строка, которая отображается как приглашение или инструкция в поле;
- Caption: строка заголовка в верхней части окна сообщения;
- Flags: longint - целое число, построенное путем сложения различных констант, для определения содержимого и поведения блока, например, MB_ABORTRETRYIGNORE + MR_ICONQUESTION заставит приложение отображать значок запроса (?) в поле с тремя кнопками: ABORT RETRY IGNORE.
Функция возвращает целочисленное значение, соответствующее нажатой кнопке; его значение может быть определено с помощью констант[IDOK..IDHELP] Она может быть вызвана как вызов процедуры (то есть как оператор 'MessageBox()', а не как вызов функции 'Variable:= MessageBox()' - см. Пример ниже)
Пример:
uses
Forms, Dialogs, LCLType;
procedure DisplayMessageBox;
var
Reply, BoxStyle: Integer;
begin
BoxStyle := MB_ICONQUESTION + MB_YESNO;
Reply := Application.MessageBox('Press either button', 'MessageBoxDemo', BoxStyle);
if Reply = IDYES then Application.MessageBox('Yes ', 'Reply',MB_ICONINFORMATION)
else Application.MessageBox('No ', 'Reply', MB_ICONHAND);
end;
Обратите внимание, что в этом примере строки 'Yes' и 'No' были дополнены пробелами; в противном случае поле не будет достаточно широким, чтобы правильно отображать заголовок
MessageDLG
function MessageDlg(const aMsg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;
function MessageDlg(const aCaption, aMsg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;
Две версии этой функции, то есть первый параметр 'Caption' является необязательным; если пропущено, заголовок отсутствует в поле
Это наиболее полный и продуманный диалог сообщений, который позволяет программисту значительно контролировать внешний вид диалогового окна. Параметры, определяющие тип поля и его значка, являются типами, а не целочисленными константами, и кнопки можно указывать в виде набора в квадратных скобках, например [mbRetry, mbIgnore, mbAbort, mbCancel]. Параметр HelpCtx в настоящее время не реализован и должен быть установлен в ноль. Возвращаемое значение из функции - это идентификатор нажатой кнопки, выраженный в виде целого числа (см. определения ниже, [mrNone..mrAll]).
Пример:
uses
Forms, Dialogs, LCLType, Controls;
procedure TryMessageDlg;
begin
if MessageDlg('Question', 'Do you wish to Execute?', mtConfirmation, [mbYes, mbNo, mbIgnore],0) = mrYes
then { выполнить оставшуюся часть программы };
end;
QuestionDlg
Диалог вопросов позволяет изменять заголовки кнопок и устанавливать кнопки по умолчанию и отмены.
Пример:
case QuestionDlg ('Caption','Message',mtCustom,[mrYes,'Positive', mrNo, 'Negative', 'IsDefault'],'') of
mrYes: QuestionDlg ('Caption','So you mean „Yes“',mtCustom,[mrOK,'That is right'],'');
mrNo: QuestionDlg ('Caption','Oh, you mean „No“',mtCustom,[mrOK,'Exactly'],'');
mrCancel: QuestionDlg ('Caption','You canceled the dialog with ESC or close button.',mtCustom,[mrOK,'Exactly'],'');
end;
Расширенные примеры для кнопок (из файла promptdialog.inc)
[mrOk,mrCancel,'Cancel now',mrIgnore,300,'Do it','IsDefault']
Это приведет к отображению 4 кнопок:
- 'Ok' возвращает mrOk
- 'Cancel now' возвращает mrCancel
- 'Ignore' возвращает mrIgnore
- 'Do it' возвращает 300. Это будет кнопка по умолчанию (в фокусе)
Обычно кнопки в диалогах Lazarus имеют значки. Для предотвращения отображения значков можно использовать нестандартизированные значения для результатов сообщения. В настоящее время наибольшее стандартизированное значение равно 11. Например:
case QuestionDlg ('Caption','Message',mtCustom,[20,'Positive', 21, 'Negative',22,'I do not know','IsCancel'],'') of
20: QuestionDlg ('Caption','So you mean „Yes“',mtCustom,[20,'That is right'],'');
21: QuestionDlg ('Caption','Oh, you mean „No“',mtCustom,[21,'Exactly'],'');
22: QuestionDlg ('Caption','So, please find out!',mtCustom,[22,'Maybe'],'');
end;
Для облегчения работы можно определить константы. Например:
const
mrNoneNI= 20;
mrOkNI= mrNoneNI+1;
mrCancelNI= mrNoneNI+2;
mrAbortNI= mrNoneNI+3;
mrRetryNI= mrNoneNI+4;
mrIgnoreNI= mrNoneNI+5;
mrYesNI= mrNoneNI+6;
mrNoNI= mrNoneNI+7;
mrAllNI= mrNoneNI+8;
mrYesToAllNI= mrNoneNI+10;
mrCloseNI= mrNoneNI+11;
mrLastNI= mrCloseNI;
begin
case QuestionDlg ('Caption','Message',mtCustom,[mrYesNI,'Positive', mrNoNI, 'Negative',mrCancelNI,'I do not know','IsCancel'],'') of
mrYesNI: QuestionDlg ('Caption','So you mean „Yes“',mtCustom,[mrYesNI,'That is right'],'');
mrNoNI: QuestionDlg ('Caption','Oh, you mean „No“',mtCustom,[mrNoNI,'Exactly'],'');
mrCancelNI: QuestionDlg ('Caption','So, please find out!',mtCustom,[mrCancelNI,'Maybe'],'');
end; //case
end;
Диалоги ввода текста
InputBox
Диалоги ввода текста: отображение сообщения и ожидание ввода текста пользователем
function InputBox(const ACaption, APrompt, ADefault: String): String;
Отображает поле с определенным заголовком и приглашением, и ожидает ввода пользователя в текстовом поле. По умолчанию строка может быть отображена в текстовом поле. Введенная пользователем строка или строка по умолчанию возвращается как результат функции.
Пример:
uses
Forms, LCLType, Dialogs, Controls;
procedure TryInputBox;
var
UserString: string;
begin
UserString := InputBox('Get some text input','Please type in some information', 'Some sample text');
ShowMessage(UserString)
end;
InputQuery
function InputQuery(const ACaption, APrompt : String; MaskInput : Boolean; var Value : String) : Boolean;
function InputQuery(const ACaption, APrompt : String; var Value : String) : Boolean;
Две версии этой функции, которая отображает подсказку и ожидает ввода пользователем текстовых данных; первый включает в себя логический параметр MaskInput, который определяет, маскируется ли пользовательский ввод звездочками в поле ввода текста (например, при вводе пароля), а второй пропускает это свойство. Текст, введенный пользователем, возвращается в переменном параметре 'Value'(Значение); результатом функции является логическое значение, которое возвращает TRUE, если была нажата кнопка OK, или FALSE, если окно было закрыто любым другим механизмом (например, нажатием на значок 'Close'(Закрыть) в верхней строке заголовка). Пропуск параметра MaskInput эквивалентен установке его в значение FALSE.
Пример:
uses
Forms, LCLType, Dialogs, Controls;
procedure TryInputQuery;
var
QueryResult: Boolean;
UserString: string;
begin
if InputQuery('Question', 'Type in some data', TRUE, UserString)
then ShowMessage(UserString)
else
begin
InputQuery('Don''t be silly', 'Please try again', UserString);
ShowMessage(UserString);
end
end;
PasswordBox
Function PasswordBox(const ACaption, APrompt : String) : String;
Ведет себя очень похоже на функцию InputQuery с MaskInput = TRUE; разница в том, что введенный пароль возвращается как результат функции (как в InputBox).
Константы и типы, используемые в диалогах сообщений
Несколько констант и типов, относящихся к использованию с диалоговыми окнами, предварительно определены в библиотеке LCL:
целочисленные константы для определения типов кнопок и иконки для отображения в MessageBox
const { Defined in LCLType.pp }
MB_OK = $00000000;
MB_OKCANCEL = $00000001;
MB_ABORTRETRYIGNORE = $00000002;
MB_YESNOCANCEL = $00000003;
MB_YESNO = $00000004;
MB_RETRYCANCEL = $00000005;
MB_ICONHAND = $00000010;
MB_ICONQUESTION = $00000020;
MB_ICONEXCLAMATION = $00000030;
MB_ICONASTERICK = $00000040;
MB_ICONWARNING = MB_ICONEXCLAMATION;
MB_ICONERROR = MB_ICONHAND;
MB_ICONINFORMATION = MB_ICONASTERICK;
целочисленные константы, определяющие возвращаемое значение из MessageBox в зависимости от того, какая кнопка была нажата
IDOK = 1; ID_OK = IDOK;
IDCANCEL = 2; ID_CANCEL = IDCANCEL;
IDABORT = 3; ID_ABORT = IDABORT;
IDRETRY = 4; ID_RETRY = IDRETRY;
IDIGNORE = 5; ID_IGNORE = IDIGNORE;
IDYES = 6; ID_YES = IDYES;
IDNO = 7; ID_NO = IDNO;
IDCLOSE = 8; ID_CLOSE = IDCLOSE;
IDHELP = 9; ID_HELP = IDHELP;
определяет, будет ли первая, вторая или третья кнопка по умолчанию
MB_DEFBUTTON1 = $00000000;
MB_DEFBUTTON2 = $00000100;
MB_DEFBUTTON3 = $00000200;
MB_DEFBUTTON4 = $00000300;
Параметр Flags MessageBox создается путем добавления константы кнопки [MB_OK..MB_RETRYCANCEL], необязательной константы значка [MB_ICONHAND..MB_ICONINFORMATION] и необязательной постоянной кнопки по умолчанию [MB_DEFBUTTON1..MB_DEFBUTTON3]
Типы для использования в MessageDlg, для которого требуются параметры AType TMsgDlgType и AButtons of TMSgDlgButtons
{ Defined in Dialogs.pp }
type
TMsgDlgType = (mtWarning, mtError, mtInformation, mtConfirmation,
mtCustom);
TMsgDlgBtn = (mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore,
mbAll, mbNoToAll, mbYesToAll, mbHelp, mbClose);
TMsgDlgButtons = set of TMsgDlgBtn;
const
mbYesNoCancel = [mbYes, mbNo, mbCancel];
mbOKCancel = [mbOK, mbCancel];
mbAbortRetryIgnore = [mbAbort, mbRetry, mbIgnore];
MsgDlgBtnToBitBtnKind: array[TMsgDlgBtn] of TBitBtnKind = (
bkYes, bkNo, bkOK, bkCancel, bkAbort, bkRetry, bkIgnore,
bkAll, bkNoToAll, bkYesToAll, bkHelp, bkClose
);
BitBtnKindToMsgDlgBtn: array[TBitBtnKind] of TMsgDlgBtn = (
mbOk, mbOK, mbCancel, mbHelp, mbYes, mbNo,
mbClose, mbAbort, mbRetry, mbIgnore, mbAll, mbNoToALl, mbYesToAll
);
{ Defined in Controls.pp }
const
mrNone = 0;
mrOK = mrNone + 1;
mrCancel = mrNone + 2;
mrAbort = mrNone + 3;
mrRetry = mrNone + 4;
mrIgnore = mrNone + 5;
mrYes = mrNone + 6;
mrNo = mrNone + 7;
mrAll = mrNone + 8;
mrNoToAll = mrNone + 9;
mrYesToAll = mrNone + 10;
mrLast = mrYesToAll;