Сообщение об ошибке делфи

Как осуществляется вывод в окно сообщения Delphi? Окно сообщений применяется для того, чтобы привлечь внимание пользователей. Используя окно сообщений, программа может оповестить программиста об ошибке первичных данных или сделать запрос о подтверждении выполнения некоторой необратимой операции (удалить файл, очистить содержимое и др.). В Delphi для вывода на экран окна сообщения зарезервирована процедура ShowMessage (либо выполняющая

Как осуществляется вывод в окно сообщения Delphi? Окно сообщений применяется для того, чтобы привлечь внимание пользователей. Используя окно сообщений, программа может оповестить программиста об ошибке первичных данных или сделать запрос о подтверждении выполнения некоторой необратимой операции (удалить файл, очистить содержимое и др.).

В Delphi для вывода на экран окна сообщения зарезервирована процедура ShowMessage (либо выполняющая те же операции функция MessageDlg Delphi). Остановимся подробнее на них.

Процедура ShowMessage Delphi:

Применение процедуры ShowMessage позволяет вывести на экран окно с необходимым текстом и кнопкой подтверждения OK. Процедура ShowMessage Delphi организована следующим образом:

Процедура ShowMessage Delphi

откуда Сообщение представляет собой текст, впоследствии выведенный в диалоговом окне.

Пример 1. Представим иллюстрацию окна сообщения, которое получено вследствие выполнения следующей инструкции:

Процедура ShowMessage Delphi

Вывод в окно сообщения Delphi

Заметка. Заголовок окна сообщения, которое выводится при помощи процедуры ShowMessage, содержит название приложения, задающееся на специальной вкладке Application в окне Project Options. В случае, когда названия приложения не указано, заголовок будет включать в себя имя исполняемого файла.

Функция MessageDlg Delphi:

При помощи более универсальной процедуры MessageDlg возможно размещение в окне сообщения одного из стандартных значков, например, «Внимание», а также возможно задание количества и типа командных кнопок и обозначить, какую именно кнопку щелкнул программист. На рисунке ниже представлена иллюстрация окна, выведенного вследствие выполнения следующей инструкции:

Функция MessageDlg Delphi

Функция MessageDlg Delphi

В качестве значения функции MessageDlg выступает число, проверка значения которого может показать, какая командная кнопка завершила диалог. Общий вид обращения к данной функции представлен ниже:

откуда:

  • Сообщение представляет собой некоторый текст;
  • Тип определяет тип сообщения, которое включает в себя информационное, предупреждающее или сообщение о критической ошибке. Определенному типу ставится в соответствие некоторый значок. Именованная константа задает тип сообщения (табл. ниже).

окно сообщения

  • Кнопки выступают в качестве списка кнопок, которые отображаются в окне сообщения. В состав данного списка входят именованные константы, разделенные запятыми (табл. ниже), при этом весь список заключен в квадратных скобках. К примеру, для появления в окне сообщения кнопок OK и Cancel необходимо представить список Кнопки как [mbOk,mbCansel]. Помимо указанных в таблиц выше констант возможно применение и таких констант, как mbAbortRetryIgnore, а также mbYesNoCansel и др. Как правило, данные константы чаще используются в комбинациях командных кнопок диалоговых окон.

  • КонтекстСправки означает параметр, обозначающий раздел справочной системы, который впоследствии выведется на экран при нажатии пользователем на клавишу F1. В случае отсутствия справочной системы, параметр КонтекстСправки должен быть приравнен нулю.

Значение функции MessageDlg определяет, на какую из командных кнопок щелкнул пользователь при работе с программой (табл. ниже).


Похожие записи:

  • Вывод в поле диалогового окна Delphi
  • Выражения Delphi
  • Вывод в файл Delphi
  • Файлы Delphi
  • Цикл case Delphi

Окна
диалогов
5

Процедура
ShowMessage
Модуль
Dialogs

procedure
ShowMessage(const Msg: string);

Отображает
окно сообщения с кнопкой OK.

Вызов
ShowMessage отображает простое
окно сообщения с кнопкой OK.
Текст сообщения задается параметром
Msg. Заголовок окна
совпадает с именем выполняемого файла
приложения.

При
необходимости анализировать ответ
пользователя на сообщение пользуйтесь
функцией Delphi MessageDlg.

Примеры:

1.)
ShowMessage(‘Работа приложения
успешно завершена.’);

2. ) В
приведенном ниже примере предполагается,
что целые переменные N1 и
N2 содержат соответствующие
числа, которые переводятся в строки
функцией IntToStr. Сообщение,
приведенное в этом примере проще
реализовать процедурой ShowMessageFmt.

