Знакомство со средой программирования Delphi, как правило, начинается с осмотра внешнего вида рабочей области Delphi. В высокой эффективности работы программистов немалую роль играет удобство интерфейса среды программирования. Чем выгодно и отличается Delphi. Внешне рабочая область Delphi выглядит как несколько одновременно раскрытых на экране окон. Для этих окон предусмотрено свободное перемещение по экрану, в том числе и приведение их к состоянию наложения друг на друга. Интересен тот факт, что у некоторых пользователей при работе в данной среде разработки наблюдается некоторый дискомфорт, вызванный незакреплённым положением в пространстве, которое занимают рабочие окна Delphi. Это происходит в большинстве случаев из-за того, что многие пользователи привыкают к «строгости» среды текстового процессора Word. Так как каждое окно в Delphi имеет своё назначение, чувство дискомфорта постепенно пропадает. В рабочих окнах Delphi нетрудно разобраться, что позволяет быстрее адаптироваться к среде разработки.

Разные версии программы могут несколько отличаться друг от друга количеством окон и их наименованиями, однако, различия эти несущественные, и вы всегда поймёте из контекста и внешнего вида окон их назначение, если вы были внимательны при прочтении этого материала. Итак, запустим Delphi и пронаблюдаем за рабочей областью. Здесь мы увидим 5 основных окон Delphi, которые сейчас постараемся расположить для вас в наиболее ясной последовательно относительно их важности.

  • Главное окно программы (Delphi # - Project 1). Обратите внимание, что в названии данного окна используется символ «#», который обозначает номер вашей версии Delphi.
  • Окно дерева объектов (Object TreeView)
  • Окно редактора свойств объектов (Object Inspector)
  • Окно формы (Form 1)
  • Окно редактора кода программы (Unit1.pas)

Теперь разберём функции этих окон в соответствующем порядке.

Начнём с того, что при наложении одного окна на другое, что часто бывает удобным в работе по некоторым, как индивидуальным, так и техническим причинам, у пользователей периодически возникает потребность просмотреть содержимое окна кода программы. Для этого существует специальный хоткей F12, который выполняет функцию двоичного переключателя и попеременно показывает окно формы или окно кода.

Приступим к рассмотрению непосредственно окон. Главное окно позволяет управлять проектом разрабатываемой программы. Присутствие данного окна на экране постоянно. Располагается оно в верхней части рабочей области. В главном окне находятся те элементы интерфейса, которые постоянно необходимы программисту. Минимализация окна скрывает все побочные окна, а при его закрытии происходит окончание работы с системой программирования.

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

Окно дерева объектов наглядно отображает связи между отдельными компонентами активной формы или активного модуля данных.

Возможно, начинающие думают, что для того чтобы создать свою первую программу на Delphi, нужно потратить много времени на изучение системы. Тем не менее, в Delphi это не сложнее простого щелчка мышкой!

Итак, запустим Delphi . Для этого нужно создать ярлык на рабочем столе, если, конечно, Вам не нравится каждый раз ходить по адресу Program Files - Borland - Delphi -Bin и отыскивать файл delphi32.exe . Гораздо проще один раз найти его ярлычок в меню ПУСК - ВСЕ ПРОГРАММЫ - BORLAND DELPHI - DELPHI , перетащить его отсюда на рабочий стол и, как говорится, будет Вам счастье!

Перед нами четыре окна Delphi . Вверху во вcю ширину экрана окно управления проектом и средой разработки - главное окно Delphi .
При его сворачивании сворачиваются и все остальные. Слева - Инспектор объектов . В нём задаются свойства составляющих нашу программу компонентов. И наконец, в центре одно над другим два окна Delphi, окно формы будущей программы и окно программной начинки. Прямо перед нами - окно, которое в Delphi называется Форма . Именно Форма является визуальным прообразом нашей будущей программы. Теперь посмотрите, как легко получается программа в Delphi :

  1. Наводим мышку на зелёный треугольник-стрелку на главном окне
  2. Смотрим - всплывает подсказка "Run (F9) "
  3. Жмём на эту кнопку (или F9 на клавиатуре)
  4. Получаем готовую Windows-программу!
Однако (как подсказывают в комментариях), не во всех версиях Delphi запуск программы производится кнопкой F9, для некоторых это CTRL+F9 - посмотрите сами, какую подсказку выдает Delphi при наведении на зелёную стрелку.

По умолчанию программа создаётся в папке :

Отсюда её можно скопировать и использовать так, как нам нужно. Я, например, для начала ставлю ярлык на рабочий стол , чтобы при тестировании проверять её без использования Delphi.

Мы получили программу, состоящую из одного пустого окна. Тем не менее наша программа имеет все атрибуты, присущие всем программам в Windows: заголовок, системное меню (кликните по левому краю заголовка!), кнопки свернуть, развернуть, закрыть , может менять свои размеры.

Закройте программу-Форму. Рассмотрим полезные для нас свойства Формы :

  1. Надпись на заголовке - свойство Caption . Сейчас это Form1, и совпадает со свойством Name . В инспекторе объектов можно поменять их по своему усмотрению. Напишите в свойстве Caption, например, "Простейшая программа!"
  2. Цвет - свойство Color .
  3. Размеры - ширина и высота в пикселах, свойства Width и Height . Изменяем их мышкой, двигая края Формы, затем устанавливаем более точные значения в Инспекторе.
  4. Положение на экране - свойства Top и Left . Это расстояния в пикселах от верхней и левой границы экрана соответственно. Если необходимое положение Формы закрывает элементы управления Delphi, просто сверните её. Но есть очень полезное
  5. свойство Position , с помощью которого можно настроить автоматическое появление Формы в нужном месте. Разверните выпадающий список:
    • При значении poDesigned Форма появится в том месте, где она находилась при проектировании. Это значение по умолчанию.
    • При значениях poDesktopCenter и poScreenCenter Форма появится в центре рабочего стола или центре экрана.

    • Форма может быть вызвана из другого окна-формы. Тогда при значениях
    • poMainFormCenter она появится в центре главного окна приложения,
    • poOwnerFormCenter - в центре вызывающего окна, так называемого "владельца".
  6. Вы можете запрограммировать появление Формы в нормальном, минимизированном или максимизированном состоянии. За это отвечает
  7. свойство WindowState - значения wsNormal , wsMinimized и wsMaximized соответственно.

  8. Не у всех окон в заголовке есть кнопки свернуть, развернуть, закрыть . Их наличием или отсутствием управляет
  9. свойство BorderIcons . В Инспекторе слева от него маленький плюсик, открывающий признак наличия или отсутствия нужной кнопки. True - кнопка будет, False - нет. Смело экспериментируйте, но изменения будут видны только в работающей программе, а не в прототипе. А вот как вы будете закрывать Форму при biSystemMenu=False , ведь крестика закрытия не будет? Запомните сочетание ALT+F4 . Это команда закрытия любых окон, включая саму Windows!

  10. Вы можете управлять также границами Формы. Для этого служит
  11. свойство BorderStyle . При значении
    • bsSizeable - обычная Форма, значение по умолчанию.
    • bsNone - Форма вообще не будет иметь границ, включая строку заголовка.
    • bsSingle - Форма не может менять размеры, но может свернуться или развернуться.
    Таким образом, комбинируя свойства BorderIcons и BorderStyle можно, например, получить форму с неизменными размерами и без возможности свернуться и развернуться:

Теперь займёмся сохранением нашего проекта. Так как по умолчанию Delphi сохраняет новые проекты в папке C:\Program Files\Borland\Delphi7\Projects , то если мы не будем выделять под него место сами, все файлы данного и всех будущих проектов будут свалены в кучу. Поэтому сразу в начале работы над новым проектом командой меню File -» Save All (или соответствующей кнопкой на главном окне) сохраним проект в специально для него созданную папку. Создать её можно прямо в открывшемся окошке. Проект в целом сохраняется в файле с именем Project1. Форма функционирует вместе с программой, описывающей её работу, так называемым модулем . Если модулей в проекте несколько, для каждого из них Delphi создаст отдельный файл, и предложит его сохранить под именем Unit1, Unit2 и т.д. И для файла проекта, и файлов модулей можно дать и своё, более осмысленное название. Договоримся, что каждый новый проект сразу будем сохранять, и я не буду дополнительно напоминать об этом.
Теперь выполните команду File -» Close All . Попробуйте открыть файл модуля командой Open... . Модуль откроется вместе с нашей формой, мы сможем нормально работать, но кнопка запуска программы окажется неактивной. Поэтому сначала нужно открывать файл проекта. Для этого, кстати, есть специальная команда меню File -» Open Project... Ctrl F11 , и соответствующая кнопка, прямо над кнопкой запуска. Теперь в окне выбора будет только один файл, файл проекта. При его открытии будет открыт и первый модуль и первая форма проекта. Для нашего проекта этого достаточно. Если в проекте несколько форм, их модули и формы открываем командой Open... . Можно открывать модули других проектов, например, для копирования кода.

Теперь я предлагаю сделать следующее. Надеюсь, ваш жёсткий диск разбит хотя бы на две части, для размещения системы, и для документов. Поскольку систему приходится иногда переустанавливать, под проекты Delphi целесообразно отвести специальную папку на другом диске, например D:\Проекты Delphi\ , и сохранять проекты туда, а в папку по умолчанию поставить на неё ярлык для быстрого перехода. Теперь, в случае переустановки системы, Вам не придётся дополнительно сохранять Ваши наработки.

Да, кстати, дистрибутив Delphi7, которым пользуюсь я, можно скачать с

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

Процедура , функции и отображают окно (панель) вывода сообщений, а функции и InputQuery - окно (панель) для ввода информации.

Процедура ShowMessage

Процедура (const Msg: String) отображает окно сообщения с кнопко ОК. Заголовок содержит название исполняемого файла приложения, а строка Msg выводится как текст сообщения.

Функция MessageDlg

Функция (const Msg: String; AType: TMsgDlgType; AButtons: TMsgDlgButtons; Helpctx: Longint) : word отображает окно сообщения в центре экрана и позволяет получить ответ пользователя. Параметр Msg содержит отображаемое сообщение.

Окно сообщения может относиться к различным типам и наряду с сообщением содержать картинки. Тип окна сообщения определяется параметром АТуре , который может принимать следующие значения:

  • mtWarning (окно содержит черный восклицательный знак в желтом треугольнике и заголовок Warning);
  • mtError (окно содержит белый косой крест в красном круге и заголовок Error);
  • mtInformation (окно содержит синюю букву «i» в белом круге и заголовок Information);
  • mtConfirmation (окно содержит синий знак «?» в белом круге и заголовок Confirmation);
  • mtCustom (окно не содержит картинки, в заголовке выводится название исполняемого файла приложения).

Параметр AButtons задает набор кнопок окна и может принимать любые комбинации следующих значений:

  • mbYes (кнопка Yes);
  • mbAbort (кнопка Abort);
  • mbNo (кнопка No);
  • mbRetry (кнопка Retry);
  • mbOk (кнопка OK);
  • mbIgnore (кнопка Ignore);
  • mbCancel (кнопка Cancel);
  • mbAll (кнопка All);
  • mbHelp (кнопка Help);

Для значения параметра AButtons имеются две константы - mbYesNoCancel и mbOKCancel , задающие предопределенные наборы кнопок:

  • mbYesNoCancel = ;
  • mbOKCancel =

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

Параметр HelpCtx определяет контекст (тему) справки, которая появляется во время отображения диалогового окна при нажатии пользователем клавиши . Обычно! значение этого параметра равно нулю.

Пример использования функции MessageDlg:

    procedure TForm1. Button1Click (Sender: TObject ) ;

    var rez : TModalResult;

    begin

    if Length (DateEdit1. Text ) <> 10 then

    begin

    rez: = ("Не правильная дата" + #10 #13 + "Исправить автоматически?" , mtError, [ mbOk, mbNo] , 0) ;

    if rez = mrOk then DateEdit1. Text : = DateToStr (Date ) ;

    if rez = mrNo then DateEdit1. SetFocus ;

    end ;

    end ;

При нажатии кнопки Button1 производится простейшая проверка даты. Код даты вводится в поле редактирования DateEdit1 , размещенное в форме. Если длина даты меньше допустимой, выдается предупреждение с запросом на автоматическую коррекцию (см. скриншот). При утвердительном ответе пользователя в поле даты записывается текущая дата, при отрицательном - фокус передается полю ввода даты.

Функция MessageDlgPos

Функция MessageDlgPos (const Msg: String; AType: TMsgDlgType; AButtons: TMsgDlgButtons; HelpCtx: Longint; X, Y: Integer) : Word отличается от функции MessageDlg наличием параметров Х и Y, управляющих положением окна на экране.

Функция InputBox

Функция InputBox (const ACaption, APrompt, ADefault: String): String отображает диалоговое окно для ввода строки текста. Окно выводится в центре экрана и содержит поле ввода с надписью, а также кнопки ОК и Cancel.

Параметр ACaption задает заголовок окна, а параметр APrompt содержит поясняющий текст к полю ввода. Параметр ADefault определяет строку, возвращаемую функцией при отказе пользователя от ввода информации (нажатие кнопки Cancel или клавиши ).

Пример использования функции InputBox:

Приведенная процедура отображает окно запроса на ввод фамилии пользователя (см. скриншот).

По умолчанию предлагается Иванов.

Функция InputQuery

Функция InputQuery (const ACaption, APrompt: String; var Value: String): Boolean отличается от функции InputBox тем, что вместо третьего параметра- строки по умолчанию- используется параметр Value , который в случае подтверждения ввода содержит введенную пользователем строку.

В качестве результата функция возвращает логическое значение, позволяющее определить, каким образом завершен диалог. Если нажата кнопка ОК, то функция возвращает значение True, если нажата кнопка Cancel или клавиша - значение False.

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

Кроме рассмотренных диалоговых окон, в Delphi имеется ряд других специализированных диалоговых окон, например диалоговое окно выбора каталога , вызываемое функцией Select Directory модуля FileCtrl.

Среда программирования Delphi

Delphi – это программное обеспечение, предназначенное для создания программ под ОС Windows. В основе Delphi лежит язык Object Pascal (версия 9.0 языка ТР) и технология визуального проектирования и событийного программирования.

Отличия от традиционного программирования:

1. Среда программирования содержит обширную библиотеку классов визуальных компонентов: формы, меню, кнопки, поля ввода и т.п.

2. Для использования в программе стандартного визуального компонента достаточно перенести его в рабочую форму. Программный код, соответствующий компоненту будет автоматически включен в программу. Программисту надо только запрограммировать действия связанные с этим компонентом.

Что такое программа под Windows рассмотрим на простейшем примере. Пусть мы хотим создать программу для решения квадратного уравнения. Такую программу можно оформить так(рис.д4): (форма?? см. лист 10.4)

На форме разместим три поля для ввода значений коэффициентов А, В, С;

Затем поместим в форму поле для вывода

корня уравнения Х;

Около этих полей поместим соответствующие надписи;

В нижней части поместим кнопку с надписью "корень уравнения";

Разместим на форме также кнопку с надписью "закрыть".

Принцип действия такой программы очевиден - в первые три окна вводим значения коэффициентов уравнения, нажимаем кнопку "корень уравнения" и в четвертом окне получаем результат.

Чтобы эта программа решала указанную задачу надо создать для кнопки "корень уравнения" обработчик события – процедуру, которая должна выполняться при нажатии на эту кнопку. Очевидно, что эта процедура должна выполнять следующие действия:

Вычислять корни уравнения по определенному алгоритму;

Записывать корни уравнения (или соответствующие сообщения) в поле вывода результатов.

Кроме того надо также создать обработчик события для кнопки "закрыть". При нажатии на эту кнопку окно программы должно исчезать с экрана.

В процессе разработки программы Delphi автоматически создает несколько файлов. Совокупность этих файлов принято называть проектом . На основе этих файлов Delphi создает исполняемую программу (файл с расширением exe), которую можно использовать как любую программу под Windows (можно создать дистрибутив, инсталлятор, можно назначить ярлык и разместить его на рабочем столе).

Рабочее окно Delphi имеет типичны для приложений Windows вид.

При активизации иконки Delphi на рабочем столе Windows на экране появляется главное рабочее окно Delphi, показанное на рис.5.22.1.



На рисунке обозначено

1 - Главное окно Delphi ,

2 - Главное меню , содержит типичный для приложений Windows набор пунктов меню:

меню File – содержит пункты меню для создания нового проекта (New), открытия формы (Open), открытия проекта (Open Project), сохранения формы (Save As) или проекта (Save Project As) под другим именем, печати активной формы или модуля (Print) и др.

меню Edit – содержит обширный набор пунктов меню для редактирования формы и текста модуля формы, в том числе команды для копирования (Copy), вырезания (Cut), вставки (Paste), удаления (Delete), выделенных компонентов формы или фрагментов текста модуля формы;

меню Search - содержит набор пунктов меню для поиска и замены фрагментов текста;

меню View - содержит обширный набор команд для просмотра различных окон (от окна формы до регистров CPU);

меню Project - содержит команды для работы с проектом, в частности, команды:

Compile Имя проекта – компилирует модули, которые тзменились с момента компиляции предыдущей версии проекта;

Build Имя проекта – компилирует все модули проекта и создает исполняемую программу;

меню Ran – здесь располагаются команды связанные с выполнением программы, в частности команды:

Ran – компилирует программу и выполняет ее прогон;

Trace Into (клавиша F7) - в этом случае программа останавливается перед первым выполняемым оператором программы, т. е. будет выделено ключевое слово Begin раздела операторов. При каждом нажатии на клавишу F7 выполняется по одной строке программы (независимо от количества операторов на строке). Если в программе используются подпрограммы, то они также выполняются в пошаговом режиме;

Step Over (клавиша F8) - этот режим аналогичен предыдущему, но подпрограммы выполняются не по шагам, а полностью. Все эти режимы можно комбинировать в одном сеансе отладки. Для выхода из этих режимов отладки необходимо нажать комбинацию клавиш Ctrl + F2.

меню Component – содержит команды для работы с компонентами;

меню Database - содержит команды для работы с базами данных;

меню Tools - содержит команды для работы с окнами настройки параметров среды Delphi и ее инструментов;

меню Help - содержит команды для работы со справочной службой.

3 - Панель быстрого доступа (SpeedBar - находится непосредственно под меню) содержит набор кнопок, функции которых эквивалентны функциям наиболее часто используемых команд главного меню (программист может по своему усмотрению добавлять или удалять команды из полосы быстрого доступа - для этого необходимо расположить курсор в области панели, щелкнуть правой кнопкой мыши и выбрать команду Configure);

4 - Палитра (панель) визуальных компонентов .

Компоненты - это строительные блоки, из которых собирается Delphi приложение. В Delphi имеются визуальные и не визуальные компоненты. Все эти компоненты представлены в Палитре компонент, с помощью пиктограмм.

Палитра Компонент позволяет выбрать нужные объекты для размещения их на форме. Для использования Палитры Компонент просто надо щелкнуть мышкой на один из объектов и,затем перенести курсор на форму и щелкнуть второй раз в требуемом месте формы.. Выбранный Вами объект появится на проектируемом окне и им можно манипулировать (двигать, изменять размеры) с помощью мыши. Фрагмент структуры палитры компонентов приведен на рис.5.22.2.

Палитра Компонент использует постраничную группировку объектов. Она содержит набор закладок - Standard, Additional, Dialogs и т.д. Для перехода на другую страницу Палитры Компонент достаточно щелкнуть мышью по соответствующей закладке.

5 - Инспектор объектов - это специальное окно для отображения значений свойств объектов и выбора методов - обработчиков событий в процессе разработки программы. Окно инспектора объектов (ИО) содержит две страницы: Properties (свойства) и Events (события). Свойства и события в окне инспектора объектов отображаются для выделенного на форме в данный момент объекта. Если на форме нет выделенных объектов, то в инспекторе объектов отображаются события и свойства формы.

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

Для переключения между страницами свойств и событий достаточно щелкнуть мышью по соответствующей странице. Страница событий связана с Редактором формы; если дважды щелкнуть мышкой на правую сторону какого-нибудь пункта, то соответствующий данному событию код автоматически запишется в Редактор, сам Редактор немедленно получит фокус, и можно сразу добавлять код обработчика данного события.

6. Дизайнер Форм. Первоначально содержит заготовку главной формы, которую можно заполнять всевозможными объектами, выбранными из Палитры Компонент.

Форма является основным интерфейсным элементом в Delphi (форма это нечто среднее между окном и диалоговой панелью). Всякое приложение в Delphi создается на основе формы. При создании нового проекта автоматически на экране появляется заготовка формы с именем Form1. Для облегчения расположения компонентов на форму нанесена сетка.

Как стандартное окно Windows форма в Delphi обладает такими свойствами как:

Наличие заголовка (Caption);

Кнопка для вызова системного меню;

Кнопки для минимизации и максимизации окна;

Рамка, позволяющая динамически изменять размеры формы.

Проект может содержать несколько форм.

7.Редактор модуля формы . Можно заметить, что под формой располагается еще одно окно. Это окно редактора модуля формы. В этом модуле программист создает программный код для обработчиков событий и решения основной задачи создаваемого приложения. Это окно можно активизировать щелкнув по выступающему краю (оно также автоматически получает фокус при щелчке по значению события в ИО). В этом случае окно редактора станет активным и мы увидим заготовку модуля:

uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type TForm1 = class(TForm)

private { Private declarations }

public { Public declarations }

var Form1: TForm1;

Здесь: Unit1 - имя модуля (при сохранении его можно заменить на любое другое имя);

В интерфейсной секции здесь указаны используемые модули; в разделе типов объявлен класс TForm1, как наследник класса TForm; а в разделе переменных объявлен объект Form1 класса Tform1.

Вопрос - где главная программа? - главная программа формируется автоматически и программисту нет необходимости вмешиваться в текст главной программы.

В прошлых уроках к примеру мы ознакомились с компонентом TButton и при написании обработчика события кнопки использовали для вывода сообщения процедуру ShowMessage. Поэтому, в этом уроке, предлагаю ознакомиться с основными процедурами и функциями для реализации диалоговых окон, и пример их использования.
Процедура ShowMessage , а также функции MessageDlg и MessageDlgPos отображают окно (панель) вывода сообщений. а функции InputBox и InputQuery отображают окно (панель) для ввода информации.
Процедура ShowMessage
Процедура ShowMessage (const Msg: String) отображает окно сообщения с кнопкой ОК . Заголовок этого окна содержит название исполняемого файла приложения, а строка Msg выводится как текст сообщения. В уроке , посвященному компоненту Delphi TButton (кнопка), используя ShowMessage, мы выводили на экран сообщение "Теперь кнопка Закрыть приложение активна".
Для примера давайте создадим новый проект и разместим на нем 5 кнопок (TButton). Как это делать мы уже знаем.
У первой кнопки изменим заголовок (свойство Caption) на "ShowMessage", у второй на "MessageDlg", у третьей на "MessageDlgPos", у четвертой на "InputBox" и у пятой на "InputQuery". Свойство Width у всех этих кнопок изменим на 100. И естественно дадим кнопкам понятные имена, для этого поменяем у кнопок свойство Name на "ShowMessageButton", "MessageDlgButton", "MessageDlgPosButton", "InputBoxButton" и "InputQueryButton".
Теперь давайте создадим обработчик события OnClick для кнопки ShowMessageButton и в нем напишем следующее:

200?"200px":""+(this.scrollHeight+5)+"px");">


Полностью наша процедура будет выглядеть так:

200?"200px":""+(this.scrollHeight+5)+"px");">procedure TForm1.ShowMessageButtonClick(Sender: TObject);
begin
ShowMessage("Это простое диалоговое окно.");
end;


