- •С примерами на Object pascal (72 часа)
- •Введение
- •1.1. Основной принцип структурного программирования
- •1.2. Основные задачи структурного программирования
- •1.3. Основные принципы объектно-ориентированного программирования (ооп)
- •2.1. Алфавит языка pascal. Идентификаторы.
- •2.2. Простые и составные специальные символы, используемые на пк.
- •2.3. Стандартные типы данных. Двоичное представление чисел и дополнительный код.
- •2.4. Особенности работы с некоторыми типами данных
- •2.5. Арифметические операторы.
- •2.6. Логические операторы и операции отношения.
- •2.7. Потеря точности, потеря порядка и переполнение при арифметических операциях.
- •2.8. Структура простейшей программы.
- •2.9. Простейшие операторы языка Object pascal
- •1) Цикл от меньшего к большему значению:
- •2) Цикл от большего к меньшему значению:
- •2.10. Структурные типы данных
- •2.11. Указатели. Динамические переменные. Динамическое выделение и высвобождение памяти
- •2.12. Процедуры и функции. Формальные и фактические параметры. Передача параметров по ссылке, по значению и через указатель.
- •2.13. Локальные и глобальные переменные. Побочный эффект функции. Вложенность процедур и функций. Правила видимости.
- •2.14. Пример на правила видимости и передачи параметров
- •2.15. Рекурсия
- •2.1. Инкапсуляция. Объект. Поля данных и методы объекта
- •3.2 Задание модуль класса (статическая объектная модель)
- •4.10. Создание и уничтожение объектов. Конструкторы и деструкторы.
- •4.11. Наследование. Статические, виртуальные, динамические и абстрактные методы.
- •4.12. Области видимости объектов.
- •4.13. Обработка исключительных ситуаций.
- •4.14. Специальные средства для работы с ms Windows: сообщения.
- •4.15. События и их делегирование. Обработка событий.
- •4.16. Методы класса и указатели на класс.
- •4.17. Дополнительные возможности Object Pascal.
- •5. Визуальное проектирование в среде Delphi.
- •5.8. Создание экранных форм. Инспектор объектов.
- •5.9. Палитра компонентов.
- •6. Интерфейсы и множественное наследование
- •6.1. Общие представления об интерфейсах в Object pascal
- •6.2. Реализация интерфейсов свойством
- •6.3. Различение имен при реализации нескольких интерфейсов
- •5.11. Спецификаторы вызовов процедур и функций
- •5.12. Динамические массивы
- •5.13. Перезагрузка (overloading) методов, процедур и функций
- •5.14. Параметры по умолчанию
- •5.17. Технологии dde и ole
- •5.18. Технология ActiveX
- •5.20. Использование библиотек OpenGl и glu
- •5.21. Создание программистом собственного компонента Литература
5.17. Технологии dde и ole
5.18. Технология ActiveX
Подпроцессы (Threads)
Для создания дополнительного подпроцесса в программах Delphy предназначен специальный модуль (в репозитории он представлен пиктограммой Thread Object). При выборе этого модуля Delphi запрашивает имя класса, который будет дочерним для основополагающего класса TThread. Класс TThread содержит абстрактный метод Execute, который должен исполняться в подпроцессе и обязан перекрываться в потомке.
Методы и свойства объектов из библиотеки визуальных компонентов могут использоваться только в рамках вызова метода Synchronize, например:
Procedure MyThread.Execute;
begin
…
Synchronize (UpdateCaption );
end;
где метод UpdateCaption может быть, например, таким:
Procedure MyThread.UpdateCaption;
begin
Form1.Caption := ‘Новый текст метки’;
end;
Любой метод, приводящий к обновлению информации на экране, должен быть синхронизован.
Пример перекрытия абстрактного метода Execute в потомке tMyThread:
Type tMyThread=
class(tThread)
private
myField1:…;
myField2:…;
protected
procedure Execute;override;
…
procedure MyVisualMethod;virtual;
public
constructor create(параметры); (если нужны)
end;
var ThreadsRunning:integer;
procedure tMyThread.execute;
begin
…
Synchronized MyVisualMethod;
…
end;
procedure tMyThread,create(параметр);
begin
inberited create(false);
FreeOnTerminate:=true;
end;
procedure tMyThread.myVisualMethod;
begin
Form1.label2.caption:=…;
If Terminated then Exit;
end;
procedure Form1.StartButtonClick(Sender:tObject);
begin
aThread1:=tMyThread.create(…);
Inc(ThreadsRunning);
aThread1.onTerminate:=ThreadDone;
StartButton.enabled:=false;
aTread2:=tMyThread.reate(…);
Inc(ThreadsRunning);
aThread2.onTerminate:=ThreadDone;
….
end;
procedure Form1.ThreadDone(Sender:tObject);
begin
Dec(ThreadsRunning);
Label1.caption:=IntToStr(ThreadsRunning);
if ThreadsRunning=0 then
StartButton.enabled:=true
end;
procedure Form1.Stop1ButtonClick(Sender:tObject);
begin
aThread1.Terminate
end;
…
5.20. Использование библиотек OpenGl и glu
5.21. Создание программистом собственного компонента Литература
В.В.Фаронов . Delphi 6. Учебный курс.- М.:"Нолидж", 2001.- 608 с.
П.Г.Дарахвелидзе, Е.П.Марков.Delphi 4. Среда визуального программирования.-СПб.:БХВ – Санкт-Петербург, 1999. – 816 с.
А.М.Епанешников, В.А.Епанешников. Программирование в среде Delphi: Учебное пособие в 4-х частях. М.: ДИАЛОГ-МИФИ, 1997-1998.
М.В.Краснов. OpenGL.Графика в проектах Delphi. -СПб.:БНВ-Санкт-Петербург, 2000.-352 с.
Тэйлор Д. и др. Переход на Kylix для Delphi-программистов./Пер.с англ. СПб: "Питер" – 2002.- 304 с.
Калверт Ч. и др. Borland Kylix. Руководство разработчика./Пер.с англ.: "Вильямс" - 2002, 880 с.
Г.Буч. Объектно-ориентированный анализ и проектирование с примерами приложений на C++, 2-е изд./Пер.с англ.-М., Бином,СПб, 2000.-560 с.
Д.Чеппел. Технологии ActiveX и OLE./Пер.с англ.-М.:"Русская Редакция”,1997.-320 с.
А.Л.Фридман. Основы объектно-ориентированного программирования на языке Си++.-М.:Горячая линия-Телеком, Радио и связь, 1999.-208 с.