ShowMessage(‘Задано
‘ + IntToStr(N1) + ‘ параметров из ‘

+
IntToStr(N2));

ShowMessageFmt
процедура

Модуль
Dialogs

procedure
ShowMessageFmt(const Msg: string; Params: array of const);

Отображает
окно форматированного сообщения с
кнопкой OK.

Вызов
ShowMessageFmt отображает окно
сообщения с кнопкой OK.
Параметр Msg задает
строку описания формата, а параметр
Params задает массив
параметров, форматируемых строкой Msg.
Заголовок окна совпадает с именем
выполняемого файла приложения.

Пример

ShowMessageFmt(‘Задано
%d параметров из %d
‘, [N1, N2]);

Функция
TApplication.MessageBox

function
MessageBox(Text, Caption: PChar; Flags: Longint): Integer;

Функция
MessageBox является методом переменной
Application типа TApplication, доступной в любом
проекте Delphi. Это метод является наиболее
удачным способом отображения диалоговых
окон. Он отображает диалоговое окно с
заданными кнопками, сообщением и
заголовком и позволяет проанализировать
ответ пользователя. Во многих отношениях
это окно подобно окнам, создаваемым
функциями MessageDlg и CreateMessageDialog. Но имеются
и существенные отличия, связанные с
возможностью русификации окна. Заголовок
окна может быть написан по-русски, что
отличает эту функцию от функции MessageDlg
(впрочем, в окне, созданном CreateMessageDialog,
это тоже можно сделать). Другим приятным
отличием являются русские надписи на
кнопках (в русифицированных версиях
Windows).

Функция
MessageBox инкапсулирует функцию MessageBox API
Windows.

Параметр
Text представляет собой текст сообщения,
которое может превышать 255 символов.
Для длинных сообщений осуществляется
автоматический перенос текста. Параметр
Caption представляет собой текст
заголовка окна. Он тоже может превышать
255 символов, но не переносится. Так что
длинный заголовок приводит к появлению
длинного и не очень красивого диалогового
окна.

Параметр
Flags представляет собой множество
флагов, определяющих вид и поведение
диалогового окна. Этот параметр может
комбинироваться операцией сложения по
одному флагу из следующих групп.

Флаги
кнопок, отображаемых в диалоговом окне.

Флаг Значение
(в скобках даны надписи в русифицированных
версиях Windows)

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 (Отмена).

Флаги
пиктограмм в диалоговом окне

MB_ICONEXCLAMATION,
MB_ICONWARNING Восклицательный знак

(замечание, предупреждение).

MB_ICONINFORMATION,
MB_ICONASTERISK Буква i в круге (подтверждение).

MB_ICONQUESTION Знак
вопроса (ожидание ответа).

MB_ICONSTOP,
MB_ICONERROR, MB_ICONHAND Знак креста на красном
круге

(запрет, ошибка).

Флаги,
указывающие кнопку по умолчанию (которая
в первый момент находится в фокусе)

MB_DEFBUTTON1 Первая
кнопка. Это принято по умолчанию.

MB_DEFBUTTON2 Вторая
кнопка.

MB_DEFBUTTON3 Третья
кнопка.

MB_DEFBUTTON4 Четвертая
кнопка.

Флаги
модальности

MB_APPLMODAL Пользователь
должен ответить на запрос, прежде чем
сможет продолжить работу с приложением.
Но он может перейти в окна другого
приложения. Он может также работать со
всплывающими окнами данного приложения.
Этот флаг принят по умолчанию.

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

Некоторые
дополнительные флаги (могут задаваться
оба флага)

Флаг Пояснение

MB_HELP Добавляет
в окно кнопку Help (Справка), щелчок на
которой или нажатие клавиши F1 генерирует
событие Help.

MB_TOPMOST Помещает
окно всегда сверху (в стиле WS_EX_TOPMOST).

Возможны
еще некоторые флаги, определяющие
характер поведения окна при работе в
сети нескольких пользователей, позволяющие
отображать тексты справа налево (для
восточных языков) и т.п.

Функция
возвращает нуль, если не хватает памяти
для создания диалогового окна. Если же
функция выполнена успешно, то возвращаемая
величина
свидетельствует о следующем:

Значение Численное
значение Пояснение

IDABORT 3 Выбрана
кнопка Abort (Стоп).

IDCANCEL 2 Выбрана
кнопка Cancel (Отмена) или нажата клавиша
Esc.

IDIGNORE 5 Выбрана
кнопка Ignore (Пропустить).

IDNO 7 Выбрана
кнопка No (Нет).

