Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Delphi (новый) без баз данных.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
7.61 Mб
Скачать

Глава VIII. Процедуры и функции, реализующие диалоги

Delphi предлагает ряд процедур и функций отображающие диалоги общего назначения.

8.1. Процедура ShowMessage.

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

Пример: Отображение простейшего окна сообщений.

Procedure TForm1.Button1Click(Sender: TObject);

begin

ShowMessage(‘Простейшее диалоговое окно’);

end;

8.2. Функция MessageDlg.

Функция MessageDlg(const S: String; AType: TMsgDlgType; AButtons:TMcgDlgButtons; HelpCtx: Longint): Word отображает окно сообщений в центре экрана. Она позволяет получить ответ пользователя. Параметр S содержит выводимое сообщение. Тип окна сообщения определяется параметром AType, который принимает следующие значения:

  • mtWarning – окно содержит черный восклицательный знак в желтом треугольнике и заголовок Warning.

  • mtError – окно содержит белый крест в красном круге и заголовок Error.

  • mtInformation –окно содержит букву i синего цвета в белом круге и заголовок Information.

  • mtConfirmation –окно содержит знак ? синего цвета в белом круге и заголовок Confirmation.

  • mtCustom – окно не содержит картинки, в заголовке выводится название исполняемого файла приложения.

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

Название

Значение

mbYes

Yes

mbNo

No

mbOK

OK

mbCancel

Cancel

mbHelp

Help

mbAbort

Abort

mbRetry

Retry

mbIgnore

Ignore

mbAll

All

mbYesNoCancel

[mbYes,mbNo,mbCancel]

mbOKCancel

[mbOK,mbCancel]

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

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

Procedure TForm1.Button1Click(Sender:TObject);

Var rez:TModalResult;

Begin

If edit1.text<> DateToStr (Date) then

begin

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

If rez=mrOK then edit1.text:=DateToStr(Date);

If rez=mrNo then edit1.setfocus;

end;

end;

8.3. Функция MessageDlgPos.

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

8.4. Функция InputBox

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

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

Procedure TForm1.Button1Click(Sender: TObject);

var soname:string;

begin

Soname:=inputbox(‘Пользователь’,’Введите фамилию’, ‘Иванов’);

end;

8.5. Самостоятельная работа

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

8.6. Самостоятельная работа

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

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

Глава IX. Работа с формами

9.1. Объект Form

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

Для подключения новой формы к проекту требуется обратиться к репозиторию File/New и выбрать подходящий из представленных здесь шаблонов форм, например: AboutBox-окно О программе, Password Dialog-диалоговое окно с редактором и кнопками для ввода паролей. Если же вы хотите подключить форму обычного вида, то нужно выполнить команду File/New Form.

Указать главную форму можно через пункт меню Project/Options(Проект/Параметры). Главная форма выбирается в раскрывающемся списке Main form на странице form.

Свойства

Свойство

Значение

Active

Содержит True, если окно активно (имеет фокус ввода)

ActiveControl

Определяет дочерний элемент, содержащий фокус ввода

BorderIcons

Определяет наличие стандартных кнопок в заголовке окна

BorderStyle

Стиль рамки окна

Icon

Содержит пиктограмму окна

Position

Определяет положение окна в момент появления на экране

WindowState

Определяет состояние окна в момент его появления на экране

Методы

Назначение

Close

Закрывает окно. Для главного окна завершает работу программы

Show

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

ShowModal

Показывает форму в модальном режиме. Модальная форма – требует обязательного своего закрытия перед обращением к любой другой форме приложения.

Для формы определены следующие события:

  • OnActivate – возникает в момент активизации окна (при получении ею фокуса ввода)

  • OnClose – возникает перед закрытием окна

  • OnCreate – возникает при создании окна, но до его появления на экране

  • OnHide – возникает перед исчезновением окна

  • OnResize – возникает при изменении размеров окна

  • OnShow – возникает при появлении окна на экране

Итак, для вызова каждого окна нужно обращаться к его методу ShowModal или Show. Чтобы обратиться к этим методам, нужно сослаться на объект окно, который автоматически обновляется в интерфейсном разделе связанного с окном модуля. Для этого, в свою очередь, главное окно должно знать о существовании другого окна, что достигается ссылкой на модуль окна в предложении Uses, например, если нужно вызвать окно Form2 с модулем Unit2 из главного окна. То в модуле главного укажем:

Implementation

Uses Unit2

После чего вызовем окно на экран:

Form2.show

Точно так же можно сослаться в модуле второго окна на модуль главного.

Данную задачу можно и автоматизировать. Для этого на этапе конструирования нужно обратиться к пункту меню File/Uses Unit.