
- •Технология программирования
- •Технология программирования
- •Оглавление
- •§1. Классификация и эволюция программного обеспечения
- •§2. Модульное и объектно-ориентированное программирование
- •Основные понятия ооп
- •Составные части объектного подхода
- •Инкапсуляция. Свойства
- •Наследование. Методы
- •Полиморфизм
- •§3. Визуальная среда программирования Структура проекта Delphi
- •Библиотека компонентов Delphi
- •Класс tButton (кнопки)
- •Класс tShape (фигуры)
- •§4. Основные типы данных в языке Паскаль
- •Класс tLabel (надписи)
- •Класс tEdit
- •Класс tMemo
- •Класс tMainMenu
- •Стандартные диалоги
- •Классы tOpenDialog и tSaveDialog
- •Класс tFontDialog
- •Инструкция case
- •§6. Программирование циклических алгоритмов
- •Цикл с параметром. Инструкция for
- •Цикл с предусловием. Инструкция while
- •Цикл с постусловием. Инструкция repeat … until
- •§7. Простейшие вычислительные методы
- •Метод прямоугольников
- •Метод Монте-Карло
- •Метод деления пополам
- •§8. Процедуры и функции
- •§9. Одномерные массивы
- •Класс tListBox
- •Класс tComboBox
- •§10. Двумерные и многомерные массивы
- •Класс tStringGrid
- •Алгоритмы поиска наименьшего и наибольшего элемента
- •§11. Алгоритмы поиска и сортировки. Понятие вычислительной сложности алгоритма
- •Алгоритм простого перебора
- •Алгоритм бинарного поиска
- •Алгоритм сортировки методом «пузырька»
- •Алгоритм сортировки включением
- •Понятие вычислительной сложности алгоритма
- •§12. Обработка исключительных ситуаций
- •§13. Программирование процессов реального времени
- •Класс tTimer
- •§14. Графическая подсистема Delphi Класс tImage
- •Класс tCanvas
- •§15. Динамическое создание компонентов. Конструкторы и деструкторы
- •§16. Тестирование и отладка программ
- •Методы тестирования программ
- •Средства отладки программ в Delphi
- •Трассировка программы
- •Точки останова программы
- •Наблюдение значений переменных
- •§17. Жизненный цикл программного обеспечения
- •Последовательный (каскадный) тип
- •Эволюционный (спиральный) тип
- •Библиографический список
- •Технология программирования
- •Редактор с.В.Пилюгина
- •620034, Екатеринбург, ул. Колмогорова, 66, УрГупс Редакционно-издательский отдел
Стандартные диалоги
Для организации стандартных диалогов в 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);
обеспечивает загрузку данных из файла, если диалог открытия был успешно завершен, и игнорирует это действие в противном случае.