IDOK 1 Выбрана
кнопка OK.

IDRETRY 4 Выбрана
кнопка Retry (Повтор).

IDYES 6 Выбрана
кнопка Yes (Да).

Ниже
приведен текст, предусматривающий
проверку правильности ввода данных
перед пересылкой записи в базу данных.

if
(проверка введенных данных)

then
begin

if
(Application.MessageBox(

‘Хотите занести текущую запись в базу
данных?’,

‘Подтвердите занесение в базу данных’,

MB_YESNOCANCEL + MB_ICONQUESTION) <> IDYES)

then begin

DataSet.Cancel;

Abort;

end

end

else begin

Application.MessageBox(‘Ошибочные данные’,’Ошибка’,
MB_ICONSTOP);

Abort;

end;

MessageDlg
функция
Модуль Dialogs

function
MessageDlg(const Msg: string; AType: TMsgDlgType;

AButtons: TMsgDlgButtons;
HelpCtx: Longint):
Word;

Отображает
диалоговое окно сообщений в центре
экрана.

Вызов
MessageDlg отображает диалоговое окно и
ожидает ответа пользователя. Сообщение
в окне задается параметром функции Msg.

Вид
отображаемого окна задается параметром
AType. Возможные значения этого
параметра:

Значение Описание

mtWarning Окно
замечаний, содержащее желтый восклицательный
знак.

mtError Окно
ошибок, содержащее красный стоп-сигнал.

mtInformation Информационное
окно, содержащее голубой символ «i».

mtConfirmation Окно
подтверждения, содержащее зеленый
вопросительный знак.

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

Параметр
AButtons определяет, какие кнопки будут
присутствовать в окне. Тип TMsgDlgBtns
параметра AButtons является множеством,
которое включает различные кнопки.
Возможные значения видов кнопок:

Значение Описание

mbYes Кнопка
с надписью ‘Yes’

mbNo Кнопка
с надписью ‘No’

mbOK Кнопка
с надписью ‘OK’

mbCancel Кнопка
с надписью ‘Cancel’

mbHelp Кнопка
с надписью ‘Help’

mbAbort Кнопка
с надписью ‘Abort’

mbRetry Кнопка
с надписью ‘Retry’

mbIgnore Кнопка
с надписью ‘Ignore’

mbAll Кнопка
с надписью ‘All’

Список
необходимых кнопок заключается в
квадратные скобки [ ], поскольку параметр
AButtons является множеством. Если внутри
скобок список отсутствует, в окне не
будет ни одной кнопки и пользователю
придется закрывать окно системными
кнопками Windows.

Кроме
множества значений, соответствующих
отдельным кнопкам, в Delphi определены три
константы, соответствующие часто
используемым сочетаниям кнопок:

Значение Описание

mbYesNoCancel
Включает в окно кнопки Yes, No и Cancel

mbOkCancel Включает
в окно кнопки OK и Cancel

mbAbortRetryIgnore Включает
в окно кнопки Abort, Retry и Ignore

Эти
константы являются предопределенными
множествами. Поэтому при их использовании
их не надо заключать в квадратные скобки
[ ].

Параметр
HelpCtx определяет экран контекстной
справки, соответствующий данному
диалоговому окну. Этот экран справки
будет появляться при нажатии пользователем
клавиши F1. Если вы справку не планируете,
при вызове MessageDlg надо задать нулевое
значение параметра HelpCtx..

Функция
MessageDlg возвращает значение, соответствующее
выбранной пользователем кнопке. Возможные
возвращаемые значения:

mrNone
mrAbort mrYes

mrOk
mrRetry mrNo

mrCancel
mrIgnore mrAll

Функция
MessageDlg очень полезна для быстрого создания
прототипа приложения и проверки
диалогового взаимодействия с пользователем.
Но у нее есть заметный недостаток: в
заголовках и надписях на кнопках тексты
английские, так что при использовании
русских сообщений получается смесь
русского с английским.

Имеется
также функция MessageDlgPos, во всем аналогичная
функции MessageDlg, но отображающее окно в
заданном месте экрана.

При
выводе простых сообщений без необходимости
анализировать ответ пользователя удобно
использовать другие процедуры Delphi —
ShowMessage и ShowMessageFmt.

Примеры:

1.
Заключительный диалог при окончании
работы приложения.

if
MessageDlg(‘Действительно хотите закончить
приложение?’,

mtConfirmation, [mbYes, mbNo], 0) = mrYes then

begin

MessageDlg(‘Работа приложение закончена’,
mtInformation,

[mbOk], 0);

Close;

end;

