🗊Презентация Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8)

Нажмите для полного просмотра!
Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №1Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №2Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №3Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №4Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №5Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №6Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №7Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №8Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №9Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №10Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №11Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №12Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №13Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №14Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №15Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №16Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №17Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №18Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №19Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №20Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №21Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №22Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №23Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №24Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №25Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №26Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №27Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №28Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №29Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №30Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №31Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №32Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №33Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №34Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №35Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №36Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №37Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №38Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №39Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №40Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №41Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №42Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №43Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №44Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №45Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №46Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №47Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №48Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №49Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №50Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №51Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №52Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №53Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №54Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №55Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №56Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №57Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №58Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №59Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №60Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №61Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №62Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №63Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №64Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №65Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №66Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №67Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №68Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №69Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №70Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №71Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №72Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №73Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №74Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №75Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №76Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №77Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №78Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №79Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №80Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №81Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №82Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №83Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №84Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №85Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №86Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №87Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №88Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №89Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8), слайд №90

Содержание

Вы можете ознакомиться и скачать презентацию на тему Создание приложений Windows. Программирование в среде Delphi с использованием библиотеки VCL (Глава 8). Доклад-сообщение содержит 90 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Часть 3  Создание приложений Windows
МГТУ им. Н.Э. Баумана
Факультет Информатика и системы управления
Кафедра Компьютерные системы и сети
Лектор: д.т.н., проф. 
	    Иванова Галина Сергеевна
Описание слайда:
Часть 3 Создание приложений Windows МГТУ им. Н.Э. Баумана Факультет Информатика и системы управления Кафедра Компьютерные системы и сети Лектор: д.т.н., проф. Иванова Галина Сергеевна

Слайд 2





Введение. Особенности программирования «под Windows»
Описание слайда:
Введение. Особенности программирования «под Windows»

Слайд 3





Принцип событийного управления
Приложение (в отличие от программы) – набор подпрограмм, вызываемых при наступлении некоторого события, которым считается любое изменение в системе, касающееся данного приложения.
Каждому приложению на экране соответствует окно.
Окно –  самостоятельно существующий объект, параметры которого хранятся в специальной структуре данных, а поведение определяется обработчиками сообщений, составляющими оконную функцию.
Описание слайда:
Принцип событийного управления Приложение (в отличие от программы) – набор подпрограмм, вызываемых при наступлении некоторого события, которым считается любое изменение в системе, касающееся данного приложения. Каждому приложению на экране соответствует окно. Окно – самостоятельно существующий объект, параметры которого хранятся в специальной структуре данных, а поведение определяется обработчиками сообщений, составляющими оконную функцию.

Слайд 4





Структура приложения
Минимально любое приложение Windows состоит из двух частей: основной программы и оконной функции. 
Появившиеся в очереди сообщения выбираются циклом обработки сообщений и передаются через Windows соответствующей оконной функции приложения. 
Для выполнения действий обработчики сообщений обращаются к функциям API.
Описание слайда:
Структура приложения Минимально любое приложение Windows состоит из двух частей: основной программы и оконной функции. Появившиеся в очереди сообщения выбираются циклом обработки сообщений и передаются через Windows соответствующей оконной функции приложения. Для выполнения действий обработчики сообщений обращаются к функциям API.

Слайд 5





Обработка сообщения от клавиатуры
Описание слайда:
Обработка сообщения от клавиатуры

Слайд 6





Завершение приложения
Описание слайда:
Завершение приложения

Слайд 7





Глава 8  Программирование в среде Delphi с использованием библиотеки VCL
МГТУ им. Н.Э. Баумана
Факультет Информатика и системы управления
Кафедра Компьютерные системы и сети
Лектор: д.т.н., проф. 
	    Иванова Галина Сергеевна
Описание слайда:
Глава 8 Программирование в среде Delphi с использованием библиотеки VCL МГТУ им. Н.Э. Баумана Факультет Информатика и системы управления Кафедра Компьютерные системы и сети Лектор: д.т.н., проф. Иванова Галина Сергеевна

Слайд 8





8.1 События Delphi  и их обработчики
Обработчики сообщений Windows предусмотрены у объектов класса TForm и классов управляющих компонентов, таких как кнопки, редакторы и т. п. 
Обработка выполняется следующим образом:
В системе происходит событие, например, пользователь пере-двинул мышь или нажал на клавишу клавиатуры, в результате генерируется сообщение об этом событии – сообщение Windows. 
Сообщение Windows диспетчируется конкретному приложению.
В приложении сообщение передается активному компоненту (окну или управляющему элементу). 
Метод обработки сообщения Windows компонента инициирует заранее предусмотренные события Delphi.
Если в приложении предусмотрен соответствующий обработчик события Delphi, то он вызывается, если нет – то продолжается обработка сообщения Windows.
Описание слайда:
8.1 События Delphi и их обработчики Обработчики сообщений Windows предусмотрены у объектов класса TForm и классов управляющих компонентов, таких как кнопки, редакторы и т. п. Обработка выполняется следующим образом: В системе происходит событие, например, пользователь пере-двинул мышь или нажал на клавишу клавиатуры, в результате генерируется сообщение об этом событии – сообщение Windows. Сообщение Windows диспетчируется конкретному приложению. В приложении сообщение передается активному компоненту (окну или управляющему элементу). Метод обработки сообщения Windows компонента инициирует заранее предусмотренные события Delphi. Если в приложении предусмотрен соответствующий обработчик события Delphi, то он вызывается, если нет – то продолжается обработка сообщения Windows.

Слайд 9





События Delphi
Обработчики сообщений Windows, встроенные в классы компонентов VCL, инициируют множество событий Delphi.
Например, обработчик события клавиатуры WM_CHAR класса TForm инициирует три события Delphi.
Описание слайда:
События Delphi Обработчики сообщений Windows, встроенные в классы компонентов VCL, инициируют множество событий Delphi. Например, обработчик события клавиатуры WM_CHAR класса TForm инициирует три события Delphi.

Слайд 10





Обработчики событий Delphi
Для каждого обработчика событий предусмотрен заголовок и определеный список передаваемых ему параметров.
а) procedure TForm1.FormActivate(Sender:TObject); 
       Параметр Sender – отправитель (инициатор события).
б)  procedure TForm1.Edit1KeyPress(Sender: TObject; 
                                        var Key: Char);
   Параметр Key – символ ANSI.
в) procedure TForm1.Edit1KeyDown(Sender: TObject; 
	var Key: Word; Shift: TShiftState);
	 Параметры: Key – виртуальный код, Shift – управляющие клав.
	
г) procedure TForm1.Edit1KeyUp(Sender: TObject; 
	var Key: Word; Shift: TShiftState);
Описание слайда:
Обработчики событий Delphi Для каждого обработчика событий предусмотрен заголовок и определеный список передаваемых ему параметров. а) procedure TForm1.FormActivate(Sender:TObject); Параметр Sender – отправитель (инициатор события). б) procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); Параметр Key – символ ANSI. в) procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); Параметры: Key – виртуальный код, Shift – управляющие клав. г) procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);

Слайд 11





8.2 Класс формы TForm
Основное окно приложения строится на базе класса TForm.
При входе в Delphi предоставляется заготовка приложения, которая «умеет» (содержит определенные обработчики сообщений Windows) выполнять стандартные действия.
Свойства:
Caption – заголовок окна (по умолчанию Form1);
FormStyle – вид формы(обычное, родительское, дочернее, неперекрываемое);
Width, Height, Top, Left – размеры и местоположение;
Color – цвет фона;
Font – характеристики шрифта;
Cursor – форма курсора мыши и т. д.
Методы:
Show – показать;
Hide – спрятать;
Close – закрыть;
ShowModal – показать в модальном режиме и т. д.
Описание слайда:
8.2 Класс формы TForm Основное окно приложения строится на базе класса TForm. При входе в Delphi предоставляется заготовка приложения, которая «умеет» (содержит определенные обработчики сообщений Windows) выполнять стандартные действия. Свойства: Caption – заголовок окна (по умолчанию Form1); FormStyle – вид формы(обычное, родительское, дочернее, неперекрываемое); Width, Height, Top, Left – размеры и местоположение; Color – цвет фона; Font – характеристики шрифта; Cursor – форма курсора мыши и т. д. Методы: Show – показать; Hide – спрятать; Close – закрыть; ShowModal – показать в модальном режиме и т. д.

Слайд 12





События Delphi, обрабатываемые объектами класса TForm
а) при изменении состояния формы:
OnCreate – в начальной стадии создания формы - используется при необходимости задания параметров (цвет или размер);
OnActivate – при получении формой фокуса ввода (окно становится активным и ему адресуется весь ввод с клавиатуры);
OnShow – когда форма (окно) становится видимой;
OnPaint – при необходимости нарисовать или перерисовать форму;
OnResize - при изменении размеров формы на экране;
OnDeactivate – при потере формой фокуса ввода (окно становится неактивным);
OnHide – при удалении формы с экрана (окно становится невидимым); 
OnCloseQuery – при попытке закрыть форму - обычно используется для создания запроса-подтверждения необходимости закрытия окна;
OnClose – при закрытии формы;
OnDestroy – при уничтожении формы;
Описание слайда:
События Delphi, обрабатываемые объектами класса TForm а) при изменении состояния формы: OnCreate – в начальной стадии создания формы - используется при необходимости задания параметров (цвет или размер); OnActivate – при получении формой фокуса ввода (окно становится активным и ему адресуется весь ввод с клавиатуры); OnShow – когда форма (окно) становится видимой; OnPaint – при необходимости нарисовать или перерисовать форму; OnResize - при изменении размеров формы на экране; OnDeactivate – при потере формой фокуса ввода (окно становится неактивным); OnHide – при удалении формы с экрана (окно становится невидимым); OnCloseQuery – при попытке закрыть форму - обычно используется для создания запроса-подтверждения необходимости закрытия окна; OnClose – при закрытии формы; OnDestroy – при уничтожении формы;