Давайте скомпилируем и запустим нашу программу. Перед нами появится форма с 5-ю кнопками. Если нажать на кнопку ShowMessage , то перед нами появится сообщение "Это простое диалоговое окно".

Рисунок. Окно сообщения с кнопкой ОК, вызываемое процедурой ShowMessage

Поскольку название нашего проекта мы не меняли, то он у нас называется Project1 и соответственно в заголовке этого окна мы видим это имя.

Функция MessageDlg
Функция MessageDlg(const Msg: String; AType: TMsgDlgType; AButtons: TMsgDlgButtons; Helpctx: Longint) : word отображает окно сообщения в центре экрана и позволяет получить ответ пользователя. Параметр Msg содержит отображаемое сообщение.
Окно сообщения может относиться к различным типам и наряду с сообщением содержать картинки. Тип окна сообщения определяется параметром АТуре, который может принимать следующие значения:
mtWarning - окно содержит черный восклицательный знак в желтом треугольнике и заголовок Warning;
mtError - окно содержит белый косой крест в красном круге и заголовок Error;
mtInformation - окно содержит синюю букву «i» в белом круге и заголовок Information;
mtConfirmation - окно содержит синий знак «?» в белом круге и заголовок Confirmation;
mtCustom - окно не содержит картинки, в заголовке выводится название исполняемого файла приложения.