Первый
вызов MessageDlg приводит к отображению окна
типа mtConfirmation с вопросом о завершении
приложения. Если пользователь нажимает
кнопку Yes, то выводится второе окно типа
mtInformation с сообщением о завершении.

1.
Сообщение об ошибке и замечание.

on Exception do

begin

MessageDlg(‘Произошла
ошибка.’, mtError,

[mbOk], 0);

MessageDlg(‘Будьте
внимательнее.

‘, mtWarning,

[mbOk], 0);

end;

3. В
каком-то диалоге, после редактирования
пользователем записи ему предлагается
вопрос о сохранении ее в базе данных.
Если пользователь выбирает кнопку Yes,
запись сохраняется методом Post; если
пользователь выбирает кнопку No, результаты
редактирования уничтожаются методом
Cancel; если же пользователь выбирает
кнопку Cancel, диалог закрывается.

case
MessageDlg(‘Занести запись
в БД?’,
mtCustom,

mbYesNoCancel, 0) of

mrYes: DataSet1.Post;

mrNo: DataSet1.Cancel;

mrCancel:
Close;

end;

В вызове
MessageDlg использован тип mtCustom, в результате
чего в заголовке окна указано имя
приложения. Для задания кнопок использована
константа mbYesNoCancel

Соседние файлы в папке _Delphi_1курс лекции

  • #

    23.03.20151.13 Mб23~WRL3549.tmp

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

0 / 0 / 0

Регистрация: 07.12.2013

Сообщений: 5

1

Как сделать вывод сообщения об успехе или ошибке

25.03.2015, 13:46. Показов 8705. Ответов 2


Помогите пожалуйста. В общем у менять есть edit 1 и edit 2 и надо сделать так,что если числа в edit 1 и edit 2 совпадают выводилось сообщение,что всё верно,а если числа разные то выводилась ошибка. Вроде,как то через showmessage делается,но точно не знаю.

p.s Написал програмку для курсача,всё идеально,вот так сказать на финальной стадии застрял.

Заранее спасибо!

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



DenNik

Житель Земли

2994 / 2987 / 391

Регистрация: 26.07.2011

Сообщений: 11,456

Записей в блоге: 1

25.03.2015, 13:51

2

Лучший ответ Сообщение было отмечено SmarTea как решение

Решение

Delphi
1
2
3
4
5
6
7
8
9
10
procedure TForm1.Button1Click(Sender: TObject);
begin
  try
    if StrToInt(Edit1.Text) = StrToInt(Edit2.Text)
      then ShowMessage('Числа совпадают')
      else ShowMessage('Числа не совпадают');
  except
    ShowMessage('В полях введены некороректные данные!');
  end;
end;

Цитата
Сообщение от SmarTea
Посмотреть сообщение

Написал програмку для курсача,всё идеально,вот так сказать на финальной стадии застрял.

слабо верится. то есть ты сложное сделал, а на простом застрял!



2



0 / 0 / 0

Регистрация: 07.12.2013

Сообщений: 5

25.03.2015, 15:18

 [ТС]

3

Спасибо большое,всё отлично.

Ну у меня не особо сложная задача. Суть: Берём два числа из десятичной переводим в двоичную,далее считаем их сумму в двоичной системе,затем переводим эту полученную сумму обратно в десятичную и итоге конечный результат в десятичной системе должен совпасть с суммой первых двух вводимы чисел.Как то так. Щяс еще быстренько менюшки и внешний вид оформлю и вообще всё отлично будет.



0



  • Up to Parent: FMX.Dialogs

Delphi

function MessageDlg(const AMessage: string; const ADialogType: TMsgDlgType; const AButtons: TMsgDlgButtons; const AHelpContext: THelpContext): Integer;
procedure MessageDlg(const AMessage: string; const ADialogType: TMsgDlgType; const AButtons: TMsgDlgButtons; const AHelpContext: THelpContext; const ACloseDialogProc: TInputCloseDialogProc);
procedure MessageDlg(const AMessage: string; const ADialogType: TMsgDlgType; const AButtons: TMsgDlgButtons; const AHelpContext: THelpContext; const ACloseDialogEvent: TInputCloseDialogEvent; const AContext: TObject);
function MessageDlg(const AMessage: string; const ADialogType: TMsgDlgType; const AButtons: TMsgDlgButtons; const AHelpContext: THelpContext; const ADefaultButton: TMsgDlgBtn): Integer;
procedure MessageDlg(const AMessage: string; const ADialogType: TMsgDlgType; const AButtons: TMsgDlgButtons; const AHelpContext: THelpContext; const ADefaultButton: TMsgDlgBtn; const ACloseDialogProc: TInputCloseDialogProc);
procedure MessageDlg(const AMessage: string; const ADialogType: TMsgDlgType; const AButtons: TMsgDlgButtons; const AHelpContext: THelpContext; const ADefaultButton: TMsgDlgBtn; const ACloseDialogEvent: TInputCloseDialogEvent; const AContext: TObject);