Слайд 13





События Delphi для класса TForm (2)
б) от клавиатуры и мыши:
OnKeyPressed – при нажатии клавиш, которым соответствует код ANSI;
OnKeyDown, OnKeyUp – при нажатии и отпускании любых клавишI;
OnClick, OnDblClick – при обычном и двойном нажатии клавиш мыши;
OnMouseMove – при перемещении мыши (многократно);
OnMouseDown, OnMouseUp – при нажатии и отпускании клавиш мыши;
в) при перетаскивании объекта мышью:
OnDragDrop – в момент опускания объекта на форму;
OnDragOver – в процессе перетаскивания объекта над формой (многократно);
г) другие:
OnHelp – при вызове подсказки;
OnChange – при изменении содержимого компонент.
Описание слайда:
События Delphi для класса TForm (2) б) от клавиатуры и мыши: OnKeyPressed – при нажатии клавиш, которым соответствует код ANSI; OnKeyDown, OnKeyUp – при нажатии и отпускании любых клавишI; OnClick, OnDblClick – при обычном и двойном нажатии клавиш мыши; OnMouseMove – при перемещении мыши (многократно); OnMouseDown, OnMouseUp – при нажатии и отпускании клавиш мыши; в) при перетаскивании объекта мышью: OnDragDrop – в момент опускания объекта на форму; OnDragOver – в процессе перетаскивания объекта над формой (многократно); г) другие: OnHelp – при вызове подсказки; OnChange – при изменении содержимого компонент.

Слайд 14





8.3 Основные визуальные компоненты и средства визуализации сообщений пользователю
1. Метка (класс TLabel)
Метка – окно с текстом и может использоваться для формирования на форме некоторых надписей или подписей.
 Основные свойства:
Caption – заголовок – текст, выводимый в окне компонента.
Name – имя компонента в программе.
Visible – определяет видимость компонента.
Alignment – определяет способ выравнивания текста в окне компонента: taCenter - по центру; taLeftJustify - по левой границе; taRightJustify - по правой границе.
Font – определяет шрифт текста.
Color – определяет цвета текста и фона в окне.
WordWrap – определяет, разбивать или нет текст на строки.
Transparent – определяет, виден ли рисунок фона через окно.
Описание слайда:
8.3 Основные визуальные компоненты и средства визуализации сообщений пользователю 1. Метка (класс TLabel) Метка – окно с текстом и может использоваться для формирования на форме некоторых надписей или подписей. Основные свойства: Caption – заголовок – текст, выводимый в окне компонента. Name – имя компонента в программе. Visible – определяет видимость компонента. Alignment – определяет способ выравнивания текста в окне компонента: taCenter - по центру; taLeftJustify - по левой границе; taRightJustify - по правой границе. Font – определяет шрифт текста. Color – определяет цвета текста и фона в окне. WordWrap – определяет, разбивать или нет текст на строки. Transparent – определяет, виден ли рисунок фона через окно.

Слайд 15





Основные визуальные компоненты (2)
2. Строчный редактор (класс TEdit)
Компонент представляет собой окно, обычно выделенное цветом, которое может использоваться, например, для организации ввода информации.
Основные свойства:
Text – строка текста.
ReadOnly – определяет возможность ввода информации в окно.
Name – имя компонента в программе.
Visible – определяет видимость компонента.
Enable – доступность компонента.
Основные методы:
Clear – очистка поля Text.
SetFocus – установка фокуса ввода. 
Основные события:
OnKeyPressed – нажатие алфавитно-цифровой клавиши.
Описание слайда:
Основные визуальные компоненты (2) 2. Строчный редактор (класс TEdit) Компонент представляет собой окно, обычно выделенное цветом, которое может использоваться, например, для организации ввода информации. Основные свойства: Text – строка текста. ReadOnly – определяет возможность ввода информации в окно. Name – имя компонента в программе. Visible – определяет видимость компонента. Enable – доступность компонента. Основные методы: Clear – очистка поля Text. SetFocus – установка фокуса ввода. Основные события: OnKeyPressed – нажатие алфавитно-цифровой клавиши.

Слайд 16





Основные визуальные компоненты (3)
3. Кнопка
Компонент представляет собой окно, в котором размещается название кнопки. Используется для инициирования каких-либо действий.
Основные свойства:
Caption  - название кнопки.
Name – имя компонента в программе.
Visible – определяет видимость компонента.
Enable – доступность компонента.
Default – определяет, генерируется ли событие OnClick для данной кнопки при нажатии клавиши Enter. 
Cancel – аналогично, но для клавиши Esc.
Основные события:
OnClick – «щелчок» мышкой в зоне компонента.
Основные методы:
SetFocus – установка фокуса ввода.
Описание слайда:
Основные визуальные компоненты (3) 3. Кнопка Компонент представляет собой окно, в котором размещается название кнопки. Используется для инициирования каких-либо действий. Основные свойства: Caption - название кнопки. Name – имя компонента в программе. Visible – определяет видимость компонента. Enable – доступность компонента. Default – определяет, генерируется ли событие OnClick для данной кнопки при нажатии клавиши Enter. Cancel – аналогично, но для клавиши Esc. Основные события: OnClick – «щелчок» мышкой в зоне компонента. Основные методы: SetFocus – установка фокуса ввода.

Слайд 17





Средства визуализации сообщений пользователю
1 Метод MessageBox (класс TApplication)
function MessageBox(Text, Caption: PChar; 
           Flags:Longint=MB_OK):Integer;
Пример:
Application.MessageBox('Строка пуста',
                       'Error',mb_Ok);
Возвращает код ответа.
2 Функция MessageDlg
function MessageDlg(const Msg: string; 
		DlgType: TMsgDlgType; 
      Buttons: TMsgDlgButtons; 	
      HelpCtx: Longint): Word;
Пример:
MessageDlg('Поле пусто',mtError,
			[mbOk],0);
Описание слайда:
Средства визуализации сообщений пользователю 1 Метод MessageBox (класс TApplication) function MessageBox(Text, Caption: PChar; Flags:Longint=MB_OK):Integer; Пример: Application.MessageBox('Строка пуста', 'Error',mb_Ok); Возвращает код ответа. 2 Функция MessageDlg function MessageDlg(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint): Word; Пример: MessageDlg('Поле пусто',mtError, [mbOk],0);

Слайд 18





Вычисление квадрата заданного числа
Описание слайда:
Вычисление квадрата заданного числа

Слайд 19





Формы интерфейса
Описание слайда:
Формы интерфейса

Слайд 20





Диаграмма состояний интерфейса
Описание слайда:
Диаграмма состояний интерфейса

Слайд 21





Объектная декомпозиция (диаграмма объектов)
Описание слайда:
Объектная декомпозиция (диаграмма объектов)

Слайд 22





Определение обрабатываемых событий по диаграмме состояний интерфейса
Описание слайда:
Определение обрабатываемых событий по диаграмме состояний интерфейса

Слайд 23





Диаграмма классов приложения
Описание слайда:
Диаграмма классов приложения

Слайд 24





Файл проекта
Program Ex8_01;

Uses
  Forms,
  MainUnit in 'MainUnit.pas' {MainForm};

{$R *.RES}

begin
  Application.Initialize;
  Application.CreateForm(TMainForm, MainForm);
  Application.Run;
end.
Описание слайда:
Файл проекта Program Ex8_01; Uses Forms, MainUnit in 'MainUnit.pas' {MainForm}; {$R *.RES} begin Application.Initialize; Application.CreateForm(TMainForm, MainForm); Application.Run; end.

Слайд 25





Файл MainUnit
Unit MainUnit;
interface
 Uses Windows, Messages, SysUtils, Classes, Graphics,   	Controls, Forms, Dialogs, StdCtrls, ExtCtrls;
 Type TMainForm = class(TForm)
    	  Bevel1: TBevel;
    	  NextButton, ExitButton: TButton;
    	  InputLabel, OutPutLabel: TLabel;
    	  InPutEdit, OutPutEdit: TEdit;
        procedure FormActivate(Sender: TObject);
        procedure InPutEditKeyPress(Sender: TObject;
                                        var Key: Char);
        procedure NextButtonClick(Sender: TObject);
        procedure ExitButtonClick(Sender: TObject);
      private
         { Private declarations }
      public
         { Public declarations }
      end;
Описание слайда:
Файл MainUnit Unit MainUnit; interface Uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; Type TMainForm = class(TForm) Bevel1: TBevel; NextButton, ExitButton: TButton; InputLabel, OutPutLabel: TLabel; InPutEdit, OutPutEdit: TEdit; procedure FormActivate(Sender: TObject); procedure InPutEditKeyPress(Sender: TObject; var Key: Char); procedure NextButtonClick(Sender: TObject); procedure ExitButtonClick(Sender: TObject); private { Private declarations } public { Public declarations } end;

Слайд 26





Файл MainUnit (2)
var MainForm: TMainForm;
implementation
{$R *.DFM}
procedure TMainForm.FormActivate(Sender: TObject);
begin
   NextButton.Enabled:=false;
   InPutEdit.ReadOnly:=false;
   InPutEdit.Clear;
   InPutEdit.Enabled:=true;
   InPutEdit.SetFocus;
   OutPutLabel.Visible:=false;
   OutPutEdit.Visible:=false;
end;
Описание слайда:
Файл MainUnit (2) var MainForm: TMainForm; implementation {$R *.DFM} procedure TMainForm.FormActivate(Sender: TObject); begin NextButton.Enabled:=false; InPutEdit.ReadOnly:=false; InPutEdit.Clear; InPutEdit.Enabled:=true; InPutEdit.SetFocus; OutPutLabel.Visible:=false; OutPutEdit.Visible:=false; end;