Параметр AButtons задает набор кнопок окна и может принимать любые комбинации следующих значений:
mbYes (кнопка Yes);
mbAbort (кнопка Abort);
mbNo (кнопка No);
mbRetry (кнопка Retry);
mbOk (кнопка OK);
mbIgnore (кнопка Ignore);
mbCancel (кнопка Cancel);
mbAll (кнопка All);
mbHelp (кнопка Help);

Для значения параметра AButtons имеются две константы - mbYesNoCancel и mbOKCancel , задающие предопределенные наборы кнопок:
mbYesNoCancel = ;
mbOKCancel =

При нажатии любой из указанных кнопок (кроме кнопки Help) диалоговое окно закрывается, а результат (свойство ModalResult) возвращается функцией MessageDlg .
Параметр HelpCtx определяет контекст (тему) справки, которая появляется во время отображения диалогового окна при нажатии пользователем клавиши F1. Обычно! значение этого параметра равно нулю.
Ниже приведен пример использования функции MessageDlg:

200?"200px":""+(this.scrollHeight+5)+"px");">procedure TForm1.MessageDlgButtonClick(Sender: TObject);
var
rez: TModalResult;
begin
rez:= MessageDlg("Перед вами пример использования функции MessageDlg?", mtError, , 0); // выводим сообщение об ошибке с кнопками OK и NO

