Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Технология программирования / ИТ / Лекции_Технология_прогр.doc
Скачиваний:
119
Добавлен:
17.05.2015
Размер:
848.38 Кб
Скачать

Стандартные диалоги

Для организации стандартных диалогов в Delphi существует целый ряд специальных классов. Все они являются потомками класса TDialog и наследуют его свойства и методы, в частности метод Execute. Этот метод собственно и запускает выполнение диалога, т. е. открывает соответствующее окно и предоставляет пользователю сделать выбор, после чего пользователь может подтвердить свой выбор (нажав кнопку ОК в диалоговом окне) или отказаться (нажав кнопку ОТМЕНА).

После этого приложение должно выполнить некоторые действия (открыть или сохранить файл, назначить цвет и др.). Однако это не всегда возможно по различным причинам: отсутствует нужный файл, недостаточно места на диске и т. п. Для обеспечения надежной работы приложения в таких ситуациях метод Execute имеет выходной параметр логического типа, т. е. корректным будет и просто вызов метода Dialog1.Execute; и использование его в условной конструкции if Dialog1.Execute then … (одно из проявлений полиморфизма).

Классы tOpenDialog и tSaveDialog

Классы TOpenDialog и TSaveDialog предназначены для организации диалога открытия и сохранения файлов. Свойство FileName определяет полный путь к файлу. Примеры открытия и сохранения файла для текстового окна Memo:

OpenDialog1.Execute;

Memo1.Lines.LoadFromFile(OpenDialog1.FileName);

SaveDialog1.Execute;

Memo1.Lines.SaveToFile(SaveDialog1.FileName);

или

if OpenDialog1.Execute then

Memo1.Lines.LoadFromFile(OpenDialog1.FileName);

if SaveDialog1.Execute then

Memo1.Lines.SaveToFile(SaveDialog1.FileName);

Класс tFontDialog

Объекты класса TFontDialog предназначены для управления видом шрифта любого объекта, имеющего текстовые элементы (свойство Font):

Свойство

Тип

Поясне-ние

Пример

Font

TFont

Вид

шрифта

if FontDialog1.Execute then

Edit1.Font := FontDialog1.Font

Класс TColorDialog

Объекты класса TColorDialog предназначены для управления цветом любого объекта, имеющего цвет (свойство Color):

Свойство

Тип

Пояснение

Пример

Color

TColor

Цвет

if ColorDialog1.Execute then

Shape1.Brush.Color := FontDialog1.Color

§5. Программирование разветвляющихся алгоритмов

Инструкция if

Инструкция if позволяет выбрать один из двух возможных вариантов развития программы. Выбор осуществляется в зависимости от выполнения условия. В общем виде инструкция if записывается так:

if условие then

begin

{здесь инструкции, которые надо выполнить, если условие истинно}

end

else

begin

{здесь инструкции, которые надо выполнить, если условие ложно}

end;

Рис. 4.

Обратите внимание, что перед else (после end) точка с запятой не ставится.

Выполняется инструкция if следующим образом:

1. Вычисляется значение условия (условие - выражение логического типа, значение которого может быть равно True или False).

2. Если условие истинно (значение выражения условие равно True), то выполняются инструкции, следующие за словом then (между begin и end). На этом выполнение операции if заканчивается, то есть инструкции, следующие за else, не будут выполнены.

Если условие ложно (значение выражения условие равно False), то выполняются инструкции, следующие за словом else (между begin и end).

Если в инструкции if между begin и end находится только одна инструкция, то слова begin и end можно не писать.

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

if b<>0 then

begin

c:=a/b; Label1.Caption:=FloatToStr(c);

end

else

begin

ShowMessage('Деление невозможно');

end;

Если какое-либо действие должно быть выполнено только при выполнении определенного условия и пропущено, если это условие не выполняется, то инструкция if может быть записана так:

if условие then

begin

{инструкции, которые надо выполнить, если условие истинно}

end

На рис. 5 представлен алгоритм, соответствующий инструкции if-then.

Рис. 5

Например, инструкция

if OpenDialog1.Execute then

Memo1.Lines.LoadFromFile(OpenDialog1.FileName);

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

Соседние файлы в папке ИТ