Слайд 27





Файл MainUnit (3)
procedure TMainForm.InPutEditKeyPress(Sender: TObject; 						  var Key: Char);
var x:real;Code:integer;
begin
    If Key=#13 then
      begin
        Key:=#0;     Val(InPutEdit.Text,x,Code);
        if Code=0 then
           begin
             InputEdit.ReadOnly:=true;
             InputEdit.Enabled:=false;
             OutPutLabel.Visible:=true;
             OutPutEdit.Visible:=true;
             OutPutEdit.Text:=floattostr(sqr(x));
             NextButton.Enabled:=true;
             NextButton.SetFocus;
           end
Описание слайда:
Файл MainUnit (3) procedure TMainForm.InPutEditKeyPress(Sender: TObject; var Key: Char); var x:real;Code:integer; begin If Key=#13 then begin Key:=#0; Val(InPutEdit.Text,x,Code); if Code=0 then begin InputEdit.ReadOnly:=true; InputEdit.Enabled:=false; OutPutLabel.Visible:=true; OutPutEdit.Visible:=true; OutPutEdit.Text:=floattostr(sqr(x)); NextButton.Enabled:=true; NextButton.SetFocus; end

Слайд 28





Файл MainUnit (4)
 else
   begin
     MessageDlg('Недопустимые символы.',mtError, 								[mbOk], 0);
   end
 end
end;

procedure TMainForm.NextButtonClick(Sender: TObject);
begin  FormActivate(NextButton); end;

procedure TMainForm.ExitButtonClick(Sender: TObject);
begin  Close; end;

end.
Описание слайда:
Файл MainUnit (4) else begin MessageDlg('Недопустимые символы.',mtError, [mbOk], 0); end end end; procedure TMainForm.NextButtonClick(Sender: TObject); begin FormActivate(NextButton); end; procedure TMainForm.ExitButtonClick(Sender: TObject); begin Close; end; end.

Слайд 29





8.4 Расширение Delphi Pascal 
Дополнительные скалярные типы данных
а) целый
Cardinal      0..2147483647             без знака    4 байта
б) логические
ByteBool  1 байт
WordBool  2 байта
LongBool  4 байта
в) символьные
ANSIChar    1 байт   (ANSI)
WideChar    2 байта  (Unicode)
г) вещественные – денежный:
Currency -922337203685477.5808.. 922337203685477.5807   8 байт
Описание слайда:
8.4 Расширение Delphi Pascal Дополнительные скалярные типы данных а) целый Cardinal 0..2147483647 без знака 4 байта б) логические ByteBool 1 байт WordBool 2 байта LongBool 4 байта в) символьные ANSIChar 1 байт (ANSI) WideChar 2 байта (Unicode) г) вещественные – денежный: Currency -922337203685477.5808.. 922337203685477.5807 8 байт

Слайд 30





Тип «Дата-время»
д) TDateTime - Double – целая часть – число дней с 30.12.1899, дробная – часть дня
Пример:  35065.75  1.1.1996  18.00
Для работы используются следующие подпрограммы:
1) function Now:TDateTime – возвращает текущую дату и время; 
2) function Date:TDateTime – возвращает текущую дату; 
3) function Time:TDateTime – возвращает текущее время;
4) function DateTimeToStr(D:TDateTime):String – преобразует дату и время в строку символов;
5) function DateToStr(D:TDateTime):String – преобразует дату в строку символов;
6) function TimeToStr(D:TDateTime):String – преобразует время в строку символов;
Описание слайда:
Тип «Дата-время» д) TDateTime - Double – целая часть – число дней с 30.12.1899, дробная – часть дня Пример: 35065.75  1.1.1996 18.00 Для работы используются следующие подпрограммы: 1) function Now:TDateTime – возвращает текущую дату и время; 2) function Date:TDateTime – возвращает текущую дату; 3) function Time:TDateTime – возвращает текущее время; 4) function DateTimeToStr(D:TDateTime):String – преобразует дату и время в строку символов; 5) function DateToStr(D:TDateTime):String – преобразует дату в строку символов; 6) function TimeToStr(D:TDateTime):String – преобразует время в строку символов;

Слайд 31





Тип «Дата-время»
7) function StrToDate(S:String):TDateTime – преобразует строку в дату, разделитель – символ, указанный при настройке Windows, формат:          день.месяц[.год];
8) function StrToTime(S:String):TDateTime – преобразует строку во время, разделитель – символ, указанный при настройке Windows, формат:         часы.минуты[.секунды][  am или pt];
9) function StrToDateTme(S:String):TDateTime – преобразует строку в дату-время, разделители – символы, указанный при настройке Windows, формат: 
	день.месяц[.год]  часы:минуты[.секунды][  am или pt];
10) procedure DecodeDate(D:TDateTime:Var Year,Month,Day:Word) – декодирует дату;
11) procedure DecodeTime(D:TDateTime: 
            Var Hour,Min,Sec,MSec:Word) – декодирует время;
Описание слайда:
Тип «Дата-время» 7) function StrToDate(S:String):TDateTime – преобразует строку в дату, разделитель – символ, указанный при настройке Windows, формат: день.месяц[.год]; 8) function StrToTime(S:String):TDateTime – преобразует строку во время, разделитель – символ, указанный при настройке Windows, формат: часы.минуты[.секунды][ am или pt]; 9) function StrToDateTme(S:String):TDateTime – преобразует строку в дату-время, разделители – символы, указанный при настройке Windows, формат: день.месяц[.год] часы:минуты[.секунды][ am или pt]; 10) procedure DecodeDate(D:TDateTime:Var Year,Month,Day:Word) – декодирует дату; 11) procedure DecodeTime(D:TDateTime: Var Hour,Min,Sec,MSec:Word) – декодирует время;

Слайд 32





Строковые типы
a) ShortString – до 255 символов, 0-й байт – длина строки;
б) AnsiString – указатель на строку ANSI символов,
  WideString – указатель на строку символов Unicode:
в) String:  {$H+} ==ANSIString; {$H-} ==ShortString; 
Исключение! String[<Максимальная длина>] – всегда ShortString
Для перечисленных строк определены операции конкатенации и сравнения, а также специальные функции в System и SysUtils
г) PChar – указатель на массив символов, завершающийся нулем.
Строки совместимы:
<строка, кроме PChar> := <любая строка или символ>
<строка PChar >:= <строковая константа или PChar(строка)>
Описание слайда:
Строковые типы a) ShortString – до 255 символов, 0-й байт – длина строки; б) AnsiString – указатель на строку ANSI символов, WideString – указатель на строку символов Unicode: в) String: {$H+} ==ANSIString; {$H-} ==ShortString; Исключение! String[<Максимальная длина>] – всегда ShortString Для перечисленных строк определены операции конкатенации и сравнения, а также специальные функции в System и SysUtils г) PChar – указатель на массив символов, завершающийся нулем. Строки совместимы: <строка, кроме PChar> := <любая строка или символ> <строка PChar >:= <строковая константа или PChar(строка)>

Слайд 33





Дополнительные процедуры и функции
1) function ANSILowerCase(const S:String):String – заменяет прописные буквы на строчные;
2) function ANSIUpperCase(const S:String):String – заменяет строчные буквы на прописные;
3) function StrToInt(S:String):Integer – преобразует строку в целое число;
4) function StrToIntDef(S:String; Default:Integer):Integer – то же + возвращает код ошибки;
5) function StrToIntRange(S:String; Min..Max:LongInt):LongInt – то же + генерирует исключение ERangeError, если не входит в диапазон;
6) function StrToFloat(S:String):Extended – преобразует строку в вещественное число, в качестве разделителя использует символ, указанный при настройке Windows;
Описание слайда:
Дополнительные процедуры и функции 1) function ANSILowerCase(const S:String):String – заменяет прописные буквы на строчные; 2) function ANSIUpperCase(const S:String):String – заменяет строчные буквы на прописные; 3) function StrToInt(S:String):Integer – преобразует строку в целое число; 4) function StrToIntDef(S:String; Default:Integer):Integer – то же + возвращает код ошибки; 5) function StrToIntRange(S:String; Min..Max:LongInt):LongInt – то же + генерирует исключение ERangeError, если не входит в диапазон; 6) function StrToFloat(S:String):Extended – преобразует строку в вещественное число, в качестве разделителя использует символ, указанный при настройке Windows;

Слайд 34





Дополнительные процедуры и функции (2)
7) function IntToStr(V:Integer):String – преобразует целое число в строку символов;
8) function IntToHex(V:Integer; Digits:Integer):String – преобразует целое число в строку шестнадцатеричных символов, минимальной длиныDigits;
9) function FloatToStr(V:Extended):String – преобразует вещественное число в строку символов.
Описание слайда:
Дополнительные процедуры и функции (2) 7) function IntToStr(V:Integer):String – преобразует целое число в строку символов; 8) function IntToHex(V:Integer; Digits:Integer):String – преобразует целое число в строку шестнадцатеричных символов, минимальной длиныDigits; 9) function FloatToStr(V:Extended):String – преобразует вещественное число в строку символов.

Слайд 35





Файлы
1. Изменены некоторые служебные слова и названия процедур:
Text        TextFile
Assign   AssignFile
Close    CloseFile
Описание слайда:
Файлы 1. Изменены некоторые служебные слова и названия процедур: Text  TextFile Assign  AssignFile Close  CloseFile

Слайд 36





Процедурный тип данных
1) При объявлении указателя на метод добавляют of object

Пример:
Type metodproc = procedure(Sender:TObject) of object;

2) Переменным процедурного типа можно присвоить nil и проверять их значение при необходимости 

Пример:
	if Assigned(p2) then p2(x,y);