C++

extern DELPHI_PACKAGE int __fastcall MessageDlg _DEPRECATED_ATTRIBUTE1("Use FMX.DialogService methods") (const System::UnicodeString AMessage, const System::Uitypes::TMsgDlgType ADialogType, const System::Uitypes::TMsgDlgButtons AButtons, const System::Classes::THelpContext AHelpContext)/* overload */;

Contents

  • 1 Properties
  • 2 Description
    • 2.1 Platform Support
    • 2.2 See Also
    • 2.3 Code Examples

Properties

Type Visibility Source Unit Parent
function public

FMX.Dialogs.pas

FMX.Dialogs.hpp

FMX.Dialogs FMX.Dialogs

Description

Displays a custom dialog box.

Use MessageDlg to display a dialog box that is designed according to the function’s parameters:

  • AMessage represents the text message of the dialog box.
  • ADialogType represents the type of dialog box.
    • For a list of dialog types, see System.UITypes.TMsgDlgType.
  • AButtons determines the buttons of the dialog box. The valid combinations of buttons are available as constants in FMX.Dialogs#Constants.
    • For a list of button types, see System.UITypes.TMsgDlgBtn.
    • For example, mbYes.
  • AHelpContext specifies the help context ID for the dialog box.
  • ADefaultButton determines the button that is in focus when the dialog box is displayed.
    • For a list of button types, see System.UITypes.TMsgDlgBtn.
  • ACloseDialogProc is an anonymous method that MessageDlg executes when the dialog box closes.

MessageDlg returns the value of the button that the user selected. If you provide the ACloseQueryProc parameter, InputQuery passes the selected button to the ACloseQueryProc method instead.

The following table lists the possible return values:

TMsgDlgBtn Value Corresponding Return Value

mbOK

mrOk

mbCancel

mrCancel

mbAbort

mrAbort

mbRetry

mrRetry

mbIgnore

mrIgnore

mbYes

mrYes

mbNo

mrNo

mbClose

mrClose

mbHelp

mrHelp

mbTryAgain

mrTryAgain

mbContinue

mrContinue

mbNone

mrNone

mbAll

mrAll

mbNoToAll

mrNoToAll

mbYesToAll

mrYesToAll

Note: The Help button does not return a value because it does not close the dialog. See TCommonDialog.HelpContext.

If a call to MessageDlg does not include the ACloseDialogProc parameter, the call is blocking on all platforms; that is, MessageDlg does not return until the dialog box closes. Android does not support these blocking calls, you can only use MessageDlg on Android if you provide the ACloseDialogProc parameter.

Calls to MessageDlg that include the ACloseDialogProc parameter are also blocking on desktop platforms but they are non-blocking on mobile platforms; that is, on mobile platforms any code that you place after a call to MessageDlg is executed before the dialog box closes. If you need to execute code after your dialog box closes, use the ACloseDialogProc parameter of MessageDlg to define an anonymous method that runs that code. See:

  • Anonymous Methods in Delphi
  • How to Handle Delphi Anonymous Methods in C++

Platform Support

The following table summarizes which platforms support which calls to MessageDlg and whether those calls are blocking or non-blocking:

Platform Without ACloseDialogProc With ACloseDialogProc
Windows Blocking Blocking
OS X Blocking Blocking
iOS Blocking Non-blocking
Android Non-blocking

See Also

  • System.UITypes.TMsgDlgType
  • System.UITypes.TMsgDlgBtn
  • System.UITypes.TMsgDlgButtons
  • FMX.Dialogs.InputBox
  • FMX.Dialogs.InputQuery
  • FMX.Dialogs.ShowMessage
  • Opening and Closing Datasets

Code Examples

  • FileExists (Delphi)
  • FileExists (C++)
  • TStringBuilderClickCount (Delphi)
  • TStringBuilderClickCount (C++)
  • MessageAlerts Sample

Понравилась статья? Поделить с друзьями:
  • Сочинение на тему как изменить ситуацию чтобы изменилось поведение ребенка
  • Сообщение об ошибке cannot read properties of undefined reading add
  • Состояние 0x000000f windows 7 как исправить
  • Сочинение на тему каждый имеет право на ошибку
  • Сообщение об ошибке 403 доступ запрещен