- •Введение.
- •Консольные приложения.
- •Var I : integer;
- •Знакомство со средой программирования Delphi.
- •Создание теста с помощью функции MessageBox.
- •Var I:integer;
- •Var otv: array[1..12] of integer; m: array[1..12]of string; t,ball, I: integer;
- •Кнопка с рисунком. Создание формы для изменения иконки и стиля формы
- •Создание программы – простейший калькулятор.
- •Создание приложения для нахождения корней квадратного уравнения.
- •Создание инженерного калькулятора
- •If (Sender is tButton)
- •Изучение компонента Image и его свойств.
- •Создание приложений для решения математических задач.
- •Создание простейшего текстового редактора «Блокнот»
- •Создание приложения графический редактор.
- •If ssLeft in Shift then begin
- •И зучение графических возможностей Delphi при решении математических задач.
- •Работа со списками классов tListBox и tComboBox.
- •Механизм Drag-And-Drop – копирование и перенос объектов.
- •If Copy.Checked
- •If Cut.Checked
- •Изучение методов и свойств компонента ListBox с помощью Delphi Library Reference Help.
- •Изучение свойств и методов компонента класса tTabbedNotebook.
- •Создание приложения сезоны года с использованием оператора Case.
- •Создание приложения графический редактор – рисование от руки.
- •Initialization
- •Image1.Canvas.MoveTo (X, y);
- •Var NachPoint_Move, KonPoint_Move : tPoint;
- •If Clipboard.HasFormat(cf_bitmap) then
- •Image1.Canvas.Draw(0, 0, Bitmap);
- •Работа с базами данных в Delphi. Перемещение по записям при помощи кнопок.
- •Создание собственной структуры базы данных
- •Создание меню.
- •Создание заставки для проекта работы с окном формы.
- •Var Region: hrgn; //переменная описатель будущего региона, имеет тип hrgn
- •If IsMouseDown
- •Var Fr : tForm2;
- •Создание приложения для работы с базой данных ms Access.
- •Создание псевдонима базы данных FilesDb
- •Создание формы Form2 для просмотра данных запроса, созданного в программе ms Access.
- •Создание sql запросов.
- •Создание параметрических запросов:
- •Проектирование интерфейса приложения для работы с базой данных
- •Работа с типизированными файлами.
- •If OpenDialog1.Execute and fileExsist(OpenDialog1.Filename) then
- •If OpenDialog1.Execute then
- •Создание приложение Органайзер
- •Добавьте проект следующими возможностями:
- •Работа с компонентом StringGrid для создания электронных таблиц
- •If opendialog1.Execute then
- •Программирование графических тестов.
- •Создание программы – тест.
- •И спользование генератора случайных чисел при решении задач.
- •Создание проекта игры dxball.
- •If StartSharLog
- •If IntersectRect(r1, Doska.BoundsRect, Shar.BoundsRect)
- •Var r2 : tRect; r3 : tRect; I : integer;
- •If IntersectRect(r1, r2, r3)
- •Создание простых проектов.
- •Создание приложения Многооконный редактор
- •Создание интерфейса программы:
- •Var lDoc:tList; //объявление переменной типа tList – список, в котором буду храниться указатели на создаваемые пользователем формы документов
- •X, y: Integer);
- •If OpenDialog1.Execute then
- •If FontDialog1.Execute
- •If Left.Checked then
- •Закрепление полученных знаний по темам: графика, диалоги, меню, компоненты Delphi и их свойства
- •If SaveDialog1.Execute then image1.Picture.SaveToFile(savedialog1.FileName);
- •If OpenDialog1.Execute then image1.Picture.LoadfromFile(opendialog1.FileName);
- •Image1.Canvas.LineTo(X,y);
- •Image1.Canvas.MoveTo(X,y);
- •Создание приложение для шифрования данных методами Цезаря и Аффинной системой
- •1. Создание собственного класса.
- •Var I : integer;
- •Ish_text.Free;
- •Var I : byte;
- •Создание интерфейса программы:
- •Var sdvig,I, j, Index : integer;
- •Var I, j, Index, sdvig, a, b : integer;
- •Проверка знаний по теме: Создание программ в среде программирования Delphi
- •1 Задание.
- •Вопросы для самоконтроля.
- •Перечень основной и дополнительной литературы
ЦЕНТРОСОЮЗ РОССИЙСКОЙ ФЕДЕРАЦИИ
КАМЧАТСКИЙ ОБЛАСТНОЙ СОЮЗ ПОТРЕБИТЕЛЬСКИХ ОБЩЕСТВ
НЕГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
СРЕДНЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
Камчатский кооперативный техникум
КАФЕДРА ИНФОРМАЦИОННЫХ И ЕСТЕСТЕННОНАУЧНЫХ ДИСЦИПЛИН
ПРАКТИКУМ
«РАЗРАБОТКА ПРИЛОЖЕНИЙ В СРЕДЕ ПРОГРАММИРОВАНИЯ BORLAND DELPHI 7.0»
по дисциплине ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ цикла ОПД 08
(цикла ОГСЭ, ЕН, ОПД, СД, ТО.Р)
для специальности
230103 «Автоматизированные системы
обработки информации и управления»
(код и наименование специальностей)
Семестр IV
г. Петропавловск-Камчатский
2007 г.
Одобрено Кафедрой информационных и естественно-научных дисциплин Протокол № 2 от “13” ноября 2007 г. |
Заведующая кафедрой информационных и естественно-научных дисциплин
/ Цымбалюк Л.Н. |
Автор Цымбалюк Лариса Николаевна
Рецензент Гололобова Светлана Геннадьевна
Практикум “Разработка приложений в среде программирования Borland Delphi 7.0” предназначен для студентов специальности 230103 «Автоматизированные системы обработки информации и управления». Также он может быть полезен преподавателям учебной дисциплины «Основы алгоритмизации и программирования». В нём рассмотрены теоретические и практические вопросы по разработке приложений средствами Borland Delphi. Представленный материал знакомит читателя с основными приёмами для создания различных приложений: Калькулятор (простой, инженерный), Текстовый редактор (простейший, многооконный), Графический редактор (для рисования различных геометрических фигур по указанным координатам или от руки), Программы для тестирования (графический тест, тест с помощью функции MessageBox), Игры (например, DXBall), программы Органайзер и др.
Для успешного усвоения дисциплины студенты должны обладать базовыми навыками работы в операционной системе Windows. Желательно знание языка Pascal.
Студенты, завершившие изучение данной дисциплины, должны
знать: язык Delphi, основные компоненты среды Delphi, принципы объектно-ориентированного программирования;
уметь: реализовывать алгоритмы на языке Delphi, разрабатывать Windows приложения.
СОДЕРЖАНИЕ:
Введение. 7
Задание №1. Консольные приложения. 13
Задание №2. Знакомство со средой программирования Delphi. 15
Задание №3. Создание теста с помощью функции MessageBox. 16
Задание №4. Кнопка с рисунком. Создание формы для изменения иконки и стиля формы 18
Задание №5. Создание программы – простейший калькулятор. 19
Задание №6. Создание приложения для нахождения корней квадратного уравнения. 20
Задание №7. Создание инженерного калькулятора 21
Задание №8. Изучение компонента Image и его свойств. 22
Задание №9. Создание приложений для решения математических задач. 23
Задание №10. Создание простейшего текстового редактора «Блокнот» 24
Задание №11. Создание приложения ГРАФИЧЕСКИЙ РЕДАКТОР. 25
Задание №12. Изучение графических возможностей Delphi при решении математических задач. 28
Задание №13. Работа со списками классов TListBox и TComboBox. 28
Задание №14. Механизм Drag-And-Drop – копирование и перенос объектов. 31
Задание №15. Изучение методов и свойств компонента ListBox с помощью Delphi Library Reference Help. 32
Задание №16. Изучение свойств и методов компонента класса TTabbedNotebook. 33
Задание №17. Создание приложения СЕЗОНЫ ГОДА с использованием оператора Case. 34
Задание №18. Создание приложения ГРАФИЧЕСКИЙ РЕДАКТОР – рисование от руки. 35
Задание №19. Работа с базами данных в Delphi. Перемещение по записям при помощи кнопок. 38
Задание №20. Создание собственной структуры базы данных 41
Задание №21. Создание заставки для проекта работы с окном формы. 42
Задание №22. Создание приложения для работы с базой данных MS Access. 44
Задание №23. Проектирование интерфейса приложения для работы с базой данных 46
Задание №24. Работа с типизированными файлами. 47
Задание №25. Создание приложение Органайзер 50
Задание №26. Работа с компонентом StringGrid для создания электронных таблиц 53
Задание №27. Программирование графических тестов. 54
Задание №28. Создание программы – тест. 56
Задание №29. Использование генератора случайных чисел при решении задач. 58
Задание №30. Создание проекта игры DXBALL. 59
Задание №31. Создание простых проектов. 61
Задание №32. Создание приложения Многооконный редактор 62
Задание №33. Закрепление полученных знаний по темам: графика, диалоги, меню, компоненты Delphi и их свойства 66
Задание №34. Создание приложение для шифрования данных методами Цезаря и Аффинной системой 68
Задание №35. Проверка знаний по теме: Создание программ в среде программирования Delphi 72
ВОПРОСЫ для самоконтроля. 73
Перечень основной и дополнительной литературы 74
Введение.
Delphi – это система визуального объектно-ориентированного программирования, имеющая две характерные особенности: создаваемые ею программы являются кросс-платформенными, а сама она относится к классу инструментальных средств ускоренной разработки программ (Rapid Application Development, RAD).
Объектно-ориентированное программирование (ООП) основано на объектах. Объект – это фрагмент кода, который обеспечивает выполнения некоторых операций, объединяет переменные и методы управления ими. Любое приложение состоит из объектов. ООП основано так же на событиях. Приложение взаимодействует с ОС, отслеживая возникающие в нем события, и реагирует на необходимые события. Внутри приложения объекты так же взаимодействуют друг с другом, генерируя события и реагируя на них. Объект - это сложная структура, свойства и поведение составных частей которого находятся во взаимодействии.
Для обеспечения надежности нежелателен прямой доступ к полям объекта: чтение и обновление их содержимого должно производиться посредством вызова соответствующих методов. Это правило и называется инкапсуляцией. Достоинство инкапсуляции включает модульность кода и изоляцию разных объектов.
Наследование. Если надо создать новый класс, лишь немного отличающейся от старого, то совершенно нет необходимости в переписывании заново уже существующих полей, свойств и методов, достаточно объявить, что новый класс является потомком или дочерним классом от старого, который называется предком или родительским классом и добавляются туда новые поля, методы и свойства. В Object Pascal все классы являются потомками от класса TObject.
Полиморфизм – это технология, которая позволяет родительский объект установить равным одному или более дочерним объектам. Полиморфизм – это применение одних и тех же методов у разных потомков. Вызов переменной объекта будет приводить к вызову кода, соответствующему конкретному экземпляру объекта, хранящемуся в переменной. Объекту, как экземпляр указателя объектного типа может быть присвоен адрес любого экземпляра любого из дочерних типов.
Поля – это данные, уникальные для каждого создаваемого в программе экземпляра класса.
Свойство – это поле, доступное для чтения и записи через соответствующие методы. Свойство описывается как поле, но впереди ставиться буква f.
Класс – это набор правил, которые описывают, как строить объект. Процедуры и функции класса называются методами. Объявления класса всегда начинается с буквы T. Данный тип называется объектным типом.
Компонент – это объект, который создается во время разработки программы (умеет себя строить сам).
Событие – это воздействие пользователя, аппаратуры или иных программ на объект.
Форма – объект (даже компонент) класса TForm. Форма обладает: свойствами, например, Caption – заголовок, методами, например, Activate, Paint …; событиями, например, OnClose, OnCreate, OnActivate, OnClick.
Проекты
Проект – это набор файлов, из которых состоит создаваемое приложение.
|
Название |
Назначение |
Dpr |
Файл проекта |
Хранит информацию обо всем проекте |
Pas |
Модуль |
Хранит в себе программный код |
Dfm |
Файл форм |
Бинарный список свойств для всех компонентов, входящих в форму |
Dof |
Файл опций |
Устанавливает значения опций компилятора |
Res |
Файл ресурсов |
Хранит ресурсы проекта |
Структура проекта:
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1};
{$R *.RES}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
Модули - это программные единицы, предназначенные для размещений фрагментов программ. Следующий фрагмент программы является синтаксически правильным вариантом модуля:
unit Unit1;
interface // Секция интерфейсных объявлений
implementation // Секция реализации
end.
IDE – (Integrated Development Environment) интегрированная среда разработчика.
Составляющие:
Главное окно (панель быстрого доступа и палитра компонентов)
Инспектор объектов (для отображения свойств и событий)
Форма (для визуализации приложения)
Редактор (для написания кода)
Некоторые команды главного меню
Меню |
Опция |
Назначение |
File |
New |
Отображает диалоговую панель NewItems, которая позволяет выбрать тип создаваемого объекта. |
NewApplication |
Создает новый проект |
|
NewForm |
Создает новую форму |
|
Open |
Открывает файл |
|
Reopen |
Повторное открытие |
|
Save |
Сохраняет текущий файл с заранее заданным именем |
|
Save As |
Сохраняет текущий файл с новым именем |
|
Save Project As |
Сохраняет текущий проект с новым именем |
|
Save All |
Сохраняет все файлы проекта |
|
Close |
Закрывает текущий файл |
|
Close All |
Закрывает все файлы проекта |
|
Exit |
Выход |
|
Edit |
Cut |
Вырезает выделенную часть теста |
Copy |
Копирует выделенную часть теста |
|
Paste |
Вставляет выделенную часть теста |
|
Delete |
Удаляет выделенную часть теста |
|
View |
Form |
Показывает список форм проекта |
Unit |
Показывает список модулей проекта |
|
Project |
Compile |
Компилирует модули проекта |
Run |
Run |
Запускает приложение на выполнение |
Step Over |
Пошаговое выполнение программы |
|
Trace Into |
Пошаговое выполнение программы, с заходом в подпрограммы |
|
Program Reset |
Завершает выполнение программы |
Полоса быстрого доступа содержит кнопки функций наиболее часто используемых программ главного меню.
Палитра компонентов позволяет выбрать компоненты, которые будут присутствовать в приложении.
Типы данных это специальные конструкции языка, которые рассматриваются компилятором как образцы для создания других элементов программы, таких как переменные, константы и функции.
К основным типам данных языка Delphi относятся:
• целые числа (integer);
• дробные числа (real);
• символы (char);
• строки (string);
• логический тип (boolean).
Целые числа точкой могут быть представлены в различных форматах.
Числа с плавающей точкой также могут быть представлены в различных форматах.
Массивы. Отличительная особенность массивов заключается в том, что все их компоненты по сути данные одного типа. Эти компоненты можно легко упорядочить и обеспечить доступ к любому из них простым указанием его порядкового номера. Описание типа массива задается следующим образом:
<имя типа> = array [ <сп.инд.типов> ] of <тип>; Например, a,b: array [1..10] of Real;
Инструкции выбора: if-then-else и case.
1. if Условие then begin {инструкции, которые выполняются, если условие истинно} end else begin {Инструкции, которые выполняются, если условие ложно} end ;
Примечание: если между begin и end находится только одна инструкция, то слова begin и end можно не писать.
2. case Выражение of Список1_Констант: begin { инструкции } end; Список2_Констант: begin { инструкции } end; СписокJ_Констант: begin { инструкции } end; end;
Циклы. Инструкция for
for Счетчик:=НачальноеЗначение to КонечноеЗначение do begin { инструкции } end;
Средства отладки в Delphi.
Даже при написании простых программ могут возникнуть ошибки, связанные с неверным алгоритмом, зацикливанием и т.д. Возникает ситуация, когда необходимо отслеживать состояние переменных в течение последовательного выполнения программных строк и их корректировка, т.е. программу надо протестировать (определить наличие ошибок) и отладить (найти и исправить найденные ошибки).
Таблица режимов отладки в Delphi:
Пункт меню |
Клавиша |
Действие |
RunRun |
F9 |
Запускает приложение в обычном режиме. В основном используется для выполнения программы до определенного места (точки останова – breakpoint). |
RunStep Over |
F8 |
Пошаговое выполнение программы без захода в подпрограммы. Используется для проверки правильности работы процедуры или функции без захода в нее. |
RunTrace Into |
F7 |
Пошаговое выполнение программы с заходом в подпрограммы. Далее отладка будет производиться с первой строки текущей подпрограммы. |
RunRun to Cursor |
F4 |
Выполнение программы до строки, на которой стоит курсор в текстовом редакторе. Используется для отладки программы, начиная со строк, в которой вероятнее всего находится ошибка. |
RunShow Execution Point |
- |
Доступна только во время отладки программы. Открывает строку редактора и показывает местоположение выполняемой в настоящий момент строки. |
RunProgram Pause |
- |
Доступна только во время выполнения приложения. Останавливает выполнение программы. |
RunProgram Reset |
Ctrl-F2 |
Доступна только во время выполнения приложения. Прекращает выполнение программы и возвращает в среду разработчика. |
Точка останова.
Используется для отладки программы, начиная с определенного места. Поместить ее в редактор можно следующими способами:
нажать левую клавишу мыши в левой части редактора
нажать клавишу F5 в текущей строке
выбрать пункт главного меню RunAdd BreakpointSource Breakpoint… указать номер строки, где будет располагаться точка останова.
Просмотреть значения переменных можно в сплывающей подсказке при наведении на них мыши или в окне редактора Watch .
Просмотр значений в поле Watch.
Окно просмотра значений переменных или их арифметических выражений. Вызывается следующим образом: из главного меню RunAdd Watch или комбинацией клавиш Ctrl-F5.
Таблица "горячих" клавиш редактора
Комбинация клавиш |
Действие |
Shift+Ctrl+C |
Автоматическое заполнение данными (создание метода, описание свойства и т. д.) в секции implementation (interface). |
Shift+Ctrl+ |
Быстрый поиск метода (свойства, поля и т.д.) в секции interface . |
Shift+Ctrl+ |
Быстрый поиск метода (свойства, поля и т.д.) в секции implementation . |
Shift+Ctrl+ |
Выделяет вправо слово или его часть в зависимости от положения курсора. |
Shift+Ctrl+ |
Выделяет влево слово или его часть в зависимости от положения курсора. |
Ctrl+лев. кн. мыши |
Переходит в секцию interface для данного метода (свойства и т. д.), или открывает нажатый модуля. |
Ctrl+J |
Всплывающий список шаблонов процедур, функций, массивов, стандартных операторов, констант и т. д. |
Ctrl+C |
Копирует выделенную часть текста. |
Ctrl+X |
Вырезает выделенную часть текста.. |
Ctrl+V |
Вставляет текст из буфера. |
Ctrl+Z |
Отменяет предыдущие действие. |
Shift+Ctrl+Z |
Выполняет отмененное действие. |
Del |
Удаляет выделенный текст. |
Shift+End |
Выделяет строку, от места положения курсора. |
Shirt+ |
Выделяет строку, от места положения курсора (курсор переходит на верхнюю строку). |
Shift+ |
Выделяет строку, от места положения курсора (курсор переходит на верхнюю строку). |
Alt+F4 |
Закрывает текущий модуль. |
Ctrl+S |
Сохраняет изменения в коде. |
Alt+G |
Переходит на введенный номер строки. |
Ctrl+F |
Находит введенный фрагмент текста. |
Ctrl+Y |
Удаляет строку на которой расположен курсор. |
Ctrl+пробел |
Всплывающий список классов, объектов, методов, свойств и т. д. |
Ctrl+ |
Переход курсора на слово правее данного. |
Ctrl+ |
Переход курсора на слово левее данного. |