Описание слайда:
Процедурный тип данных 1) При объявлении указателя на метод добавляют of object Пример: Type metodproc = procedure(Sender:TObject) of object; 2) Переменным процедурного типа можно присвоить nil и проверять их значение при необходимости Пример: if Assigned(p2) then p2(x,y);

Слайд 37





8.5 Классы Delphi
Основная особенность: все объекты размещаются в динамической памяти.
Описание класса:
Type <Имя объявляемого класса> = class(<Имя родителя>)
		private         <Cкрытые элементы класса>
		protected     <Защищенные элементы класса>
		public           <Общедоступные элементы класса>
		published     <Опубликованные элементы класса>
		automated  <Элементы, реализующие OLE-механизм>
end;

Если имя родителя не указано, то им считается класс TObject.
Описание слайда:
8.5 Классы Delphi Основная особенность: все объекты размещаются в динамической памяти. Описание класса: Type <Имя объявляемого класса> = class(<Имя родителя>) private <Cкрытые элементы класса> protected <Защищенные элементы класса> public <Общедоступные элементы класса> published <Опубликованные элементы класса> automated <Элементы, реализующие OLE-механизм> end; Если имя родителя не указано, то им считается класс TObject.

Слайд 38





Конструктор и деструктор
Переменные класса являются ссылками. В отличие от указателей операция разыменования при работе с ними не используется.
Конструктор Create и деструктор Destroy класса должны содержать вызов конструктора и деструктора TObject, которые обеспечивают выделение и освобождение памяти:
Constructor <Имя класса>.Create;
   begin
      inherited Create;    
 		.  .  .
   end;

Destructor Destroy; override;{деструктор виртуальный!}
Destructor <Имя класса>.Destroy;
	begin
		.  .  . 
	 inherited Destroy;         
	end;
Описание слайда:
Конструктор и деструктор Переменные класса являются ссылками. В отличие от указателей операция разыменования при работе с ними не используется. Конструктор Create и деструктор Destroy класса должны содержать вызов конструктора и деструктора TObject, которые обеспечивают выделение и освобождение памяти: Constructor <Имя класса>.Create; begin inherited Create; . . . end; Destructor Destroy; override;{деструктор виртуальный!} Destructor <Имя класса>.Destroy; begin . . . inherited Destroy; end;

Слайд 39





Сравнение объектных моделей
Type 
  pTNum = ^TNum; 
  TNum = Object 
	n: integer;                   
	procedure Init 
             (an:integer);            
  end;
Procedure TNum.Init;    
  begin  n:=an;  end;             
.   .   .    
Var p:pTNum;      
Begin        
   New(p, Init(5));          
   WriteLn(p^.n);         
   Dispose(p);      
End.
Описание слайда:
Сравнение объектных моделей Type pTNum = ^TNum; TNum = Object n: integer; procedure Init (an:integer); end; Procedure TNum.Init; begin n:=an; end; . . . Var p:pTNum; Begin New(p, Init(5)); WriteLn(p^.n); Dispose(p); End.

Слайд 40





Особенности работы с объектами
Var A, B:TNum; 
A:=TNum.Create;


B:=A; 
B.Destroy;
A.n:=3; {!!!}
Описание слайда:
Особенности работы с объектами Var A, B:TNum; A:=TNum.Create; B:=A; B.Destroy; A.n:=3; {!!!}

Слайд 41





Особенности переопределения методов
1) виртуальные методы:
    procedure Print;virtual;   {в базовом класса}
  procedure Print;override;  {в производном классе}
2) абстрактные методы:
  procedure Print;virtual;abstract;   {в базовом класса}
  procedure Print;override;  {в производном классе} 
Класс, содержащий абстрактные методы, называется абстрактным. Объекты абстрактного класса создавать не разрешается.
Описание слайда:
Особенности переопределения методов 1) виртуальные методы: procedure Print;virtual; {в базовом класса} procedure Print;override; {в производном классе} 2) абстрактные методы: procedure Print;virtual;abstract; {в базовом класса} procedure Print;override; {в производном классе} Класс, содержащий абстрактные методы, называется абстрактным. Объекты абстрактного класса создавать не разрешается.

Слайд 42





8.6 События Мыши
1 Событие «Нажатие кнопки мыши над компонентом окна приложения»: 
procedure <Имя компонента> MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
где  
Button:TMouseButton - определяет, какая кнопка нажата:
	type TMouseButton = (mbLeft, mbRight, mbMiddle); - соответственно, левая, правая или средняя кнопки.
Shift:TShiftState - определяет нажатые управляющих клавиш клавиатуры и мыши:
	type TShiftState = set of (ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDouble);
 X, Y: Integer - координаты мыши относительно компонента.
Описание слайда:
8.6 События Мыши 1 Событие «Нажатие кнопки мыши над компонентом окна приложения»: procedure <Имя компонента> MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); где Button:TMouseButton - определяет, какая кнопка нажата: type TMouseButton = (mbLeft, mbRight, mbMiddle); - соответственно, левая, правая или средняя кнопки. Shift:TShiftState - определяет нажатые управляющих клавиш клавиатуры и мыши: type TShiftState = set of (ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDouble); X, Y: Integer - координаты мыши относительно компонента.

Слайд 43





События Мыши (2)
2 Событие «Движение мыши»:
procedure  <Имя компонента>MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

3 Событие «Отпускание клавиши мыши»:

procedure <Имя компонента>MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
Описание слайда:
События Мыши (2) 2 Событие «Движение мыши»: procedure <Имя компонента>MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); 3 Событие «Отпускание клавиши мыши»: procedure <Имя компонента>MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

Слайд 44





8.7 Создание графических изображений
Изображения в Windows создаются с помощью типов: 
точка,
прямоугольник;
и компонентов: 
перо, которое используется для рисования линий;
кисть, которая используется для закрашивания замкнутых фигур;
шрифт, который используется при выводе надписей;
холст, на котором выполняются изображения.
Описание слайда:
8.7 Создание графических изображений Изображения в Windows создаются с помощью типов: точка, прямоугольник; и компонентов: перо, которое используется для рисования линий; кисть, которая используется для закрашивания замкнутых фигур; шрифт, который используется при выводе надписей; холст, на котором выполняются изображения.

Слайд 45





Точка и прямоугольник
Точка – тип, позволяющий определить точку на экране:
type TPoint = record
  X: Longint;
  Y: Longint;
end;

Прямоугольник – тип, используемый для задания прямоугольника:
type 
  TRect = record
  case Integer of
    0: (Left, Top, Right, Bottom: Integer);
    1: (TopLeft, BottomRight: TPoint);
end;
Описание слайда:
Точка и прямоугольник Точка – тип, позволяющий определить точку на экране: type TPoint = record X: Longint; Y: Longint; end; Прямоугольник – тип, используемый для задания прямоугольника: type TRect = record case Integer of 0: (Left, Top, Right, Bottom: Integer); 1: (TopLeft, BottomRight: TPoint); end;

Слайд 46





Компонент перо (класс TPen)
C помощью класса TPen создается объект Перо, служащий для вычерчивания линий, контуров и т. п.
Свойства:
Color:TColor – цвет вычерчиваемых линий;
Width:Integer – толщина линии в пикселях экрана;
Style:TPenStyle – стиль линий – учитывается только для толщины 1 пиксель:
	psSolid, psDash, psDot, psDashDot, psDashDotDot, psClear, psInsideFrame;
Mode:TPenMode – способ взаимодействия линий с фоном, например, pmBlack – только черные линии, 
	pmWhite – только белые линии, 
	pmNop – линии не видны на фоне, 
	pmNot – инверсия фона и т.д..
Описание слайда:
Компонент перо (класс TPen) C помощью класса TPen создается объект Перо, служащий для вычерчивания линий, контуров и т. п. Свойства: Color:TColor – цвет вычерчиваемых линий; Width:Integer – толщина линии в пикселях экрана; Style:TPenStyle – стиль линий – учитывается только для толщины 1 пиксель: psSolid, psDash, psDot, psDashDot, psDashDotDot, psClear, psInsideFrame; Mode:TPenMode – способ взаимодействия линий с фоном, например, pmBlack – только черные линии, pmWhite – только белые линии, pmNop – линии не видны на фоне, pmNot – инверсия фона и т.д..

Слайд 47





Компонент Кисть (класс TBrush)
Объекты класса TBrush служат для заполнения внутренего пространства.
Свойства:
Color:TColor – цвет кисти:
	clAqua (прозрачный), clBlack, clBlue, clDkGray, clFuchsia, clGray, clGreen, clLime (салатовый), clLtGray, clMaroon (каштановый), clNavy (синий), clOlive, clPurple (фиолетовый), clRed, clSilver (серебряный), clTeal, clWhite, clYellow   
Style:TBrushStyle – стиль кисти, например:
	bsSolid, bsClear, bsHorizontal, bsVertical, bsFDiagonal,bsBDiagonal, bsCross, bsDiagCross;
BitMap:TBitMap – растровое изображение, которое будет использоваться кистью для заполнения, если свойство определено, то цвет и стиль игнорируются.
Описание слайда:
Компонент Кисть (класс TBrush) Объекты класса TBrush служат для заполнения внутренего пространства. Свойства: Color:TColor – цвет кисти: clAqua (прозрачный), clBlack, clBlue, clDkGray, clFuchsia, clGray, clGreen, clLime (салатовый), clLtGray, clMaroon (каштановый), clNavy (синий), clOlive, clPurple (фиолетовый), clRed, clSilver (серебряный), clTeal, clWhite, clYellow Style:TBrushStyle – стиль кисти, например: bsSolid, bsClear, bsHorizontal, bsVertical, bsFDiagonal,bsBDiagonal, bsCross, bsDiagCross; BitMap:TBitMap – растровое изображение, которое будет использоваться кистью для заполнения, если свойство определено, то цвет и стиль игнорируются.