end;


Рисунок. Диалоговое окно при использовании функции MessageDlg

Функция MessageDlgPos
Функция MessageDlgPos(const Msg: String; AType: TMsgDlgType; AButtons: TMsgDlgButtons; HelpCtx: Longint; X, Y: Integer) : Word отличается от функции MessageDlg наличием параметров Х и Y, управляющих положением окна на экране.
Давайте немного изменим предыдущий пример и получим:

200?"200px":""+(this.scrollHeight+5)+"px");">procedure TForm1.MessageDlgPosButtonClick(Sender: TObject);
var
rez: TModalResult;
begin
rez:= MessageDlgPos("Перед вами пример использования функции MessageDlgPos?", mtConfirmation, , 0, 0, 0); // диалоговое окно выводится с координатfvb X=0 и Y=0
if rez = mrOk then ShowMessage("Вы согласились"); // если нажали ОК, то появляется сообщение о том что мы согласились
if rez = mrNo then ShowMessage("Вы не согласились"); // если нажали NO, то появляется сообщение о том что мы не согласились
end;


Рисунок. Диалоговое окно при использовании функции MessageDlgPos

Функция InputBox
Функция InputBox(const ACaption, APrompt, ADefault: String): String отображает диалоговое окно для ввода строки текста. Окно выводится в центре экрана и содержит поле ввода с надписью, а также кнопки ОК и Cancel .
Параметр ACaption задает заголовок окна, а параметр APrompt содержит поясняющий текст к полю ввода. Параметр ADefault определяет строку, возвращаемую функцией при отказе пользователя от ввода информации (нажатие кнопки Cancel или клавиши Esc).
Ниже приведен пример использования функции InputBox :

