
- •1.Компоненты Button и BitBtn
- •2.Компоненты Edit, label.
- •3. Компоненты ComboBox, ListBox.
- •4. Компоненты CheckBox, RadioButton.
- •5.Компоненты StringGrid, DrawGrid.
- •Как узнать координаты ячейки при щелчке мышкой
- •Графические возможности компонента StringGrid
- •Совместная работа StringGrid и Excel
- •6.Компоненты ScrollBar, TrackBar.
- •7.Компоненты Form, Panel.
- •8.Компоненты Shape, Image
- •9.Компоненты MainMenu, PopupMenu
- •10.Компоненты TabControl, PageControl
- •11.Компоненты FontDialog, ColorDialog
- •12.Функции InputBox, ShowMessage, MessageDlg
12.Функции InputBox, ShowMessage, MessageDlg
InputBox(const Acaption, APrompt, Adefault: String): String - функция Delphi, создает диалоговое окно для ввода строки текста. Окно располагается в центре экрана и содержит в себе поле для ввода с надписью и две кнопки OK и Cancel.
Acaption - параметр, устанавливает заголовок окна выводимый вверху на синем фоне.
APrompt - параметр, задает поясняющий текст на сером фоне.
Adefault - определяет строку текста, которая будет показана в поле ввода и выделена синим цветом. При вводе текста надпись сразу пропадет. При отказе пользователя от ввода текста, нажатием кнопок ESC и Cancel функция InputBox возвратит этот параметр.
Для закрепления материала создадим небольшое приложение с которым мы будем вести диалог.
Расположим на форме простую кнопку и в ее обработчике напишем следующие команды:
procedure TForm1.Button1Click(Sender: TObject);
var
fio : string;
age : integer;
begin
fio := InputBox('ФИО','Как Вас зовут','Не задано');
age := StrToInt(InputBox('Возраст','Сколько Вам полных лет','0'));
ShowMessage('Здравствуйте '+fio+#10#13+ 'Ваш возраст '+IntToStr(age)+ ' лет');
end;
При щелчке на кнопке мы получим запрос о нашем имени. Ответив или нет мы попадаем ко второму запросу о возрасте. В последнем окне мы получим, как результат нашей работы Приветствие с сообщением о нашем возрасте. Подобным образом можно сделать приложение по тестированию.
Итог: нами была рассмотрена функция InputBox, ее применение в приложении.
ShowMessage(const Msg: String) - эта процедура выводит окно с сообщением и кнопкой Ok. В заголовке содержится название исполняемого файла, если в опциях приложения не задан параметр Title, если задан то выводиться будет он. Строка Msg - будет выводиться как текст сообщения.
MessageDlg(const Msg: String; AType: TMsgDlgType; Abuttons: TMsgButtons; HelpCtx: Longint): Word - функция показывающая диалоговое окно сообщения в центре экрана и дает возможность пользователю ответить на сообщение. Msg - параметр отвечающий за выводимый текст сообщения.
Тип выводимого окна сообщения зависит от параметра AType, список возможных значений которого следующий:
mtErrore - на фоне красного круга расположен белый косой крест и заголовок окна - Error;
mtWarning - на фоне желтого треугольника расположен черный восклицательный знак -"!" и заголовок окна - Warning;
mtConfirmation на фоне белого круга расположен синий знак "?" и заголовок окна - Confimation;
mtInformation - на фоне белого круга расположена синия буква "i" и заголовок окна - Information;
mtCustom - диалоговое окно не содержит рисунка, в заголовке выводиться имя исполняемого файла приложения или Title свойства Application приложения.
AButtons - параметр, который задает набор кнопок на диалоговой форме и может принимать произвольные комбинации из значений:
кнопка Yes - mbYes,
кнопка Ok - mbOk,
кнопка No - mbNo,
кнопка Cancel - mbCancel,
кнопка Abort - mbAbort,
кнопка Retry - mbRetry,
кнопка Ignore - mbIgnore,
кнопка All - mbAll,
кнопка Help - mbHelp.
Список из необходимых, перечисленных кнопок должен быть заключен в квадратные скобки.
MessageDlg('Большое значение', mtConfirmation, [mbYes,mbNo],0 );
Кроме перечисления отдельных кнопок, есть возможность задать часто используемым сочетаниям кнопок значениями специальных констант:
кнопки OK и Cancel - mbOkCancel,
кнопки Yes, No и Cancel - mbYesNoCancel,
кнопки Abort, Retry и Ignore - mbAbortRetryIgnore.
Эти константы не надо брать в скобки, так как они являются предопределенными множествами.
Если мы внутри скобок не объявим список, то в диалоговом окне не будет ни одной кнопки и пользователю придется закрывать окно системными кнопками Windows.
MessageDlg('Большое значение', mtConfirmation,mbAbortRetryIgnore,0 );
При щелчке на любой кнопке (кроме Help) результат возвращается функцией MessageDlg (свойство ModalResult), а сама форма закрывается. Результат может быть одним из значений списка:
mrOk mrRetry mrNo mrNone mrAbort mrYes mrCancel mrIgnore mrAll
Параметр HelpCtx задает тему справки. Ее можно вызвать во время показа диалогового окна клавишей F1. Обычно этот параметр устанавливается равным нулю и справка не выводиться.
Данная функция полезна для быстрого создания приложения, но у нее есть один большой минус в надписях и заголовках на кнопках тексты английские, так что при выводе русских сообщений получается смесь русского с английским.
Давайте создадим простое приложение для закрепления материала.
В обработчике формы onCreate формы создадим заголовок нашей программы:
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.Title:= 'Моя программа';
end;
На форму поместим простую кнопку и создадим для нее обработчик:
procedure TForm1.Button5Click(Sender: TObject);
var
rezult : TModalResult;
begin
rezult := MessageDlg('Предупреждение',mtInformation, mbOKCancel, 0);
if rezult = mrOK then ShowMessage('нажата кнопка OK');
if rezult = mrCancel then ShowMessage('нажата кнопка Cancel');
end;
Запустив приложение щелкнем по кнопке. Перед нами появиться диалоговое окно приведенное слева. Нажав на кнопки OK и Cancel мы получим два разных сообщения информирующих нас о том какую кнопку мы выбрали.
MessageDlgPos(const Msg: String; Atype: AMsgDlgType; Abuttons: TMsgDlgButtons; HelpCtx: Longint; X, Y: Integer):Word - эта функция отличается от MessageDlg, тем что у нее есть два параметра X и Y, устанавливающие положение на экране.
Итог: нами были рассмотрены: процедура ShowMessage и функции MessageDlg и MessageDlgPos. С помощью них мы научились выводить информацию для информации пользователя.