Слайд 48





Компонент Шрифт (класс TFont)
Объект класса TFont – определяет шрифт, которым выводится текст.
Свойства:
Charset:TFontCharSet – набор символов:
	RUSSIANCHARSET – русский, 
	OEM_CHARSET – текст MS DOS;
Name:TFontName – имя шрифта, по умолчанию – MS Sans Serif;
Color:TColor – цвет;
Height:Integer – высота в пикселях;
Size:Integer – высота в пунктах (1/7 дюйма);
Pitch:TFontPitch – способ расположения букв в тексте:
	fpFixed – моноширный текст, fpVariable – пропорциональный текст,
	fpDefault – ширина шрифта по умолчанию;
Style:TFontStyle – стиль шрифта – комбинация из:
	fsBold – полужирный, fsItalic – курсив, fsUnderline – подчеркнутый,
	fsStrikeOut – перечеркнутый.
Описание слайда:
Компонент Шрифт (класс TFont) Объект класса TFont – определяет шрифт, которым выводится текст. Свойства: Charset:TFontCharSet – набор символов: RUSSIANCHARSET – русский, OEM_CHARSET – текст MS DOS; Name:TFontName – имя шрифта, по умолчанию – MS Sans Serif; Color:TColor – цвет; Height:Integer – высота в пикселях; Size:Integer – высота в пунктах (1/7 дюйма); Pitch:TFontPitch – способ расположения букв в тексте: fpFixed – моноширный текст, fpVariable – пропорциональный текст, fpDefault – ширина шрифта по умолчанию; Style:TFontStyle – стиль шрифта – комбинация из: fsBold – полужирный, fsItalic – курсив, fsUnderline – подчеркнутый, fsStrikeOut – перечеркнутый.

Слайд 49





Компонент Канва (класс TCanvas) 
Класс создает Канву – холст для рисования.
Свойства:
Brush:TBrush – кисть;
Pen:TPen – перо;
Font:TFont – шрифт;
PenPos:TPoint – определяет текущее положение пера над холстом в пискелях относительно левого верхнего угла;
CopyMode:TCopyMode – способ взаимодействия растрового изображения с цветом фона, используется при копировании части канвы на другую методом CopyRect:
	cmBlackness – заполнение черным цветом,
	cmDestInvert – заполнение инверсным фоном,
	cmSrcCopy – копирует изображение источника на канву и т.д.;
Pixels[X,Y:Integer]:TColor – массив пикселей канвы.
Описание слайда:
Компонент Канва (класс TCanvas) Класс создает Канву – холст для рисования. Свойства: Brush:TBrush – кисть; Pen:TPen – перо; Font:TFont – шрифт; PenPos:TPoint – определяет текущее положение пера над холстом в пискелях относительно левого верхнего угла; CopyMode:TCopyMode – способ взаимодействия растрового изображения с цветом фона, используется при копировании части канвы на другую методом CopyRect: cmBlackness – заполнение черным цветом, cmDestInvert – заполнение инверсным фоном, cmSrcCopy – копирует изображение источника на канву и т.д.; Pixels[X,Y:Integer]:TColor – массив пикселей канвы.

Слайд 50





Основные методы класса TCanvas
procedure MoveTo(X,Y:Integer) – перемещает перо в указанную точку;
procedure LineTo(X,Y:Integer)– чертит линию                                   из текущей точки в заданную;
procedure Rectangle(X1, Y1, X2, Y2: Integer)–                 рисует и закрашивает кистью прямоугольник;
procedure Polyline(Points:array of TPoint)–                         рисует ломаную линию;
	type TPoint = record  X,Y:Longint; end;
procedure Polygon(Points: array of TPoint)–                        рисует и закрашивает кистью многоугольник;
procedure Ellipse(X1, Y1, X2, Y2: Integer)–                     рисует эллипс в заданном прямоугольнике и 
	закрашивает кистью;
procedure FrameRect(const Rect:TRect) – очерчивает         границы прямоугольника текущей кистью без заполнения;
Описание слайда:
Основные методы класса TCanvas procedure MoveTo(X,Y:Integer) – перемещает перо в указанную точку; procedure LineTo(X,Y:Integer)– чертит линию из текущей точки в заданную; procedure Rectangle(X1, Y1, X2, Y2: Integer)– рисует и закрашивает кистью прямоугольник; procedure Polyline(Points:array of TPoint)– рисует ломаную линию; type TPoint = record X,Y:Longint; end; procedure Polygon(Points: array of TPoint)– рисует и закрашивает кистью многоугольник; procedure Ellipse(X1, Y1, X2, Y2: Integer)– рисует эллипс в заданном прямоугольнике и закрашивает кистью; procedure FrameRect(const Rect:TRect) – очерчивает границы прямоугольника текущей кистью без заполнения;

Слайд 51





Основные методы класса TCanvas (2)
procedure Arc(X1,Y1,X2,Y2,X3,Y3, X4,Y4:integer) – чертит дугу эллипса в прямоугольнике (X1,Y1,X2,Y2), направление – против часовой стрелки;
procedure Chord(X1,Y1,X2,Y2,X3,Y3, X4,Y4:integer) – чертит сегмент эллипса в прямоугольнике (X1,Y1,X2,Y2), направление – против часовой стрелки;
procedure Pie(X1,Y1,X2,Y2,X3,Y3, X4,Y4:integer) – чертит сектор эллипса в прямоугольнике (X1,Y1,X2,Y2), направление – против часовой стрелки;
procedure RoundRect(X1,Y1,X2,Y2, X3,Y3:integer) – чертит и заполняет прямоугольник с закругленными краями.
Описание слайда:
Основные методы класса TCanvas (2) procedure Arc(X1,Y1,X2,Y2,X3,Y3, X4,Y4:integer) – чертит дугу эллипса в прямоугольнике (X1,Y1,X2,Y2), направление – против часовой стрелки; procedure Chord(X1,Y1,X2,Y2,X3,Y3, X4,Y4:integer) – чертит сегмент эллипса в прямоугольнике (X1,Y1,X2,Y2), направление – против часовой стрелки; procedure Pie(X1,Y1,X2,Y2,X3,Y3, X4,Y4:integer) – чертит сектор эллипса в прямоугольнике (X1,Y1,X2,Y2), направление – против часовой стрелки; procedure RoundRect(X1,Y1,X2,Y2, X3,Y3:integer) – чертит и заполняет прямоугольник с закругленными краями.

Слайд 52





Основные методы класса TCanvas (3)
procedure FillRect(const Rect: TRect)– закрашивает кистью прямоугольник, включая левую и верхнюю границы.
	type TRect = record
  	case Integer of
    0: (Left, Top, Right, Bottom: Integer);
    1: (TopLeft, BottomRight: TPoint);
	end;

procedure FloodFill(X,Y:Integer;Color:TColor;
	FillStyle:TFillStyle)– 
	type TFillStyle = (fsSurface,fsBorder);
FillStyle=fsBorder - заливка                                                     области с границей цвета Color;
FillStyle=fsSurface - заливка                                                                      области цвета Color цветом,                                            определенным кистью.
Описание слайда:
Основные методы класса TCanvas (3) procedure FillRect(const Rect: TRect)– закрашивает кистью прямоугольник, включая левую и верхнюю границы. type TRect = record case Integer of 0: (Left, Top, Right, Bottom: Integer); 1: (TopLeft, BottomRight: TPoint); end; procedure FloodFill(X,Y:Integer;Color:TColor; FillStyle:TFillStyle)– type TFillStyle = (fsSurface,fsBorder); FillStyle=fsBorder - заливка области с границей цвета Color; FillStyle=fsSurface - заливка области цвета Color цветом, определенным кистью.

Слайд 53





Основные методы класса TCanvas (4)
procedure TextOut(X,Y:Integer; const Text:string)– вывод строки текста шрифтом TFont в прямоугольник с верхним левым. углом в точке (X,Y);




function TextExtent(Const Text:String):TSize – возвращает ширину и высоту прямоугольника, охватывающего текстовую строку Text;

function TextWidth(Const Text:string):Integer – возвращает ширину прямоугольника, охватывающего текстовую строку;
Описание слайда:
Основные методы класса TCanvas (4) procedure TextOut(X,Y:Integer; const Text:string)– вывод строки текста шрифтом TFont в прямоугольник с верхним левым. углом в точке (X,Y); function TextExtent(Const Text:String):TSize – возвращает ширину и высоту прямоугольника, охватывающего текстовую строку Text; function TextWidth(Const Text:string):Integer – возвращает ширину прямоугольника, охватывающего текстовую строку;

Слайд 54





Компонент Образ (класс TImage) 
Образ – окно для работы с графикой.
Свойства:
AutoSize:Boolean – автоматическое изменение размера компонента в зависимости от размера картинки (при загрузке рисунка);
Stretch:Boolean – автоматическое масштабирование рисунка при изменении размеров компонента;
Picture:TPicture – свойство-объект картинка (двоичный образ, пиктограмма, графический метафайл);      
	класс включает методы:
           procedure LoadFromFile(const FileName: string); – загрузка картинки из файла;
	   procedure SaveToFile(const FileName: string); – сохранение картинки в файле.
Canvas:TCanvas – холст;
Brush:TBrush – кисть;
Pen:TPen – перо;	
Font:TFont – шрифт.
Описание слайда:
Компонент Образ (класс TImage) Образ – окно для работы с графикой. Свойства: AutoSize:Boolean – автоматическое изменение размера компонента в зависимости от размера картинки (при загрузке рисунка); Stretch:Boolean – автоматическое масштабирование рисунка при изменении размеров компонента; Picture:TPicture – свойство-объект картинка (двоичный образ, пиктограмма, графический метафайл); класс включает методы: procedure LoadFromFile(const FileName: string); – загрузка картинки из файла; procedure SaveToFile(const FileName: string); – сохранение картинки в файле. Canvas:TCanvas – холст; Brush:TBrush – кисть; Pen:TPen – перо; Font:TFont – шрифт.