200?"200px":""+(this.scrollHeight+5)+"px");">procedure TForm1.InputBoxButtonClick(Sender: TObject);
var
pas: string;
begin
pas:= InputBox("Авторизация", "Введите пароль", "********"); // Выводим Диалоговое окно, которое запрашивает пароль
if pas = "123" then
ShowMessage("Пароль принят");
if pas <> "123" then
ShowMessage("Пароль не правильный");
end;


Рисунок. Пример использования функции InputBox

Функция InputQuery
Функция InputQuery (const ACaption, APrompt: String; var Value: String): Boolean отличается от функции InputBox тем, что вместо третьего параметра - строки по умолчанию - используется параметр Value, который в случае подтверждения ввода содержит введенную пользователем строку.
В качестве результата функция возвращает логическое значение, позволяющее определить, каким образом завершен диалог. Если нажата кнопка ОК , то функция возвращает значение True , если нажата кнопка Cancel или клавиша Esc - значение False .
В нижеприведенном примере показано использование функции InputQuery :

200?"200px":""+(this.scrollHeight+5)+"px");">procedure TForm1.InputQueryButtonClick(Sender: TObject);
var
name: string;
begin
name:= "Введите имя";
InputQuery("Пользователь", "Введите фамилию", name); // Выводим диалоговое окно в котором нас просят ввести Имя
ShowMessage("Вы ввели "+name); // Выводим сообщение с тем именем которое мы ввели
end;

К уроку (статье) прилагается исходник , посмотрев который, вы можете ознакомиться с полным исходным кодом программы и посмотреть как работает созданная программа. Исходный код сопровождается комментариями, благодаря чему вы сможете легко в нем разобраться. Но я настоятельно рекомендую делать все самостоятельно. Так вы лучше и быстрее усвоите то, о чем говорилось в этом уроке

Для того чтобы получить возможность скачать исходник Delphi к этому уроку, необходимо посетить сайт рекламодателя. После этого, появится ссылка на исходник Delphi к уроку Диалоговые окна в Delphi. ShowMessage, MessageDlg, MessageDlgPos, InputBox и InputQuery
Нажмите на эту ссылку