
- •Часть 2
- •Оглавление
- •1. Структурный подход к программированию
- •1.1. Цели структурного программирования
- •1.2. Основные принципы структурного подхода
- •1.3. Спецификация программ
- •1.4. Метод пошаговой детализации
- •2. Предыстория объектно-ориентированного программирования
- •2.1. Введение в объектно-ориентированное программирование
- •2.2. Тип Объекты
- •2.3. Основные понятия ооп. Инкапсуляция. Наследование
- •X, y : integer; {координаты позиции}
- •XX,yy:array [1..1000] of integer;
- •2.4. Совместимость объектных типов по присваиванию
- •2.5. Описание типа-потомка
- •2.6. Полиморфизм
- •2.7. Виртуальные методы. Конструкторы и деструкторы
- •2.7.1. Правила работы с виртуальными методами
- •3. Типы данных и операторы языка object pascal в delphi
- •3.1. Предопределенные типы данных
- •3.1.1 Вещественные типы
- •3.1.2. Длинные строки
- •3.2. Структурированные типы
- •3.2.1. Множества
- •Var MySet: set of 'a'..'z';
- •3.2.2. Массивы
- •Var FlexArray: array of Real;
- •Var Ints: array of array of Integer;
- •3.2.3. Записи
- •Var Record1,Record2:tDateRec;
- •3.2.4. Указатели
- •I: Integer;
- •V1,v2,v3,v4,v5:Variant;
- •I:Integer;
- •3.3. Типы данных, специфичные для Windows
- •3.3.1. Приведение и преобразование типов
- •3.4. Операторы языка Паскаль
- •I:Integer;
- •I:Integer;
- •3.4.1. Элементы управления редактированием
- •3.5. Процедуры и функции библиотеки vcl
- •4. Реализация ооп на языке pascal
- •V: Real;
- •Наследование
- •Virtual;
- •Конструкторы и деструкторы
- •Перекрытие методов
- •5. Программирование в среде delphi
- •5.1. Основные элементы
- •5.2. Реализация объектно-ориентированного программирования
- •5.3. Разработка интерфейса приложения
- •5.3.1. Создание простейшего Windows-приложения
- •5.3.2. Создание Windows-приложения с метками и кнопками
- •Объект Свойство Значение
- •6.1.3. Меню Edit
- •6.1.4. Меню Search
- •6.1.5. Меню View
- •6.1.6. Меню Run
- •6.1.7. Меню Component
- •6.1.8. Меню Tools
- •6.1.9. Полоска кнопок быстрого доступа SpeedBar
- •6.1.10. Локальные меню. SpeedMenu
- •6.2. Работа с формами
- •6.2.1. Палитра компонентов
- •6.2.2. Object Inspector
- •6.2.3. Написание кода
- •6.2.4. Компиляция проекта
- •6.2.5. Интегрированный отладчик
- •6.2.6. Файлы, создаваемые системой
- •7. Структура delphi-программ
- •7.1. Разработка проекта Dialog
- •7.2. Процедуры вызова диалоговых окон
- •7.3. Преобразования типов
- •Var factW,optW,Rost,Delta:integer;
- •Var factW,optW,Rost,Delta:real;
- •7.4. Простейшие компоненты
- •7.4.1. Группы радиокнопок - компоненты RadioGroup, RadioButton, GroupBox
- •7.4.2. Компоненты выбора из списков - ListBox, ComboBox
- •7.4.3. Многострочные окна редактирования Memo и Richedi
- •7.4.4. Графические объекты
- •If OpenDialog1.Execute
- •Image1.Picture.LoadFromFile
- •7.4.5. Канва и пиксели
- •X, y :real; // координаты функции
- •7.4.6. Воспроизведение немых видео клипов – компонент Animate
- •7.4.7. Установка и настройка приложения: работа с файлами *.Ini
- •IniFile.Free;
- •Упражнения
- •8. Репозиторий объектов и эксперты
- •8.1. Страницы репозитория объектов
- •8.1.1. Страница New
- •8.1.2. Страница Forms
- •8.1.3. Страница Dialogs
- •8.1.4. Страница Data Modules
- •8.1.5. Страница Projects
- •8.2. Эксперты Delphi
- •8.2.1. Application Expert
- •8.2.2. Dialog Box Expert
- •9. Классы и модули
- •9.1. Классы и сокрытие информации
- •9.2. Классы и модули
- •9.3. Модули и область видимости
- •9.4. Модули и программы
- •9.5. Информация о типе на этапе выполнения
- •If MyAnimal is Dog then …
- •If MyAnimal is Dog
- •If MyAnimal is Dog then
- •10. Использование компонентов
- •10.1. Буксировка из одного компонента в другой
- •10.2. Обработка исключений
- •10.3. Восприятие ввода для пользователя
- •Val( Edit1.Text,Number,Code);
- •Val((Sender as tEdit).Text,Number,Code);
- •11.2. Различные роли элементов меню
- •11.3. Редактирование меню с помощью Menu Designer
- •If OpenDialog1.Execute
- •If SaveDialog1.Execute
- •Procedure tForm1.ViewEdit1Click(Sender:tObject); begin
- •If Panel1.Visible
- •If Buttons1.Enabled
- •12. Получение «ввода от мыши» и рисование в форме
- •12.1. События, связанные с мышью
- •12.2. Рисование в форме
- •If ssShift in Shift
- •If Circle then Canvas.Ellipse(Center.X-Radius.X,Center.Y-
- •Else Canvas.Rectangle(Center.X-Radius.X,Center.Y-
- •12.3. Черчение и рисование в системе Windows
- •13. Инструментальная линейка и строка состояния
- •13.1. Построение инструментальной линейки
- •Procedure tForm1.SpeedButton1Click(Sender:tObject); begin
- •If SpeedButton1.Down
- •13.2. Добавление всплывающих подсказок в линейку
- •13.3. Комбинированный список в инструментальной линейке
- •13.4. Построение строки состояния
- •14.1. Добавление второй формы в программу
- •14.2. Создание диалоговой панели
- •Задание № 1
- •Procedure tForn1.BitBtnClick(Sender:tObject); begin PageControl1.SelectNextPage(true);
- •Do ListBox1.Items.Add(PageControl1.Page[I].Caption);
- •14.3.1. Блокнот с набором ярлыков
- •If FontDialog1.Execute
- •15.2. Жизненный цикл программного средства
- •15.3. Понятие качества программного средства
- •15.4. Обеспечение надежности основной мотив разработки программных средств
- •15.4.1. Методы борьбы со сложностью
- •15.4.2. Обеспечение точности перевода
- •15.4.3. Преодоление барьера между пользователем и разработчиком
- •15.4.4. Контроль принимаемых решений
- •Литература
- •Часть 2. Объектно-ориентированное программирование
5.2. Реализация объектно-ориентированного программирования
Объектно-ориентированное программирование - это наиболее современный стиль в разработке программ. Современная практика программирования ищет достижения целей в модульности компьютерных кодов. Каждый модуль выполняет строго определенные функции преобразования и имеет доступ только к тем данным, которые необходимы.
Объектно-ориентированное программирование максимально использует принцип модульности. Программный объект в ООП называется контейнером. Контейнер включает в себя данные и код, который знает, как манипулировать этими данными. Он может быть представлен как реальный объект в виде командной кнопки. Программный объект обладает специфической функцией преобразования и содержит весь необходимый код и данные для реализации этой функции, но его внутренняя работа скрыта от постороннего глаза.
Общие примеры объектов в Delphi - это командные кнопки, кнопки выбора, окна и т. д.
Программный объект обладает определенными свойствами и методами. Свойства - это видимые характеристики объекта, а методы - операции преобразования этих данных. Видимыми характеристиками называются данные, которые могут быть доступны вне объекта. Свойствами считаются данные, которыми объект манипулирует или которые позволяют контролировать, как объект выглядит или как он себя ведет.
Например, свойство шрифта Color управляет тем, как он выглядит, а свойство Enabled управляет доступностью выбора этого элемента.
Вызвать объект также, как и подпрограмму, невозможно. Для изменения одного из свойств объекта или для выполнения одного из методов необходимо послать объекту сообщение. Доступ к свойствам и методам, содержащимся в объекте, можно получить, указав имя этого свойства или метода после имени объекта. Имя объекта отделяется от имени свойства или метода точкой.
Программный объект может быть частью другого, большего программного объекта. Когда объекты объединены, появляются специальные свойства, известные под названием наследование. Когда один объект является частью другого, он наследует все свойства и методы предыдущего.
Каждый объект специфичен и уникален. Все объекты определенного типа описываются классом, т. е. классы являются более высоким уровнем определения объекта. Например, класс ТButton используется для создания специфических объектов ТButton.
Каждый объект может выполнять какие-нибудь действия. Например, при нажатии кнопки программа должна реагировать на это событие, а также на события, связанные с выбором пункта меню, элемента списка и т.д. Для описания действий, которые должны выполняться в том или ином случае, используются обработчики событий. Каждый объект имеет список событий, который он может обрабатывать. Задача программиста написать код, который будет выполняться при возникновении того или иного события.
Список возможных событий
OnClick возникает при нажатии кнопки мыши в области объекта.
OnDblClick происходит при двойном нажатии кнопки мыши в области объекта.
OnDragDrop происходит при буксировке перетаскиваемого объекта.
OnDragOver выполняется при перетаскивании одного объекта в другой.
OnGotFocus возникает при получении кнопкой фокуса.
OnKeyDown происходит при нажатии клавиши на клавиатуре, которая не имеет ASCII-кода.
OnKeyPress возникает при нажатии клавиши на клавиатуре и содержит ASCII-код нажатой клавиши.
OnKeyUp выполняется при отпускании клавиши на клавиатуре.
OnLostFocus возникает при деактивации кнопки.
OnMouseDown происходит при нажатии кнопки мыши, когда курсор находится в области объекта.
OnMouseMove происходит при перемещении манипулятора мышь.
OnMouseUp возникает при отпускании ранее нажатой кнопки мыши.
OnChange происходит, когда содержимое объекта изменено.
Событие OnClick происходит также, если пользователь:
выбрал элемент списка, древовидного или комбинированного списка нажатием одной из клавиш управления курсором;
нажал клавишу ENTER, когда активным элементом формы была кнопка со значением по умолчанию;
нажал клавишу ESC, когда в активной форме имелась кнопка CANCEL;
нажал быструю клавишу для вызова кнопки.