Слайд 55





Рисование прямоугольников (Ex8_2)
Описание слайда:
Рисование прямоугольников (Ex8_2)

Слайд 56





Модуль MainUnit
unit MainUnit;
interface
Uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;
type 
  TMainForm = class(TForm)
    Image: TImage;
    ExitButton: TButton;
    procedure FormActivate(Sender: TObject);
    procedure ImageMouseDown(Sender: TObject; 
	   Button:TMouseButton; Shift:TShiftState; X,Y:Integer);
    procedure ImageMouseMove(Sender: TObject; 
		Shift: TShiftState; X,Y: Integer);
    procedure ImageMouseUp(Sender: TObject; 
		Button:TMouseButton;Shift: TShiftState;X,Y: Integer);
    procedure ExitButtonClick(Sender: TObject);
  end;
Описание слайда:
Модуль MainUnit unit MainUnit; interface Uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TMainForm = class(TForm) Image: TImage; ExitButton: TButton; procedure FormActivate(Sender: TObject); procedure ImageMouseDown(Sender: TObject; Button:TMouseButton; Shift:TShiftState; X,Y:Integer); procedure ImageMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer); procedure ImageMouseUp(Sender: TObject; Button:TMouseButton;Shift: TShiftState;X,Y: Integer); procedure ExitButtonClick(Sender: TObject); end;

Слайд 57





Модуль MainUnit (2)
	var MainForm: TMainForm;
implementation
	Var Rect:TRect;first:boolean;
{$R *.DFM}
procedure TMainForm.FormActivate(Sender: TObject);
   begin Image.Canvas.Brush.Color:=clWhite; end;
procedure TMainForm.ImageMouseDown(Sender: TObject;
    Button:TMouseButton;Shift:TShiftState;X,Y:Integer);
begin
   if Button=mbLeft then
        begin
           Rect.Left:=x;
           Rect.Top:=y;
           first:=true;
        end;
end;
Описание слайда:
Модуль MainUnit (2) var MainForm: TMainForm; implementation Var Rect:TRect;first:boolean; {$R *.DFM} procedure TMainForm.FormActivate(Sender: TObject); begin Image.Canvas.Brush.Color:=clWhite; end; procedure TMainForm.ImageMouseDown(Sender: TObject; Button:TMouseButton;Shift:TShiftState;X,Y:Integer); begin if Button=mbLeft then begin Rect.Left:=x; Rect.Top:=y; first:=true; end; end;

Слайд 58





Модуль MainUnit (3)
procedure TMainForm.ImageMouseMove(Sender: TObject; Shift: TShiftState;  X, Y: Integer);
begin
 if ssLeft in Shift then
  begin
    if first then first:=not first
    else
      begin
        Image.Canvas.Pen.Color:=clWhite;
        Image.Canvas.Rectangle(Rect.Left,Rect.Top,
						Rect.Right,Rect.Bottom);
      end;
    Rect.Right:=X;   Rect.Bottom:=Y;
    Image.Canvas.Pen.Color:=clBlack;
    Image.Canvas.Rectangle(Rect.Left,Rect.Top,
						Rect.Right,Rect.Bottom);
  end;
end;
Описание слайда:
Модуль MainUnit (3) procedure TMainForm.ImageMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if ssLeft in Shift then begin if first then first:=not first else begin Image.Canvas.Pen.Color:=clWhite; Image.Canvas.Rectangle(Rect.Left,Rect.Top, Rect.Right,Rect.Bottom); end; Rect.Right:=X; Rect.Bottom:=Y; Image.Canvas.Pen.Color:=clBlack; Image.Canvas.Rectangle(Rect.Left,Rect.Top, Rect.Right,Rect.Bottom); end; end;

Слайд 59





Модуль MainUnit (4)
procedure TMainForm.ImageMouseUp(Sender: TObject; Button: TMouseButton;Shift:TShiftState;X,Y:Integer);
begin
  if Button=mbLeft then
     begin
      Image.Canvas.Pen.Color:=clWhite;
      Image.Canvas.Rectangle(Rect.Left,Rect.Top,
						Rect.Right,Rect.Bottom);
      Rect.Right:=X;    Rect.Bottom:=Y;
      Image.Canvas.Brush.Color:=clRed;
      Image.Canvas.FillRect(Rect);
      Image.Canvas.Brush.Color:=clWhite;
      Image.Canvas.Pen.Color:=clBlack;
     end;
end;
procedure TMainForm.ExitButtonClick(Sender: TObject);
begin   Close;  end;
end.
Описание слайда:
Модуль MainUnit (4) procedure TMainForm.ImageMouseUp(Sender: TObject; Button: TMouseButton;Shift:TShiftState;X,Y:Integer); begin if Button=mbLeft then begin Image.Canvas.Pen.Color:=clWhite; Image.Canvas.Rectangle(Rect.Left,Rect.Top, Rect.Right,Rect.Bottom); Rect.Right:=X; Rect.Bottom:=Y; Image.Canvas.Brush.Color:=clRed; Image.Canvas.FillRect(Rect); Image.Canvas.Brush.Color:=clWhite; Image.Canvas.Pen.Color:=clBlack; end; end; procedure TMainForm.ExitButtonClick(Sender: TObject); begin Close; end; end.

Слайд 60





 8.8 Три составляющих движения объекта на плоскости
1 Перемещение
	
    x1 = x + dx,
      y1 = y + dy
Описание слайда:
8.8 Три составляющих движения объекта на плоскости 1 Перемещение x1 = x + dx, y1 = y + dy

Слайд 61





Вращение фигур (Ex8_03)
Описание слайда:
Вращение фигур (Ex8_03)

Слайд 62





Объектная декомпозиция
Описание слайда:
Объектная декомпозиция

Слайд 63





Диаграмма классов предметной области
Описание слайда:
Диаграмма классов предметной области

Слайд 64





Модуль Figure
Unit Figure;
Interface Uses graphics,ExtCtrls;
Type  TFigure=Class
        x,y, halflen,dx,dy:integer;        Image:TImage;
        constructor Create(ax,ay,ah:integer;aImage:TImage);
        procedure Move(t:single);
        procedure Draw;virtual;abstract;
        procedure Rel(t:real);
     end;
     TLine=Class(TFigure)
            procedure Draw;override;
     end;
     TSquare=Class(TFigure)
            procedure Draw;override;
     end;
     TCircle=Class(TFigure)
            r:integer;
            constructor Create(ax,ay,ah,ar:integer;
							aImage:TImage);
            procedure DRAW;override;
     end;
Описание слайда:
Модуль Figure Unit Figure; Interface Uses graphics,ExtCtrls; Type TFigure=Class x,y, halflen,dx,dy:integer; Image:TImage; constructor Create(ax,ay,ah:integer;aImage:TImage); procedure Move(t:single); procedure Draw;virtual;abstract; procedure Rel(t:real); end; TLine=Class(TFigure) procedure Draw;override; end; TSquare=Class(TFigure) procedure Draw;override; end; TCircle=Class(TFigure) r:integer; constructor Create(ax,ay,ah,ar:integer; aImage:TImage); procedure DRAW;override; end;

Слайд 65





Модуль Figure (2)
Implementation
  Constructor TFigure.Create;
    Begin
       inherited Create;
       x:=ax; y:=ay; halflen:=ah; Image:=aImage;
    End;
  Procedure TFigure.Rel;
    Begin
       dx:=round(halflen*cos(t));
       dy:=round(halflen*sin(t));
    End;
  Procedure TFigure.Move;
    Begin
       Image.Canvas.Pen.Color:=clWhite;       Draw;
       Image.Canvas.Pen.Color:=clBlack;
       Rel(t);
       Draw;
    End;
Описание слайда:
Модуль Figure (2) Implementation Constructor TFigure.Create; Begin inherited Create; x:=ax; y:=ay; halflen:=ah; Image:=aImage; End; Procedure TFigure.Rel; Begin dx:=round(halflen*cos(t)); dy:=round(halflen*sin(t)); End; Procedure TFigure.Move; Begin Image.Canvas.Pen.Color:=clWhite; Draw; Image.Canvas.Pen.Color:=clBlack; Rel(t); Draw; End;

Слайд 66





Модуль Figure (3)
 Procedure TLine.Draw;
    Begin   Image.Canvas.MoveTo(x+dx,y+dy);
            Image.Canvas.LineTo(x-dx,y-dy);    
    End;
  Procedure TSquare.Draw;
    Begin   Image.Canvas.MoveTo(x+dx,y+dy);
            Image.Canvas.LineTo(x-dy,y+dx);
            Image.Canvas.LineTo(x-dx,y-dy);
            Image.Canvas.LineTo(x+dy,y-dx);
            Image.Canvas.LineTo(x+dx,y+dy);
    End;
  Constructor TCircle.Create;
    Begin    inherited Create(ax,ay,ah,aImage);  r:=ar;
    End;
  Procedure TCircle.Draw;
    Begin
     Image.Canvas.Ellipse(x+dx+r,y+dy+r,x+dx-r,y+dy-r);
    End;
end.
Описание слайда:
Модуль Figure (3) Procedure TLine.Draw; Begin Image.Canvas.MoveTo(x+dx,y+dy); Image.Canvas.LineTo(x-dx,y-dy); End; Procedure TSquare.Draw; Begin Image.Canvas.MoveTo(x+dx,y+dy); Image.Canvas.LineTo(x-dy,y+dx); Image.Canvas.LineTo(x-dx,y-dy); Image.Canvas.LineTo(x+dy,y-dx); Image.Canvas.LineTo(x+dx,y+dy); End; Constructor TCircle.Create; Begin inherited Create(ax,ay,ah,aImage); r:=ar; End; Procedure TCircle.Draw; Begin Image.Canvas.Ellipse(x+dx+r,y+dy+r,x+dx-r,y+dy-r); End; end.

Слайд 67





Описание класса окна
Unit Main;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;
type
  TMainForm = class(TForm)
    Image: TImage;
    BeginButton,EndButton:TButton;
    Timer1: TTimer; // interval:=100
    procedure FormActivate(Sender: TObject);
    procedure BeginButtonClick(Sender: TObject);
    procedure EndButtonClick(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
end;

Var MainForm: TMainForm;
Описание слайда:
Описание класса окна Unit Main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TMainForm = class(TForm) Image: TImage; BeginButton,EndButton:TButton; Timer1: TTimer; // interval:=100 procedure FormActivate(Sender: TObject); procedure BeginButtonClick(Sender: TObject); procedure EndButtonClick(Sender: TObject); procedure Timer1Timer(Sender: TObject); end; Var MainForm: TMainForm;

Слайд 68





Объявление объектов
implementation

uses Figure;

{$R *.dfm} 
Var
    t:single=0.0;
    L:TLine;
    S:TSquare;
    C:TCircle;
procedure TMainForm.FormActivate(Sender: TObject);
begin
   Image.Canvas.Brush.Color:=clWhite;
end;
Описание слайда:
Объявление объектов implementation uses Figure; {$R *.dfm} Var t:single=0.0; L:TLine; S:TSquare; C:TCircle; procedure TMainForm.FormActivate(Sender: TObject); begin Image.Canvas.Brush.Color:=clWhite; end;

Слайд 69





Создание объектов и реализация движения
procedure TMainForm.BeginButtonClick(Sender: TObject);
begin
   L:=TLine.Create(60,100,50,Image);
   S:=TSquare.Create(180,100,50,Image);
   C:=TCircle.Create(300,100,50,10,Image);
   Timer1.Enabled:=true; // запуск таймера
end;
procedure TMainForm.Timer1Timer(Sender: TObject);
begin
        L.Move(t);
        S.Move(-0.2*t);
        C.Move(0.5*t);
        t:=t+0.5;
end;
Описание слайда:
Создание объектов и реализация движения procedure TMainForm.BeginButtonClick(Sender: TObject); begin L:=TLine.Create(60,100,50,Image); S:=TSquare.Create(180,100,50,Image); C:=TCircle.Create(300,100,50,10,Image); Timer1.Enabled:=true; // запуск таймера end; procedure TMainForm.Timer1Timer(Sender: TObject); begin L.Move(t); S.Move(-0.2*t); C.Move(0.5*t); t:=t+0.5; end;

Слайд 70





Процедура организации движения
procedure TMainForm.EndButtonClick(Sender: TObject);
begin
   Close;
end;

initialization

finalization
   L.Free;
   S.Free;
   C.Free;

end.
Описание слайда:
Процедура организации движения procedure TMainForm.EndButtonClick(Sender: TObject); begin Close; end; initialization finalization L.Free; S.Free; C.Free; end.

Слайд 71





Построение графика функции (Ex 8.4)
Описание слайда:
Построение графика функции (Ex 8.4)

Слайд 72





Отображение графика функции на экран
Описание слайда:
Отображение графика функции на экран

Слайд 73





Модуль Graphic
unit Graphic;
Interface 
Uses ExtCtrls,Graphics;
Type  Fn=Function(X:single):single;

Procedure Run(xn, xk:single; n:integer; F:Fn;  
              x1,y1,x2,y2:integer; Image:TImage);
Implementation
Procedure Run;
Var       arr:array[1..200] of record x,y:integer; end;
          x, y, dx, dxl, dyl, Fmin, Fmax, i, 
          mx, my:single;   {масштабы}
          xm, ym, 	  {размер области окна рисования}
          xs, ys:integer;  {нижняя левая точка графика}
          s:string[10];
Описание слайда:
Модуль Graphic unit Graphic; Interface Uses ExtCtrls,Graphics; Type Fn=Function(X:single):single; Procedure Run(xn, xk:single; n:integer; F:Fn; x1,y1,x2,y2:integer; Image:TImage); Implementation Procedure Run; Var arr:array[1..200] of record x,y:integer; end; x, y, dx, dxl, dyl, Fmin, Fmax, i, mx, my:single; {масштабы} xm, ym, {размер области окна рисования} xs, ys:integer; {нижняя левая точка графика} s:string[10];

Слайд 74





Модуль Graphic (2)
Begin
    Image.Canvas.Pen.Color:=clGreen;
    Image.Canvas.Rectangle(x1,y1,x2,y2);  {рамка}
    xm:=x2-x1+1;  ym:=y2-y1+1;  {область графика}
    dx:=(xk-xn)/n;             {шаг просчета точек}
    x:=xn; y:=F(x);
    Fmin:=y; Fmax:=y;
    for i:=2 to n do   {табулируем функцию и }
      begin              {вычисляем max и min}
         x:=x+dx;      y:=F(x);
         if  y>Fmax then Fmax:=y;
         if  y<Fmin then Fmin:=y;
      end;
    xs:=40;  ys:=ym-xs; {координаты нижней левой точки}
    mx:=(xm-xs*2)/(xk-xn) ;   {масштабы по х и y}
    my:=(ym-xs*2)/(Fmax-Fmin);
Описание слайда:
Модуль Graphic (2) Begin Image.Canvas.Pen.Color:=clGreen; Image.Canvas.Rectangle(x1,y1,x2,y2); {рамка} xm:=x2-x1+1; ym:=y2-y1+1; {область графика} dx:=(xk-xn)/n; {шаг просчета точек} x:=xn; y:=F(x); Fmin:=y; Fmax:=y; for i:=2 to n do {табулируем функцию и } begin {вычисляем max и min} x:=x+dx; y:=F(x); if y>Fmax then Fmax:=y; if y<Fmin then Fmin:=y; end; xs:=40; ys:=ym-xs; {координаты нижней левой точки} mx:=(xm-xs*2)/(xk-xn) ; {масштабы по х и y} my:=(ym-xs*2)/(Fmax-Fmin);

Слайд 75





Модуль Graphic (3)
    Image.Canvas.Pen.Color:=clRed;
    Image.Canvas.Pen.Width:=3;
    x:=xn;
    for i:=1 to n do  {считаем координаты точек}
       begin
         arr[i].x:=round((x-xn)*mx)+x1+xs;
         arr[i].y:=round((Fmin-f(x))*my)+y1+ys;
         x:=x+dx;
       end;
    Image.Canvas.MoveTo(arr[1].x,arr[1].y);
    for i:=2 to n do {соединяем точки}
           Image.Canvas.LineTo(arr[i].x,arr[i].y);
Описание слайда:
Модуль Graphic (3) Image.Canvas.Pen.Color:=clRed; Image.Canvas.Pen.Width:=3; x:=xn; for i:=1 to n do {считаем координаты точек} begin arr[i].x:=round((x-xn)*mx)+x1+xs; arr[i].y:=round((Fmin-f(x))*my)+y1+ys; x:=x+dx; end; Image.Canvas.MoveTo(arr[1].x,arr[1].y); for i:=2 to n do {соединяем точки} Image.Canvas.LineTo(arr[i].x,arr[i].y);

Слайд 76





Модуль Graphic (4)
 	  x:=xn;
    dxl:=(xk-xn)/5;  {расстояние между линиями сетки}
    Image.Canvas.Pen.Width:=1;
    Image.Canvas.Pen.Color:=clBlue;
    repeat       {вертикальные линии сетки и подпись}
       Str(x:5:2,s);
       Image.Canvas.TextOut(round((x-xn)*mx)+x1+xs-13, 		 			     ys+y1+5,s);
       Image.Canvas.MoveTo(round((x-xn)*mx)+x1+xs,
						    ym+y1-xs);
       Image.Canvas.LineTo(round((x-xn)*mx)+x1+xs,
						    y1+xs);
       x:=x+dxl;
     until x>xk+0.00001;
Описание слайда:
Модуль Graphic (4) x:=xn; dxl:=(xk-xn)/5; {расстояние между линиями сетки} Image.Canvas.Pen.Width:=1; Image.Canvas.Pen.Color:=clBlue; repeat {вертикальные линии сетки и подпись} Str(x:5:2,s); Image.Canvas.TextOut(round((x-xn)*mx)+x1+xs-13, ys+y1+5,s); Image.Canvas.MoveTo(round((x-xn)*mx)+x1+xs, ym+y1-xs); Image.Canvas.LineTo(round((x-xn)*mx)+x1+xs, y1+xs); x:=x+dxl; until x>xk+0.00001;

Слайд 77





Модуль Graphic (5)
         y:=Fmin;
         dyl:=(fmax-fmin)/5;
         repeat {горизонтальные линии сетки и подпись}
            Str(y:5:2,s);
            Image.Canvas.TextOut(x1+5,
				      round(-(y-Fmin)*my)+ys+y1-6,s);
            Image.Canvas.MoveTo(x1+xs,
				      round(-(y-Fmin)*my)+y1+ys);
            Image.Canvas.LineTo(xm+x1-xs,
                        round(-(y-Fmin)*my)+y1+ys);
            y:=y+dyl;
         until y>Fmax+0.00001;
  end;
End.
Описание слайда:
Модуль Graphic (5) y:=Fmin; dyl:=(fmax-fmin)/5; repeat {горизонтальные линии сетки и подпись} Str(y:5:2,s); Image.Canvas.TextOut(x1+5, round(-(y-Fmin)*my)+ys+y1-6,s); Image.Canvas.MoveTo(x1+xs, round(-(y-Fmin)*my)+y1+ys); Image.Canvas.LineTo(xm+x1-xs, round(-(y-Fmin)*my)+y1+ys); y:=y+dyl; until y>Fmax+0.00001; end; End.

Слайд 78





Секция реализации модуля MainUnit
implementation
uses Graphic;
{$R *.dfm}
Function f(x:single):single; 
Begin   Result:=abs(0.64*sin(x*2));  End;

procedure TMainForm.FormActivate(Sender: TObject);
begin  Image.Canvas.Brush.Color:=clWhite; end;

procedure TMainForm.BeginButtonClick(Sender: TObject);
begin  Run(-0.9,0.9,100,f,0,0,400,300,Image);end;

procedure TMainForm.ExitButtonClick(Sender: TObject);
begin   Close;   end;

end.
Описание слайда:
Секция реализации модуля MainUnit implementation uses Graphic; {$R *.dfm} Function f(x:single):single; Begin Result:=abs(0.64*sin(x*2)); End; procedure TMainForm.FormActivate(Sender: TObject); begin Image.Canvas.Brush.Color:=clWhite; end; procedure TMainForm.BeginButtonClick(Sender: TObject); begin Run(-0.9,0.9,100,f,0,0,400,300,Image);end; procedure TMainForm.ExitButtonClick(Sender: TObject); begin Close; end; end.

Слайд 79





Примитивный графический редактор (Ex 8.5)
Описание слайда:
Примитивный графический редактор (Ex 8.5)

Слайд 80





Объектная декомпозиция
Описание слайда:
Объектная декомпозиция

Слайд 81





Диаграмма классов предметной области
Описание слайда:
Диаграмма классов предметной области

Слайд 82





Модуль Figure
Unit Figure;
 Interface
  Uses  extctrls,Graphics;
  Type TMyFigure=class
         public 
          x,y,Radius:Word;
          Color:TColor;
          Image:TImage;
          Procedure Draw; virtual; abstract;
          Рrocedure Clear;        
          Constructor Create(aImage:TImage;
					ax,ay,ar:Word;aColor:TColor);
        end;
Описание слайда:
Модуль Figure Unit Figure; Interface Uses extctrls,Graphics; Type TMyFigure=class public x,y,Radius:Word; Color:TColor; Image:TImage; Procedure Draw; virtual; abstract; Рrocedure Clear; Constructor Create(aImage:TImage; ax,ay,ar:Word;aColor:TColor); end;

Слайд 83





Модуль Figure (2)
 TMyCircle=class(TMyFigure) 
		public   Procedure Draw; override;  
 end;
 TMySquare=class(TMyFigure)
      public   Procedure Draw; override;   
 end;
Implementation
   Constructor TMyFigure.Create;
      Begin
            inherited Create;
            Image:=aImage;
            x:=ax;    y:=ay;
            Radius:=ar;   
			Color:=aColor;
            Draw;
      End;
Описание слайда:
Модуль Figure (2) TMyCircle=class(TMyFigure) public Procedure Draw; override; end; TMySquare=class(TMyFigure) public Procedure Draw; override; end; Implementation Constructor TMyFigure.Create; Begin inherited Create; Image:=aImage; x:=ax; y:=ay; Radius:=ar; Color:=aColor; Draw; End;

Слайд 84





Модуль Figure (3)
Procedure TMyFigure.Clear;
  Var TempColor:TColor;
  Begin     TempColor:=Color;
            Color:=Image.Canvas.Brush.Color;
            Draw;   
            Color:=TempColor;
  End;

Procedure TMyCircle.Draw;
  Begin     
      Image.Canvas.Pen.Color:=Color;
      Image.Canvas.Ellipse(x-Radius,y-Radius, 
					   x+Radius,y+Radius);
  End;
Описание слайда:
Модуль Figure (3) Procedure TMyFigure.Clear; Var TempColor:TColor; Begin TempColor:=Color; Color:=Image.Canvas.Brush.Color; Draw; Color:=TempColor; End; Procedure TMyCircle.Draw; Begin Image.Canvas.Pen.Color:=Color; Image.Canvas.Ellipse(x-Radius,y-Radius, x+Radius,y+Radius); End;

Слайд 85





Модуль Figure (4)

Procedure TMySquare.Draw;
  Begin     
     Image.Canvas.Pen.Color:=Color;
     Image.Canvas.Rectangle(x-Radius,y-Radius, 
					    x+Radius,y+Radius);
  End;
End.
Описание слайда:
Модуль Figure (4) Procedure TMySquare.Draw; Begin Image.Canvas.Pen.Color:=Color; Image.Canvas.Rectangle(x-Radius,y-Radius, x+Radius,y+Radius); End; End.

Слайд 86





Модуль Main
unit Main;
interface
uses  Windows,Messages,SysUtils,Variants,Classes,Graphics, Controls,Forms,Dialogs,ComCtrls, StdCtrls, ExtCtrls;
type
  TMainForm = class(TForm)
    Image: TImage;
    ColorButton: TButton;
    ExitButton: TButton;
    RadioGroup: TRadioGroup;
    rLabel: TLabel;
    rEdit: TEdit;
    UpDown: TUpDown;
    ColorDialog: TColorDialog;
Описание слайда:
Модуль Main unit Main; interface uses Windows,Messages,SysUtils,Variants,Classes,Graphics, Controls,Forms,Dialogs,ComCtrls, StdCtrls, ExtCtrls; type TMainForm = class(TForm) Image: TImage; ColorButton: TButton; ExitButton: TButton; RadioGroup: TRadioGroup; rLabel: TLabel; rEdit: TEdit; UpDown: TUpDown; ColorDialog: TColorDialog;

Слайд 87





Модуль Main (2)
	procedure FormActivate(Sender: TObject);
	procedure ImageMouseDown(Sender: TObject;… );
	procedure UpDownClick(Sender: TObject; …);
	procedure ColorButtonClick(Sender: TObject);
	procedure ExitButtonClick(Sender: TObject);
  end;
var MainForm: TMainForm;
implementation
uses Figure;
Var C:TMyFigure;
{$R *.dfm}
procedure TMainForm.FormActivate(Sender: TObject);
begin
    Image.Canvas.Brush.Color:=clWhite;
    Image.Canvas.Pen.Color:=clBlack;
end;
Описание слайда:
Модуль Main (2) procedure FormActivate(Sender: TObject); procedure ImageMouseDown(Sender: TObject;… ); procedure UpDownClick(Sender: TObject; …); procedure ColorButtonClick(Sender: TObject); procedure ExitButtonClick(Sender: TObject); end; var MainForm: TMainForm; implementation uses Figure; Var C:TMyFigure; {$R *.dfm} procedure TMainForm.FormActivate(Sender: TObject); begin Image.Canvas.Brush.Color:=clWhite; Image.Canvas.Pen.Color:=clBlack; end;

Слайд 88





Модуль Main (3)
procedure TMainForm.ImageMouseDown(Sender: TObject; Button:TMouseButton;Shift:TShiftState;X,Y:Integer);
begin
  if Button=mbLeft then
    case RadioGroup.ItemIndex of
    0: begin
        C.Free;
		  C:=TMyCircle.Create(Image,X,Y,
		    strtoint(rEdit.Text),Image.Canvas.Pen.Color);
       end;
    1: begin
        C.Free;
		  C:=TMySquare.Create(Image,X,Y,
          strtoint(rEdit.Text),Image.Canvas.Pen.Color);
       end;
    end;
end;
Описание слайда:
Модуль Main (3) procedure TMainForm.ImageMouseDown(Sender: TObject; Button:TMouseButton;Shift:TShiftState;X,Y:Integer); begin if Button=mbLeft then case RadioGroup.ItemIndex of 0: begin C.Free; C:=TMyCircle.Create(Image,X,Y, strtoint(rEdit.Text),Image.Canvas.Pen.Color); end; 1: begin C.Free; C:=TMySquare.Create(Image,X,Y, strtoint(rEdit.Text),Image.Canvas.Pen.Color); end; end; end;

Слайд 89





Модуль Main (4)
procedure TMainForm.UpDownClick(Sender:TObject; 						Button:TUDBtnType);
	begin
  		if C<>nil then
      begin C.Clear; 
            C.Radius:=strtoint(rEdit.Text); C.Draw; 
      end;
	end;
procedure TMainForm.ColorButtonClick(Sender: TObject);
	begin
  		if ColorDialog.Execute then   
         Image.Canvas.Pen.Color:=ColorDialog.Color;
  		if C<>nil then 
      begin C.Color:=Image.Canvas.Pen.Color;
            Clear; Draw;     end;
	end;
Описание слайда:
Модуль Main (4) procedure TMainForm.UpDownClick(Sender:TObject; Button:TUDBtnType); begin if C<>nil then begin C.Clear; C.Radius:=strtoint(rEdit.Text); C.Draw; end; end; procedure TMainForm.ColorButtonClick(Sender: TObject); begin if ColorDialog.Execute then Image.Canvas.Pen.Color:=ColorDialog.Color; if C<>nil then begin C.Color:=Image.Canvas.Pen.Color; Clear; Draw; end; end;

Слайд 90





Модуль Main (5)
procedure TMainForm.ExitButtonClick(Sender:TObject);
	begin   Close;  end;
initialization
finalization C.Free;

end.
Описание слайда:
Модуль Main (5) procedure TMainForm.ExitButtonClick(Sender:TObject); begin Close; end; initialization finalization C.Free; end.



Похожие презентации
Mypresentation.ru
Загрузить презентацию