по практическим работам

advertisement
Министерство образования и науки Челябинской области
Государственное бюджетное образовательное учреждение
среднего профессионального образования
(среднее специальное учебное заведение)
«Южно-Уральский государственный технический колледж»
Методические рекомендации
по выполнению практических работ
по дисциплине
«Предметно-ориентированное программное обеспечение»
для студентов специальности 09.02.05 (230701)
Прикладная информатика (по отраслям)
Автор:
Лукьянова Ирина Николаевна,
преподаватель информационных дисциплин,
высшая квалификационная категория
Челябинск, 2014
СОДЕРЖАНИЕ
Содержание .............................................................................................................. 2
Пояснительная записка ........................................................................................... 3
Критерии оценки выполнения практических работ и оформления отчетов по
практическим работам ............................................................................................ 6
Перечень практических работ ................................................................................ 8
Единые требования к выполнению практических работ .................................... 9
Практическая работа № 1. Тема: Создание рабочих приложений ..................... 9
Практическая работа № 2. Тема: Создание главного меню программы ......... 11
Практическая работа № 3. Тема: Создание рабочих окон ................................ 13
Практическая работа № 4. Тема: Редактор коды ............................................... 15
Практическая работа № 5. Тема: Основные приемы кодинга .......................... 17
Практическая работа № 6. Тема: Палитра компонентов Standard ................... 20
Практическая работа № 7. Тема: Многострочное поле ввода Memo .............. 22
Практическая работа № 8. Тема: Группа компонентов RadioButton ............... 25
Практическая работа № 9. Тема: Полоса разделения ........................................ 28
Практическая работа № 10. Тема: Компоненты - украшения ......................... 31
Практическая работа № 11. Тема: Панель с полосами прокрутки ................... 34
Практическая работа № 12 - 15. Тема: Палитра компонентов MainMenu.
Компонент MainMenu. Палитра компонентов ImageList. Компонент
ImageList ................................................................................................................. 37
Практическая работа № 16 -18. Тема: Дочернее окно. Дочерняя форма.
Дочерний компонент............................................................................................. 41
Практическая работа № 19 -22. Тема: Создание подчиненных форм ........... 44
Практическая работа № 23 -26. Тема: Изучение свойств кнопок .................... 48
Практическая работа № 27 – 30. Тема: Связь дочерних,
подчиненных и немодальных окон. Обработчик события OnClose ............... 52
Отчеты по практическим работам ....................................................................... 71
2
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
Методические рекомендации по выполнению практических работ по
учебной дисциплине «Предметно-ориентированное программное обеспечение»
предназначены для обучающихся по специальности 080802 Прикладная
информатика (по отраслям).
Практические занятия являются важным элементом учебной дисциплины.
В процессе выполнения практических работ обучающиеся систематизируют и
закрепляют полученные теоретические знания, развивают интеллектуальные и
профессиональные умения будущих специалистов.
Методические рекомендации предназначены для организации выполнения
практических работ по учебной дисциплине «Предметно-ориентированное
программное обеспечение».
Программой
учебной
дисциплины
«Предметно-ориентированное
программное обеспечение» предусмотрено выполнение 30 практических работ,
направленных:
на формирование представлений:
- о роли и месте знаний по этой дисциплине при освоении смежных
дисциплин по выбранной специальности и в сфере профессиональной
деятельности;
на формирование знаний:
- стратегию проектирования,
- состав и структуру предметно ориентированного обеспечения;
- управляющие, обслуживающие и обрабатывающие модули;
- информационные базы;
- интегрированную среду разработки для Windows;
- автономные
средства
для
разработки,
ведения
многофайловых приложений для Windows;
- виды различных интерфейсов;
- методы структурного нисходящего программирования;
3
и
организации
- структуры, объединения, массивы;
- создание и использование символьных строк;
- методы динамического распределения памяти;
- выполнение чтения и записи файлов на диск;
- объектно-ориентированные инструменты для создания новых типов
данных;
- использование наследования для создания новых классов при объектноориентированном программировании;
обобщение, систематизацию, углубление и закрепление знаний:
- разрабатывать интерфейсы программных продуктов;
- описывать типы данных;
- создавать управляющие, обслуживающие и обрабатывающие модули;
- использовать информационные базы;
- использовать компоненты для создания приложений;
- использовать нисходящий метод для решения больших проблем путем
разбивки их на более мелкие;
- объявлять массивы (многомерные массивы);
- объявлять указатели;
- с помощью указателя адресовать структуру;
- работать с файловыми потоками прямого и последовательного доступа;
- использовать объектно-ориентированное программирование для создания
новых классов из уже существующих классов;
- создавать массивы объектов классов;
- создавать, удалять динамические массивы объектов класса.
Описание каждой практической работы содержит номер, название и цель
работы, формируемые в процессе выполнения работы знания и умения,
теоретическое изложение необходимого материала (при необходимости
примеры выполнения заданий), варианты заданий, описание алгоритма
4
выполнения работы и контрольные вопросы (с целью выявить и устранить
недочеты в освоении материала).
Для получения дополнительной, более подробной информации по
основным вопросам учебной дисциплины в конце методических рекомендаций
приведен перечень информационных источников.
Для
проведения
практической
работы
требуется
компьютер
и
программное обеспечение – Borland Delphi for Microsoft Windows, MS Access
2007, MS Word 2007 и MS Excel 2007 (для создания отчетов по практическим
работам).
Отчеты студентов по практическим работам должны содержать номер,
название и цель работы, выполненные задания и их результаты, ответы на
контрольные вопросы и выводы по проделанной работе.
Требования к оформлению отчета по практическим работам
– Отчет по практическим работам создается в текстовом редакторе
единым файлом – многостраничным документом;
– Титульный
лист
должен
быть
оформлен
в
соответствии
с
приложением 1.
– Поля страницы документа: левое 2 см, все остальные по 1 см;
– Использовать шрифт Times New Roman, 14 пт., интервал между
строками множитель 1,15;
– В
отчет
вставляются
скриншоты
–
наглядное
подтверждение
выполненных действий практической работы;
– В конце каждой практической работы делается вывод.
– Если практическая задача является сквозной в течение нескольких
занятий, то отчет делается на последнем этапе ее решения.
5
Критерии оценки выполнения практических работ и оформления отчетов по
практическим работам
№
п/п
Оцениваем
ые умения
Метод
оценки
отлично
хорошо
Критерии оценки
удовлетворите
льно
неудовлетворит
ельно
1
Отношени
е к работе
Работа
Студент
не
Наблюден Работа
ие
за выполнена в выполнена в рассчитал
срок
время,
выполнен срок
необходимое
ием
для выполнения
работы,
работы
просмотр
материало
в
Требует
постоянного
внимания,
демонстрирует
полное
безразличие
к
работе, работа не
выполнена в срок
2
Умение
использоват
ь
полученные
знания
и
навыки для
решения
конкретных
задач
Наблюдени
е
преподават
еля
С
дополнительны
ми пояснениями
использует
знания
и
умения,
полученные при
изучении
смежных
дисциплин
Не
способен
использовать
знания и умения
из
смежных
дисциплин
3
Уровень
усвоения
учебного
материала
Проверка
работы
Ответы
не
соответствуют
вопросам,
не
умеет
пользоваться
компьютерной
терминологией
4
Использова
ние
вычислител
ьной
техники
Наблюдени
е
преподават
еля
Студент
неуверенно
отвечает
на
некоторые
вопросы,
не
всегда
использует
компьютерную
терминологию,
не
владеет
основными
понятиями
Неуверенно
работает на ПК,
соблюдает
не
все правила и
приемы работы,
правила ТБ и
эксплуатации
ПК
5
Объем
работ
Наблюдени
е
преподават
еля,
проверка
работы
50-74%
выполненных
заданий
Менее 50%
выполненных
заданий
Без
дополнитель
ных
пояснений
использует
знания
и
умения,
полученные
при
изучении
смежных
дисциплин
Студент
правильно
отвечает на
вопросы,
умело
использует
компьютерн
ую
терминологи
ю, владеет
основными
понятиями
Грамотно
работает на
ПК,
соблюдает
все правила
и
приемы
работы,
правила ТБ
и
эксплуатаци
и ПК
90-100%
выполненны
х заданий
Без
дополнитель
ных
пояснений
использует
знания
и
умения,
полученные
при
изучении
смежных
дисциплин
Студент
правильно
отвечает на
вопросы,
умело
использует
компьютерн
ую
терминологи
ю, владеет
основными
понятиями
Грамотно
работает на
ПК,
соблюдает
все правила
и
приемы
работы,
правила ТБ
и
эксплуатаци
и ПК
75-89%
выполненны
х заданий
6
Не способен без
помощи
преподавателя
выполнять
основные
операции на ПК
7
ПЕРЕЧЕНЬ ПРАКТИЧЕСКИХ РАБОТ
№
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
Наименование работы
Создание рабочих приложений
Создание главного меню программы
Создание рабочих окон
Редактор коды
Основные приемы кодинга
Палитра компонентов Standard
Многострочное поле ввода Memo
Группа компонентов RadioButton
Полоса разделения
Компоненты - украшения
Панель с полосами прокрутки
Палитра компонентов MainMenu
Компонент MainMenu
Палитра компонентов ImageList
Компонент ImageList
Дочернее окно
Дочерняя форма
Дочерний компонент
Создание подчиненных форм
Создание подчиненных форм
Создание подчиненных форм
Создание подчиненных форм
Изучение свойств кнопок
Изучение свойств кнопок
Изучение свойств кнопок
Изучение свойств кнопок
Связь дочерних, подчиненных и немодальных окон
Связь дочерних, подчиненных и немодальных окон
Обработчик события OnClose
Обработчик события OnClose
8
Количество
часов
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
Единые требования к выполнению практических работ
ВНИМАНИЕ! На своем диске создайте папку ПОПО и вложенную папку
Практика №1. (Для каждой практической работы необходимо создавать папку
с номером практики Практика № N). Все созданные файлы практической
работы сохраняйте в папку с номером практики во вложенных папках с именем
проекта или с номером задачи.
Создавая приложения, сохраняйте свои проекты в отдельные папки,
выполняйте компиляцию проекта. Требования к проектам: заголовок формы,
оформление интерфейса. В конце работы необходимо представить рабочие
проекты с программными модулями и отчет по практической работе.
Практическая работа № 1
Тема: Создание рабочих приложений
Цель работы:
 освоить приемы работы по созданию приложений;
 освоить приемы работы по созданию объектов в режиме Run-Time и
Design-time.
знания (актуализация):
– алгоритм работы и основные принципы объектно-ориентированного
программирования;
– понятие и технология создания класса компонента;
умения:
– создать класс компонентов;
– создать рабочее приложение.
Теоретический материал:
Имя: T_название класса компонентов;
begin
Имя:= T_название класса компонентов.Create (Form1); //Определяем «хозяина»
Имя.Parent:=self;
//Определяем визуального родителя
…
//Задаем характеристики объекта
Имя.On_процедура:=имя_процедуры;
//процедура
var
9
Ход работы:
1. В режиме Run – time создайте на форме кнопку, метку и текстовое поле. На
кнопку создайте процедуру, в которой выполняется смена цвета формы и
выход сообщения в метку. В сообщении должно появляться приветствие,
обращенное к введенному тексту в текстовое поле.
2. Создайте в режиме Run – time в процедуре по нажатию кнопки объект
текстовое поле и метку (установите разрешение ввода 1 символа в текстовое
поле). Затем создайте процедуру по вводу в текстовое поле символа, чтобы в
метке появлялся его код k:=ord('*') – функция получения кода любого
символа.
3. Создайте в режиме Run – time на форме 5 меток и разместите в них числа:
1, 12, 123, 1234, 12345. Усовершенствуйте проект, добавив в него
возможность определения количества цифр числа при щелчке на метке
(можно работать со счетчиком с преобразованием в строковые
переменные и сложение текстовой информации или со свойством Tag).
4. Создайте на форме несколько разнообразных компонентов в режиме Disign-
time, среди которых пусть будет 2-3 метки. Пусть при щелчке на некоторой
кнопке, происходит перемещение только этих меток вправо на 30 pt и
происходит смена цвета в метках случайным образом.
Оформите и сдайте отчет преподавателю.
Для отчета
1. Укажите используемые в работе типы переменных и их значение.
2. Представьте скриншот задачи №1 (в запуске).
3. Представьте код задачи №3 (метки с 1, 12, ..., 12345).
Вывод:
10
Практическая работа № 2
Тема: Создание главного меню программы
Цель работы:
– освоить приемы работы по созданию главного меню.
знания (актуализация):
– понятие интерфейса и его виды;
– технология работы создания меню;
умения:
– создать меню приложения.
Теоретический материал:
Для создания главного меню используется компонент MainMenu, а для создания
контекстного меню используется компонент PopupMenu
из стандартной палитры
компонентов.
Ход работы:
1. Представьте проект таблицы умножения на 5. В проекте создайте главное
меню приложения и реализуйте программный код на команды меню.
Выполняя работу, следуйте следующим шагам:
- Создайте на форме главное меню по образцу:
Показать таблицу
на 5
на ….
__________________ (нажмите -)
Закрыть (ShortCut – [F10])
Сброс
Нечет
Выход
- Составьте программный код – закрытия формы на
соответствующие команды меню;
- На команду меню «Показать таблицу – на 5»
создайте на форме 10 текстовых полей и разместите в
них таблицу умножения на 5.
- На команду «Сброс» создайте возможность очистки
11
всех текстовых полей;
- На команду меню «Показать таблицу – на ….» добавьте возможность
выбора числа (от 1 до 10) и вывода соответствующего вывода таблицы
умножения на данное число;
- На команду меню «Нечет» добавьте проверку значения текстовых полей.
Если это значение нечетное, то такое текстовое поле становится невидимым.
2. В режиме Run – time на кнопку, используя класс меток,
нарисуйте
на
форме
10
разноцветных
полосок
и
расположите их по вертикали. Создайте процедуру щелчок
по метке, в которой выполняется действие: в данной метке
появляется слово «ПРИВЕТ», а если оно уже находится в
метке, то если на метку еще раз щелкнуть, то слово
пропадает. В процедуре два щелчка на перовой метке создайте в режиме
запуска вторую форму черного цвета, на которой 10 полосок, с
использованием прямоугольников (Tshape). Пусть прямоугольники будут
все белого цвета, чтобы получилась своеобразная «пешеходная дорожка».
Оформите и сдайте отчет преподавателю.
Для отчета
1. Раскрыть понятие интерфейса.
2. Раскрыть понятие главного меню.
3. Представьте код создания массива 10 меток:
4. Представьте скриншот задач:
Вывод:
12
Практическая работа № 3
Тема: Создание рабочих окон
Цель работы:
– освоить
технологию
работы
с
базовыми
алгоритмическими
конструкциями, создавать рабочие окна проектов.
знания (актуализация):
– функции преобразования переменных и функцию случайного числа;
– логические операции и оператор ветвления;
– циклические конструкции;
умения:
– определение количественных характеристик по условию задачи;
– создать рабочее окно.
Теоретический материал:
Условные операторы позволяют выбирать для выполнения те или иные части программы
в зависимости от некоторых условий.
Синтаксис полного ветвления:
if B then S1 else S2
Синтаксис неполного ветвления:
if B then S
Ход работы:
1. Создайте рабочее окно – проект «Флажки»
- Создайте на форме класс 10 флажков и подпишите
их случайными числами от -15 до 20.
- Определите количество включенных флажков.
- Определите количество четных и нечетных чисел
среди включенных флажков.
- Самостоятельно создайте главное меню приложения.
2. Создайте рабочее окно – проект «Зоопарк». Демонстрация зверя и птицы.
Все компоненты проекта создайте в режиме Run-Time, определите
процедуры:
13
Оформите и сдайте отчет преподавателю.
Для отчета
1. Назначение функций: IntToStr, StrToFloat:
2. Функция случайного числа;
3. Представьте код создания массива 10 флажков:
4. Представьте скриншот задач – Флажки и Зоопарк:
Вывод:
14
Практическая работа № 4
Тема: Редактор коды
Цель работы:
– освоить
технологию
создания
тест
–
проекта
и
выполнить
редактирование программного кода.
знания (актуализация):
– структуры программы;
– модуль Math;
умения:
– редактирования сложного ветвления;
– создать тест проект.
Теоретический материал:
Массив — это пронумерованная последовательность величин одинакового типа,
обозначаемая одним именем. Элементы массива располагаются в последовательных ячейках
памяти, обозначаются именем массива и индексом.
Массив описывается так:
имя массива : Array [тип индекса] Of базовый тип;
prr:Array [1..10] of TEdit; //описание массива класса текстовых полей
Ход работы:
1. Разработайте проект «Тестирования таблицы умножения». Тестируемый
решает случайно созданных 10 примеров на таблицу умножения. Вводит
ответы и получает оценку с пометками, какие примеры были решены
правильно, а какие решены не верно. Оценка 5 ставится за 10-9 верно
решенных примеров, оценка 4 ставится за 8-7 верно решенных примеров,
оценка 3 ставится за 5-6 верно решенных примеров, в других случаях –
ставится 2.
2. Выполните оформление проекта.
Рекомендации:
15
Начальное
формы
представление
Главное меню
Команда “Выход” – закрытие
проекта;
Команда
“Новый”
–
обновляет набор примеров и
очищает текстовые поля;
Кнопка “Показать” примеры
исчезает,
размер
форма
и
на
меняет
обозрение
пользователя
предлагаются
10
на
пример
таблицу
умножения двух случайных
чисел от 1 до 9
Кнопка
показывает
тестирования.
Оформите и сдайте отчет преподавателю.
Для отчета
1. Программный код присвоить в метку текст «Я, студент!!»:
2. Представьте скриншот задачи и ее код – «тестирования таблицы
умножения» (с оценкой):
Вывод:
16
“Проверим”
результат
Практическая работа № 5
Тема: Основные приемы кодинга
Цель работы:
– освоить
технологию
создания
массива
класса
объекта
Image
(демонстрация, увеличение размера картинки) и выполнить редактирование
программного кода.
знания (актуализация):
– форматы графических файлов;
– модуль JPEG;
умения:
– редактирования циклического программного кода;
– создать рабочий проект.
Теоретический материал:
В программировании блоки кода, которые требуется повторять не единожды,
оборачиваются в специальные конструкции – циклы. У циклов выделяют
заголовок и тело. Заголовок определяет, до каких пор или сколько раз тело
цикла будет выполняться. Тело содержит выражения, которые выполняются,
если в заголовке цикла выражение вернуло логическую истину (True, не ноль).
После того как достигнута последняя инструкция тела, поток выполнения снова
возвращается к заголовку цикла. Снова проверяется условие выполнения цикла.
В зависимости от результата тело цикла либо повторяется, либо поток
выполнения переходит к следующему выражению после всего цикла.
Ход работы:
1. Создайте рабочее окно – проект «Картинка на загрузку формы». Выполните
разбор программного кода и пропишите комментарии.
var Image:TImage;
implementation
{$R *.dfm}
procedure
TForm1.FormCreate(Sender:
TObject);
begin
image:=TImage.Create(Form1);
17
image.parent:=Form1;
Image.Height:=Form1.ClientHeight;
Image.Width:=Form1.ClientWidth;
Image.Stretch:=True;
image.picture.loadfromfile('001.jpg');
end;
procedure TForm1.FormPaint(Sender: TObject);
begin
Image.Height:=Form1.Height;
Image.Width:=Form1.Width;
end;
end.
2. Создайте рабочее окно – проект «Рисунки»
- Подключите модуль JPEG.
- В режиме Run-Time создайте на форме 8 рисунков небольшого размера
(создайте массив класса из 8 объектов Image).
- Пронумеруйте рисунки (создайте массив 8 меток).
- Сделайте так, чтобы при щелчке на области рисунка, его размеры
становились бы больше, а следующий щелчок возвращал бы все на свои места
(определите событие, создайте процедуры).
18
- Оформите форму проекта.
Оформите и сдайте отчет преподавателю.
Для отчета
1. Представьте код создания массива 8 графических изображений:
2. Представьте скриншот задачи – Рисунки.
Вывод:
19
Практическая работа № 6
Тема: Палитра компонентов Standard
Цель работы:
– освоить работу по созданию рабочие проекты с использованием
стандартных компонентов.
знания (актуализация):
– стандартные компоненты, их свойства и назначение;
умения:
– реализовать соотношения и соответствие выбранных компонентов;
– создать рабочий проект.
Теоретический материал:
Все компоненты формы хранятся в ее свойстве Components в виде
массива
(Components[ i ] по умолчанию массив организуется
самостоятельно).
Количество этих компонентов хранится в свойстве ComponentCount
(нумеруются с 0).
// запрет ввода текста на клавиатуре в процедуру OnKeyPress
If not (key in ['0'..'9',#8,',','-']) then
key:=#0;
//функция преобразования даты в строку (в текст)
DateToStr(Date);
Ход работы:
1. Создайте приложение – проект «Заказ в кафе»
- создайте на форме 20 меток (10 и 10) и 10 флажков.
- В первых 10 метках расположите названия блюд, а в оставшихся 10 метках
– произвольные числа, указывающие стоимость этих блюд.
- Добавьте возможность заказывания нескольких порций.
- Подсчитайте общую сумму сделанного заказа.
- Выведите окно сообщение – результат заказа.
20
- Кнопка Лист заказа очищает старый заказ и готовит рабочее поле для
нового заказа.
- В проекте предусмотрите вывод текущей даты
Оформите и сдайте отчет преподавателю.
Для отчета
1. В чем отличие режимов работы Run-Time и Design-time?
2. Представьте код и скриншот задачи – Заказ в кафе:
Вывод:
21
Практическая работа № 7
Тема: Многострочное поле ввода Memo
Цель работы:
– освоить технологию работы с объектом Memo, создавать рабочие
проекты с использованием стандартных компонентов.
знания (актуализация):
– компонент Memo, его свойства и назначение;
умения:
– реализовать вывод текстовой информации в Многострочное поле ввода
Memo;
– создать рабочий проект.
Теоретический материал:
MEMO многострочное текстовое поле
Свойство
Значение
Lines (типа TStrings)
содержимое текста
ReadOnli
Вкл/Выкл редактирования текста
ScrollBars
Полосы прокрутки
MaxLength
Количество строк (0 – не ограничено)
Memo
не обладает свойством, которое бы позволяло выполнять
сортировку строк. Но при этом Memo работает с информацией строкового
типа, а в Delphi имеется абстрактный объект TstringList, не просто
работающий с такой информацией, но и содержащий необходимый нам метод
сортировки.
Ход работы:
1. Создайте приложение – проект, в котором необходимо отсортировать
данные, хранящиеся в Memo.
22
procedure TForm1.Button1Click(Sender: TObject);
var y: Tstringlist;
begin
y:=Tstringlist.Create;
//нет родителя
y.addstrings(memo1.Lines); //в объект Y присваиваем построчно текст
из Memo
y.Sort;
//сортируем
memo2.Clear;
memo2.Lines.addstrings(y);
end;
end.
2. Создайте проект Memo – простой текстовый
редактор,
который
реализует
возможность:
удалить, скопировать, переместить, изменить
текст, а также очистить объект Memo. Выполните
задание по рекомендациям:
- В процедуру закрытия формы введите программный код и определите его
назначение.
Memo1.Lines.SaveToFile('memo.txt');
- В процедуру отображения формы введите программный код:
23
procedure TForm1.FormShow(Sender: TObject);
begin
if FileExists('memo.txt') then Memo1.Lines.LoadFromFile('memo.txt');
end;
- Используя функции мастера Clipboard, введите программный код для
команд: Копировать, Вырезать, Вставить
Объкт.CopyToClipboard;
Объкт.CutToClipboard;
Объкт.PasteFromClipboard;
- Используя метод очистки, выполните реализацию двух процедур: на
кнопку и на команду меню Очистить.
- Реализуйте
процедуру
кнопки
Добавить
Memo1.Lines.Add('Новая
строка');
- Реализуйте процедуру кнопки Удалить
if MainMemo.Lines.Count<>0 then
MainMemo.Lines.Delete(MainMemo.CaretPos.Y);
- Реализуйте процедуру кнопки Изменить
MainMemo.Lines.Strings[MainMemo.CaretPos.Y]:='Horrific';
MainMemo.Lines.Strings[0]:='Текст изменён';
Оформите и сдайте отчет преподавателю.
Для отчета
1. Представьте скриншот проекта 2 задачи в действии:
2. Представьте скриншот текстового файла memo.txt:
3. Представьте программный код функции мастера Clipboard:
Вывод:
24
Практическая работа № 8
Тема: Группа компонентов RadioButton
Цель работы:
– создавать рабочие проекты с использованием стандартных компонентов.
знания (актуализация):
– технология работы с компонентами RadioButton и RadioGroup;
умения:
– реализовать алгоритм ветвления на множественный выбор;
– создать рабочий проект с инструкцией Case.
Теоретический материал:
Синтаксис оператора Case:
Case <Анализируемая переменная > of
<Значение 1>: <Команда 1>;
<Значение 2>: <Команда 2>;
………..
<Значение N>: <Команда N>;
Else
<Команда N+1>; // команда выбора «по умолчанию»
End;
Ход работы:
1. Создайте проект Тест – Задача тестирования: Пользователь выбирает ответ
из предложенных вариантов, затем нажимает кнопку «Проверить».
Программа проверяет, правильно ли выбраны ответы. Если дан правильный
25
ответ, то выводим «Верно» и отключаем кнопку «Проверить», если нет, то
выводим «Ошибка» и даем возможность продолжить тест.
- Создайте новый проект со следующей формой:
- В обработчик кнопки «Проверить» введите код:
if radioButton2.Checked then
Begin
Label1.Caption:='Верно'; Button1.visible:=false;
End
Else Label1.Caption:='Ошибка';
end;
- Если ответ неверный, то изменить цвет надписи на красный.
- Добавьте в проект реализацию появления второго вопроса, если первый
ответ первого правильный (Для второго вопроса используйте компонент
RadioGroup):
- Предлагается реализация программного кода:
26
Case RadioGroup1.ItemIndex of
1: Begin
Label4.Caption:='Верно'; Button2.visible:=false;
End
Else Label4.Caption:='Ошибка';
end;
2. Создайте тест, состоящий из 10 вопросов с разным количеством вариантов
ответов.
При
программировании
применить
различные
переключателей.
Оформите и сдайте отчет преподавателю.
Для отчета
1. Раскрыть свойства компонента radioButton:
2. Назовите тип переменной, используемый во множественном выборе:
3. Представьте скриншот теста:
Вывод:
27
виды
Практическая работа № 9
Тема: Полоса разделения
Цель работы:
– освоить технологию работы с компонентом Splitter.
знания (актуализация):
– технология свойств компонента Splitter;
умения:
– реализовать технологию работы с инспектором свойств компонентов.
Теоретический материал:
Запустите проводник Windows Explorer. Посмотрите на его главное окно,
которое разбито на две части. Слева вы можете увидеть список дисков и папок,
а справа находятся файлы из выбранной папки. Между двумя половинами окна
находится полоска, которую можно двигать, увеличивая или уменьшая одну из
половин окна. Вот именно такой эффект легко создать с помощью компонента
TSplitter.
Ход работы:
1. Создайте новое приложение.
- Теперь
установим
на
форму
компонент панели (TPanel) и растянем
его по верхнему краю формы (установите
у него свойство Align в aiTop). В свойстве Caption напишем "Верхняя панель".
Далее установим на форму TSplitter и у него тоже установим в свойстве Align
значение aiTop.
- Еще одну панель выровняем по левому краю. В свойстве caption напишите
"Левая панель". Добавим еще один TSpiitter и тоже установим выравнивание по
левому краю.
- Установим еще одну панель с выравниванием по всей оставшейся площади
формы (свойство Align должно быть alclient). Ну а в свойстве caption напишем
"Клиентская панель".
28
- С помощью свойств Width И Height можно изменять высоту и ширину
разделителя. Только если компонент растянут горизонтально
- (В свойстве Align находится alTop или alBottom), то ширину изменять
бесполезно, потому что компонент занимает всю доступную ширину. А вот с
помощью высоты можно изменить толщину разделителя. То же самое при
растягивании компонента вертикально – имеет смысл изменять только Width.
2. Создайте новый проект Мультимедиа-проигрыватель.
- оформите форму по образцу, приведенному на рисунке.
- На форме стоят следующие компоненты:
 Три рамки (Bevel), Картинка;
 DriveComboBox (вкладка Win3.1)
 DirectoryListBox (вкладка Win3.1)
 FileListBox (вкладка Win3.1)
- У формы изменен заголовок, иконка и цвет.
- Измените свойства у компонентов:
 DriveComboBox1 – свойство DirList, выбрать DirectoryListBox1
 DirectoryListBox1 – свойство FileList выбрать FileListBox1
 FileListBox1 - свойство Mask вписать *.wmf
29
 Image1 – свойство вписать картинку;
- Обработайте событие OnClick для компонента FilelistBox1. В коде впишите
следующую команду:
Image1.Picture.LoadFromFile(filelistbox1.FileName);
Эта команда обозначает, что при щелчке на файле с картинкой в компоненте
Image будет отображаться его содержимое. Свойство FileName обозначает тот
файл, имя которого выделено в данный момент в компоненте FileListBox.
3. Придумайте и реализуйте проект с использованием TSpiitter.
Оформите и сдайте отчет преподавателю.
Для отчета
1. Перечислите свойства компонента – Image:
2. Представить код и скриншот задачи – Коллекция картинок (мультимедиапроигрыватель):
Вывод:
30
Практическая работа № 10
Тема: Компоненты - украшения
Цель работы:
– освоить декоративные компоненты.
знания (актуализация):
– свойства декоративных компонентов;
умения:
– реализовать технологию работы с элементами украшения.
Теоретический материал:
Панель – некий контейнер для группировки других компонентов.
Используется также для отображения текста. Основное назначение панели –
визуальное объединение различных элементов интерфейса (окна, кнопки,
списки), функционально связанных друг с другом.
Что касается основных свойств, то можно выделить такие свойства как:
– BevelInner – выпуклый, утопленный или плоский вид внутренней части;
– BevelOuter – выпуклый, утопленный или плоский вид обрамления
компонента;
– BevelWidtn – определяет ширину обрамления компонента в пикселях;
– BorderStyle – указывает, ограничена ли клиентская область компонента
одинарной бордюрной линией;
– BorderWidth – расстояние в пикселях между внутренней и наружной
кромками обрамления.
Ход работы:
1. Создайте новый проект, который показывает,
текущее время и дату. Панели используйте как
объекты вывода и как декоративные
компоненты, установив объемный вариант.
2. Создайте проект: Изучаем светофор: на кнопку «Красный» - показывает
красный круг и пояснение «Стой», желтый - «Жди», зеленый «Иди».
31
- Добавьте в проект рисунок светофора.
3. Создайте проект «Геометрический примитив», который предлагает выбор
фигур, а по выбору ее показывает:
- Добавьте кнопку на выбор цвета закраски внутренней области фигуры из
диалогового окна «Color»;
- Добавьте кнопку на выбор цвета границы фигуры из диалогового окна
«Color»;
- Добавьте кнопку, на которую выполните смену толщины фигуры;
32
- Добавьте в проекте выбор типа линии (определите значение каждого типа);
- Добавьте в проекте выбор типа штриховки (определите значение каждого
типа);
Оформите и сдайте отчет преподавателю.
Для отчета
1. Перечислите свойства компонента – Shape:
2. Представить программный код выбора типа линии и типа штриховки:
3. Представить скриншот проекта светофор:
Вывод:
33
Практическая работа № 11
Тема: Панель с полосами прокрутки
Цель работы:
– освоить технологию работы с панелью полос прокрутки.
знания (актуализация):
– алгоритм работы;
умения:
– реализовать технологию работы с панелью полос прокрутки.
Теоретический материал:
Панель с полосами прокрутки TScrollBox. Область
прокрутки представляет собой окно с возможностью
прокрутки информации. Внутри нее размещаются
другие элементы управления. Компонент ScrollBox
является элементом управления, поверхность которого
может быть больше той части, которую в данный
момент видит пользователь. Если какой-либо элемент,
содержащийся в компоненте ScrollBox, виден не
полностью, то автоматически могут появляться полосы прокрутки: горизонтальная,
вертикальная или обе одновременно. Если размеры области увеличиваются, полосы
прокрутки могут автоматически исчезать, если в них нет необходимости.
Ход работы:
1. Создайте новое приложение. Установите
компоненты: Panel с текстом поговорки и
ScrollBox на форму. Поместите на компонент
ScrollBox картинку, в которую загрузите
изображение большого размера, чтобы оно не
помещалось в пределы экрана, и установите
свойство Autosize в true. В этот момент
компонент image должен увеличиться до
реальных размеров картинки. Если он не будет помещаться в пределы
ScrollBox, то появятся полосы прокрутки, и вы сможете прокрутить
изображение.
- в процедуру обработки события мыши введите программный код:
34
procedure TForm1.ScrollBox1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Верхнее положение картинки :=y;
Левое положение картинки :=x;
end;
- в процедуру щелчок на панели введите программный код программного
управления областью прокрутки: ScrollBox1.ScrollInView(image1).
2. Создайте новое приложение. На форме расположите картинку, панель и два
ScrollBar.
- панель поместите внизу формы;
- картинку разместите в левом верхнем углу формы небольшого размера;
- расположите компоненты ScrollBar, на один установите свойство Kind –
sbVertical;
- введите программный код и прокомментируйте его:
procedure TForm1.ScrollBar1Change(Sender: TObject);
begin
35
Image1.Width:=ScrollBar1.Position*5;
Panel1.Caption:='ширина = '+IntToStr(Image1.Width)+', высота = '+
IntToStr(Image1.Height);
end;
- аналогично реализуйте изменение картинки по высоте;
- реализуйте в проекте смену рисунков, создайте меню, элементы
украшения.
3. Form1.color:=RGB(ScrollBar4. Position,ScrollBar5.
Position,ScrollBar3.Position); Рассмотрите предложенный программный код и
придумайте его реализацию. В отчете
Оформите и сдайте отчет преподавателю.
Для отчета
1. Представить скриншот второй задачи:
2. Представить назначение полос прокруток:
3. Свойства ScrollBar (заполните таблицу)
Position
max
Kind
PageSize
SmallChange
LargeChange
Вывод:
36
Практическая работа № 12 -15
Тема: Палитра компонентов MainMenu. Компонент MainMenu.
Палитра компонентов ImageList. Компонент ImageList
Цель работы:
– разработать проекты с использованием компонентов . MainMenu и
ImageList.
знания (актуализация):
– алгоритм работы создания главного и контекстного меню;
– алгоритм работы с библиотекой картинок;
умения:
– реализовать технологию работы с компонентами MainMenu и ImageList.
Теоретический материал:
Контекстное меню в Delphi представлено компонентом PopupMenu. Главное
выбрать компонент, над которым необходимо такое всплывающее меню и в
«Инспекторе объектов» в свойстве Popup Menu выбрать то Popup Menu, которое
необходимо.
Компонент ImageList (вкладка Win 32) представляет собой набор изображений
одинаковых размеров, на которые можно ссылаться по индексам, начинающимся с 0.
Во многих компонентах (меню, списках и др.) встречались свойства, представляющие
собой ссылки на компонент ImageList. Этот компонент позволяет организовать
эффективное и экономное управление множеством пиктограмм и битовых матриц. Он
может включать в себя монохромные битовые матрицы, содержащие маски для
отображения прозрачности рисуемых изображений. Изображения в компонент
TImageList могут быть загружены в процессе проектирования с помощью редактора
списков изображений.
Ход работы:
1.Создайте проект, выполняя рекомендации:
37
- в папку приготовьте 4 картинки и 4 поздравления;
- На форме расположите
объекты: Image1; Memo1; PopupMenu1;
PopupMenu2; MainMenu1;OpenDialog1; ColorDialog1; FontDialog1;
- На картинку установите подсказку: Выбери открытку из контекстного
меню (Hint), загрузите картинку заставку, установите растяжку картинки;
- Создайте первое контексное меню с командами: Открытка1, ..., Открытка4;
Подключите PopurMenu1 к картинке;
- На каждую команду первого контексного меню загрузите картинки
(1.bmp...). Выполните проверку действий проекта;
- Создайте второе контексное меню с командами: Цвет фона, Шрифт и
подключите его на объект Memo и запрограммируйте смену цвета фона и
шрифта в Memo;
- В главном меню создайте команды по образцу:
- На команду очистить выполните очистку объекта Memo;
- На команду Выход – закрыть форму;
- На OpenDialog1 установите свойство фильтр Текст|*.txt;
- На команду Открыть:
-
Подключите OpenDialog1;
38
- В Memo
на строки загрузите из диалогового окна открытия файл с
выбранным именем;
Протестируйте программу.
2.Создайте проект, открывающий и просматривающий картинки.
- Меню (знак вопроса – картинка команды Справка)
- Отрывать картинку из OpenPictureDialog1;
- Прятать картинку;
- Меню свойств картинки;
- Добавить вторую форму со справкой (в Memo).
- Подключить второй Unit;
- По команде Справка передать управление 2 форме, а по кнопке Назад
справку закрывать;
Протестируйте программу.
Внимание: На форме создается меню. Устанавливается компонент ImageList, загружаются картинки Компонент меню PopupMenu и MainMenu
39
подключаются на ImageList. Для каждой команды меню устанавливаем ImageIndex – выбираем необходимый номер картинки.
3.Выполните реализацию оформления меню главного и контекстного в двух
проектах созданных ранее.
Оформите и сдайте отчет преподавателю.
Для отчета
1. Раскройте приемы работы с компонентом MainMenu:
2. Раскройте приемы работы с компонентом ImageList:
3. Представить скриншот проектов:
Вывод:
40
Практическая работа № 16 -18
Тема: Дочернее окно. Дочерняя форма. Дочерний компонент
Цель работы:
– освоить создание проектов с дочерними компонентами.
знания (актуализация):
– алгоритм работы в режиме Run-Time и Design-time;
умения:
– реализовать технологию создания дочерних компонентов.
Теоретический материал:
Стартовая форма любого проекта – является главной, и она является
родительской, а все остальные компоненты являются дочерними.
Наследование
(Inheritance) - способность одного класса наследовать
возможности или свойства другого класса. Наследование является важным,
поскольку оно позволяет поддерживать концепцию иерархии классов.
Ход работы:
1. Создайте проект по образцу, введите
программный код и определите назначение каждой
строки программы:
procedure
TForm1.Button1Click(Sender:
TObject);
begin
Edit1:=TEdit.Create(Panel1); //владелец текстового поля Панель
Edit1.Left:=60;
Edit1.Top:=20;
Edit1.Parent:=Panel1;//текстовое поле визуально принадлежит панели
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Edit1.Parent:=Self; //визуальная принадлежность формы
41
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Panel1.Free; //разрушить панель родитель так и текстовое поле
потомок
end;
2. Решите задачу, используя режим Run-time, выполняя действия по плану.
- Создайте проект, сохранив в папку Автомагазин.
- Проектируем форму с кнопкой небольшого размера.
Изменить цвет и заголовок формы, шрифт заголовка
кнопки:
- На процедуру нажатия кнопки выполнить: спрятать кнопку, изменить
размер формы и создать в режиме run-time следующие компоненты:
 ComboBox (5 строк с текстом), процедуру OnChange;
 Labe1, Labe2 ( – «Наличие» и «Цвет»);
 Shape (6 – с генерацией цвета);
 CheckBox (6);
 Panel (4 – «Цена $», «Страховка $», «Доп.услуги $», «ИТОГО $»);
 Edit (4);
 Bevel1, Bevel2 (рамки)
 Image1 (расположите под списком в свободную область формы)
42
- При выборе марки машины – ее рисунок появляется на форме (создать
компонент), генерируется случайным образом вкл/выкл флажков, в элементах
Edit – генерируется цена от 100 до 300 тыс., страховка = 37% от цены, доп.
услуги = 3%, Итого = сумма первых трех:
- При щелчке мышью на рисунке (на форме) создайте вторую форму
(Form2), где размещается другой рисунок (Image2) данной марки машины и
Panel, в которой выводится итоговая сумма, в заголовке формы отображается
название машины:
- Протестируйте проект, сохраните, скомпилируйте;
3. Самостоятельно придумайте проекта, который реализует тему Run-Time.
Оформите и сдайте отчет преподавателю.
Для отчета
1. Представить код задачи Автомагазин:
2. Представить скриншот задачи Автомагазин:
Вывод:
43
Практическая работа № 19 -22
Тема: Создание подчиненных форм
Цель работы:
– освоить приемы работы с подчиненными формами.
знания (актуализация):
– глобальных переменных;
умения:
– реализовать технологию создания подчиненных форм.
Теоретический материал:
Для ввода новой формы в программу выполняется команда меню File -»
New -» Form. Форма создаётся вместе с новым модулем, описывающим её
работу. Для удаления формы используется команда меню Project -» Remove
from project…. Так как Форма создаётся вместе с её модулем, то в
появившемся окошке нужно выбрать модуль, который и будет удалён из
проекта вместе с Формой.
Для подключения подчиненной формы к главной, необходимо выполнить
команду меню File -» Use Unit. Для вызова подчиненной формы вводится код:
Form2.Show; // в случае обычной Формы
Ход работы:
1. Создайте проект «На заметку», в которой реализуется создание текстового
файла и запись в него информации на заметку и номер телефона.
- Выполните создание главного меню формы;
- Создайте вторую форму «О программе»
44
- Предлагается программный код некоторых процедур, введите и изучите
их, а так же дополните код для полнейшей реализации проекта:
var
Form1: TForm1;
f:textfile;
x:String;
implementation
uses Unit2;
{$R *.dfm}
// запись телефона по маске
procedure TForm1.Button1Click(Sender: TObject);
begin
x:=MaskEdit1.Text;
assignfile(f,'1.txt');
rewrite(f);
writeln(f,x,' ' , RichEdit1.Text,' ',DateToStr(date) );
closefile(f);
end;
//выравнивание по левому краю
procedure TForm1.N7Click(Sender: TObject);
begin
RichEdit1.Paragraph.Alignment:=TaLeftJustify;
N7.Checked:=true; N8.Checked:=false; N9.Checked:=false;
end;
end.
- Посмотрите получившийся текстовый файл.
45
- Измените главное меню программы.
- Создайте третью форму, в которой в
многострочный
компонент
введите
справку о работе приложения. Оформите
форму. Установите свойство текстового
поля – запрет на изменение.
2. Создайте проект «Тест», в котором реализуется прохождение теста на 10
вопросов с выставлением оценки.
- Просмотрите предложенные формы.
- Самостоятельно придумайте тест на 10 вопросов и выполните реализацию
проекта.
…
- Реализуйте запись в файл результата тестирования.
3. Самостоятельно придумайте свой проект.
46
Оформите и сдайте отчет преподавателю.
Для отчета
1. Представить функции работы с текстовыми файлами:
2. Представить скриншот задач:
Вывод:
47
Практическая работа № 23 -26
Тема: Изучение свойств кнопок
Цель работы:
– освоить виды и свойства кнопок и технологию работы с ними.
знания (актуализация):
– виды кнопок и их назначение;
умения:
– реализовать технологию создания проектов с кнопочным интерфейсом.
Теоретический материал:
Перечень кнопок и специфика их внешнего вида:
Обозначение
кнопок
Button
BitmapButton
SpeedButton
ChekBox
RadioButton
RadioGroup
UpDown
Специфика кнопки
Обычная кнопка с надписью
Кнопка с надписью и рисунком
Кнопка с рисунками, которая может оставаться утопленной
Квадратная кнопка с внешней надписью, иногда с галочкой
Круглая кнопка с внешней надписью, иногда с жирной точкой в центре
Контейнер с массивом радио кнопок
Кнопка со стрелками увеличения и уменьшения числового значения
Ход работы:
1. Создайте проект для изучения свойств
кнопок:
- Создайте проект приветствие: по
событию – нажатия кнопки, выполняется
приветствие пользователя по его введенному
имени.
- Измените свойства кнопки, метки,
формы (Цвет, шрифт, наклон, привязки по краям, ограничения при распахнутом
окне):
- Добавьте в проект кнопку BitBtn по образцу (по текстовое поле), которая при загрузке
формы не видима.
- После приветствия кнопка появляется. Событие на
данную кнопку – загрузка формы в виде диалогового
окна с выводом текущей даты и кнопкой BitBtn,
48
которая закрывает модальное окно.
2. Создайте проект Панели инструментов:
- Установите навигатор, в котором включить кнопки по образцу:
- Установите на форму Компонент Panel: выровняйте по верхнему краю,
измените цвет, уберите заголовок;
- На Panel установите 4 компонента SpeedButton, загрузите картинки,
установите плоский тип;
- Действия кнопок: 1) загрузка новой формы; 2) сообщение ('Пример
создания панели инструментов'); 3) изменение цвета формы; 4) закрыть форму;
- Скопировать Panel на вторую форму и на данные кнопки установить такие
действия:
1) спрятать картинку; 2) показать картинку; 3) изменение цвета формы; 4)
закрыть форму (на данной форме установить объект картинка).
49
3. Создайте проект с выбором из списка (компонент TcheckListBox)
i:Integer;
Str:String;
begin
Str:='Вы выбрали ';
for i:=0 to CheckListBox1.Items.Count-1 do
if CheckListBox1.Checked[i] then
Str:=Str+CheckListBox1.Items[i]+' ';
Application.MessageBox(PChar(Str), 'Внимание!!!');
50
4. Создайте проект «Панель инструментов»
- Рассмотрите предложенные формы
- В данном проекте используйте компонент
ToolBar.
- добавьте на него кнопки, в которые установите картинки, введите
заголовки.
- Придумайте действия на кнопки.
- Добавьте еще две кнопки.
5. Создайте проект «Шрифт». Выполните реализацию событий знакомого окна.
6. Самостоятельно придумайте свой проект.
Оформите и сдайте отчет преподавателю.
Для отчета
1. Представить код задачи Шрифт:
2. Раскройте назначение панели инструментов:
3. Представить скриншот задач:
Вывод:
51
Практическая работа № 27 - 30
Тема: Связь дочерних, подчиненных и немодальных окон.
Обработчик события OnClose
Цель работы:
– освоить
приемы
работы
с
различными
окнами
системы
программирования.
знания (актуализация):
– технологии работы с приложениями MS Office;
умения:
– реализовать рабочие проекты.
Теоретический материал:
Разница между обычными и модальными формами. Обычные Формы
позволяют свободно переходить между всеми Формами, находящимися в
данный момент на экране. Модальная Форма в момент вызова блокирует
переход между Формами проекта до тех пор, пока не будет закрыта, и работа
возможна только в ней.
Form2.ShowModal; // в случае модальной Формы
Ход работы:
1. Создайте проект «Лига чемпионов».
- Создайте папку с именем Визитка спортсмена;
- Запустите систему программирования Delphi и
сохраните проект в созданную папку;
- Установите на форме свойства:
 Заголовок – Лига чемпионов; Цвет – Cream
 Ширина и высота 180; Иконку;
- Выполните команду Project – Option – Application
 Title – Баскетбол; Icon – Load Icon…
- На форме установите объект картинка, установите ее свойства:
 Align – alClient; Stretch – True;
 Загрузите картинку мяча;
52
- На форме установите объект SpeedButton из дополнительного раздела,
установите ее свойства:
 Заголовок – Старт; Прозрачность Flat – True;
 Шрифт 22, полужирный, белого цвета;
- Сохраните работу;
- Добавьте в проект новую форму:
- Просмотрите структуру проекта (сохраните Unit2в туже папку);
- Командой File – Use Unit подключите Unit2 к первому;
- В процедуру SpeedButton1Click введите команды:
 форму первую спрятать – Hide;
 передать управление второй форме – Show;
- Проверьте запуск и работу процедуры;
- Перейдите на вторую форму;
- Установите главное меню формы, в котором
введите
заголовки
по
образцу:
Визитка
–
Проверить поля, Показать визитку; Закрыть;
- На
команду
меню
Показать
визитку
установите ее неактивность;
- Выполните подключение Unit1 ко второму;
- На команду меню Закрыть введите закрытие первой формы (чтобы
закрывался весь проект);
- На форму 2 установите две
рамки
–
объект
из
Bevel
дополнительного раздела;
- Поменяйте стиль рамок (Style);
- Установите метки (7 штук) и
текстовые поля (7 штук) по образцу
(отформатируйте шрифт формы);
- Для
текстового
поля
ввода
53
Номер майки – установите MaxLength = 2, для поля ввода Рост = 3, а для поля
ввода Вес = 5 символов;
- Выделите текстовые поля, в которые будут вводиться Рост и Номер
майки, вызовите процедуру OnKeyPress и выполните ввод запрет ввода
текстовой информации:
If not (key in ['0'..'9',#8]) then key:=#0;
- Вызовите процедуру OnKeyPress текстового поля ввода Вес и введите
разрешение ввода чисел и запятую
Case Key of
'0'..'9',#8 : ; //цифры, BackSpace
'.',',': //точка и запятая
begin
Key:=DecimalSeparator;
//
переменная
десятичного
разделителя
If Pos(DecimalSeparator, Edit1.Text)<>0
Then Key:=#0; // запрет на 2 запятые и точки
end;
Else Key:=#0; // запрет всех остальных символов
End;
- В меню Проверить поля
введите программный код – проверки
заполняемости всех текстовых полей и включения активности меню Показать
визитку (объясните каждую строку кода):
N4.Enabled:=True;
for i:=0 to componentcount-1 do
IF (components[i] is TEdit) and
((Tedit(components[i]).Text)='')
then
begin
ShowMessage('Вы заполнили не все поля');
N4.Enabled:=false;
54
Exit;
end;
end;
- Сохраните проект;
- Откройте программу MS Word и создайте документ по образцу:
 Установите параметры страницы: все поля по 1 см, без переплета,
альбомную ориентацию, Размер бумаги – A6 (14,8 см на 10,5 см);
 Границу; Клип – (мяч – раздел спорта);
 Надпись – Фото; Объект WordArt – Лига чемпионов;
 Метки (закладки) для вставки текста Фамилия, … со значками # и &
 Шрифтовое оформление;
 Сохраните файл как шаблон в свою папку под именем Визитка.dotx
- На форму 2 в разделе uses
подключите модуль
ComObj (допишите раздел);
- Объявить константу const wdReplaceAll = 2;
- Объявить глобальную вариативную переменную
W:Variant;
55
- Ввод процедуры на команду меню Показать визитку:
// Создаем OLE объект Word, добавляем документ шаблон с
определенным
// именем и визуализируем его
w:=CreateOleObject('word.application');
w.Documents.add(ExtractFilePath(Application.ExeName)
+'Визитка.dotx');
w.visible:=true;
// В документе находим текст с меткой и выполняем на данное
//место замену
w.selection.find.text:='#Фамилия&';
w.selection.find.replacement.text:=Edit1.Text;
w.selection.find.execute(replace:=wdreplaceall);
w.selection.find.text:='#Имя&';
w.selection.find.replacement.text:=Edit2.Text;
w.selection.find.execute(replace:=wdreplaceall);
и т.д. …
- Сохраните проект;
56
2. Откройте проект приветствие. Дополните в программу возможность вывода
информации в документ Word :
- В процедуру SpeedButton1Click введите код:
W:=CreateOleObject('Word.Application');
W.Visible:=True;
W.Documents.Add;
//записать в конец
W.ActiveDocument.Range.InsertAfter('Здравствуйте, ' +Edit1.Text+ ' ') ;
//записать в начало
W.ActiveDocument.Range.InsertBefore(date+#13);
- Создайте главное меню Сохранить документ, Закрыть Word;
- На команду Сохранить документ введите программный код
//сохранение документа
if W.ActiveDocument.Saved then
57
messagebox(handle,'Документ сохранен!','Внимание!',0);
if not W.ActiveDocument.Saved then
messagebox(handle,'Документ не сохранен!','Внимание!',0) ;
W.ActiveDocument.Save;
- На команду Закрыть
Word
введите программный код Закрыть
приложение;
//закрыть все документы
W.Application.Documents.Close;
//закрыть приложение
W.Quit;
W:=UnAssigned;
//закрыть активный документ
W.ActiveDocument.Close(True); //просит сохранить
3. Добавьте в проект меню продуктов вывод выбранных продуктов в документ
Word.
58
- Добавьте вывод даты.
4. Создайте проект «Зарплата», в котором предусмотрено:
- ввод в таблицу: фамилий сотрудников, оклада и процента премии;
- расчет премии, налога и итоговой суммы зарплаты;
- по выбору строки возможность ее удаления;
- по выбору строки сотрудника вывод личной карточки в MS Word;
- вывод отчета всей ведомости в программу MS Excel с подсчетом итоговых
сумм всех окладов, премии, налога и итога;
- разработать интерфейс проекта, состоящего из:
o главного меню;
o панели инструментов с часто употребляемыми командами.
- в проекте предусмотреть проверку:
o для поля фамилия ввод текста;
o для поля оклад ввод дробных чисел;
o для поля Премия% ввод целых чисел;
o для всех остальных полей установить запрет ввода информации;
59
- На форме установите компоненты: сетку, меню, из раздела Win32:
ImageList – набор изображений одинаковых размеров, на которые можно
ссылаться по индексам, начинающимся с 0
и
ToolBar – инструментальная панель, которая
управляет
компоновкой
инструментальных
быстрых кнопок и других компонентов;
- Создайте меню по образцу:
- Вызовите двойным щелчком мыши редактор списка изображений.
Кнопкой
Add – выполните добавление картинок (по необходимости
положительно ответив на вопрос о запрете разбивать изображение на части).
Загрузите необходимое количество картинок (расширение ico или bmp);
- На сетку установите свойства: количество колонок 6 (ColCount),
количество строк 2 (RowCount), фиксированная колонка 0 (FixedCols),
фиксированная строка 1 (FixedRows), толщина линии сетки 2 (GridLineWidth),
вертикальную полосу прокрутки (ScrolBars), разрешение редактирования и
ввода текста в таблицу (Option – goEditing – True, goTabs – True –
возможность перемещение по таблице с помощью клавиши Tab);
60
- Установите для объекта ToolBar свойство ShowCaption – True (показать
заголовки), Align – AlNone;
- Для занесения на панель ToolBar кнопок надо
щелкнуть на этот компонент правой кнопкой мыши
и
выбрать
из
команду New Button.
всплывшего
Установите
меню
на
панель
инструментов 6 кнопок и введите их заголовки;
- Компонент ToolBar подключите свойство Image – на ImageList1;
- Аналогично выберите для кнопок номера картинок;
- Кнопка ИТОГ выключена;
- Рассмотрите свойства панели инструментов:
- Выполните ввод программного кода, выполняя рекомендации:
- Перед разделом глобального описания переменных объявите переменную
класса сетки:
- Объявите строковый массив podpis
('Фамилия', 'Оклад', 'Премия%', 'Премия ','Налог 13%', 'Итог');
- В процедуру создания формы выполните ввод программного кода чтения в
цикле элементов массива podpis;
- Введите процедуру удаления строки (выполните ее объявление):
//удалить строку
procedure TForm1.DeleteARow(Grid: TStringGrid;ARow: Integer);
begin
If ARow<>0 then TMyGrid(Grid).DeleteRow(ARow) else
end;
61
exit;
- На команду меню удалить и на команду кнопки удалить введите вызов
процедуры удаления: DeleteARow(StringGrid1, StringGrid1.Row);
- Введите программный код закрытия формы;
- На команду меню добавить и на команду кнопки добавить введите
командный код:
Сетка.Строка количество := Сетка.Строка количество+1;
- По ходу задачи все переменные объявляйте глобальными;
- Введите программный код проверки клавиатуры:
procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key:
Char);
begin
x:= (sender as TStringGrid).Row;
y:=(sender as TStringGrid).Col;
//(целые X, Y)
// если первая колонка (оклад)
if (sender as TStringGrid).Col =1 then begin
Case Key of
… числа, запятые, декларация запятой
End; end;
Если Y=2, тогда только числа;
Если Y > 2, тогда key:=#0;
end;
- На команду меню очистка строки введите:
Если X не равен 0, тогда StringGrid1.Rows[x]. Очистка;
- Объявите глобальные переменные
prpr – целое;
okl, pr, nal, itog, sumokl, sumpr, sumnal, sumitog: Currency;
(денежные);
- На кнопку Налог введите программный код:
62
Цикл i:=1 то StringGrid1.RowCount-1 выполнять
okl:=StrToCurr( StringGrid1.Cells[1,i]); //читаем из таблицы
prpr:=…;
… расчет премии, налога (13% от оклада и премии) и
итога;
StringGrid1.Cells[3,i]:=CurrToStrF(pr,ffFixed,2);
вывод налога аналогично; end;
Включение кнопки Итог;
- На кнопку итог введите программный код:
Обнулить переменные сумм;
В цикле прочитать оклад; прочитать процент премии; рассчитать
все переменные; вывести в сетку оклад и итог как денежный формат
StringGrid1.Cells[5,i]:=CurrToStrF(itog,ffCurrency,2);
Накопить все суммы;
- На кнопку Карточка введите программный код
создания личной карточки выбранного сотрудника с
выводом текста по образцу (работать можно и с
шаблоном):
Работа с Excel
- В разделе модуле подключить ComObj;
- Объявить глобальные переменные – OLeVariant;
ExcelApp, Colum,Row,Sheet,book:OLeVariant;
proverka:Boolean;
- На кнопку отчет введите программный код с пояснением (определите
назначение каждой строки)
63
proverka:=true;
for i:= 1 to StringGrid1.ColCount-1 do
for j:= 1 to StringGrid1.RowCount-1 do
if Length(StringGrid1.Cells[i, j]) = 0 then begin
ShowMessage('Не все поля заполнены: Фамилия, оклад, %премии. '+
#13+'И нажмите Налог и ИТог');
proverka:=false;
exit;
end;
If proverka=true then
begin
ToolButton4.Click;
ToolButton5.Click;
index:=0; // целая переменная
// объявляем Excel
ExcelApp:=CreateOleObject('excel.application');
ExcelApp.Visible:=true;
ExcelApp.workbooks.add(-4167);
//Имя листа
ExcelApp.Workbooks[1].WorkSheets[1].Name:='Ведомость';
//объявление колонок
Colum:=ExcelApp.Workbooks[1].WorkSheets['Ведомость'].columns;
//объявление строк
Row:=ExcelApp.Workbooks[1].WorkSheets['Ведомость'].rows;
//объявление ячеек
Sheet:=ExcelApp.Workbooks[1].WorkSheets['Ведомость'];
//заголовок и его оформление
Row.rows[1].font.bold:=true;
Row.rows[1].font.size:=16;
Row.rows[1].font.name:='Arial Black';
Row.rows[1].font.Color:=clgreen;
64
Sheet.cells[1,3]:='Ведомость зарплаты ';
//вторая строка с датой
Row.rows[2].font.bold:=true;
Row.rows[2].font.size:=12;
Row.rows[2].font.name:='Calibri';
Row.rows[2].font.Color:=clBlue;
Row.rows[2].font.underline:=true;
Sheet.cells[2,3]:='на '+DateToStr(Date());
//ширина столбцов
Colum.columns[1].columnWidth:=5;
Colum.columns[2].columnWidth:=15;
Colum.columns[3].columnWidth:=15;
Colum.columns[4].columnWidth:=13;
Colum.columns[5].columnWidth:=12;
Colum.columns[6].columnWidth:=13;
Colum.columns[7].columnWidth:=17;
//4 строка подписи - шапка таблицы
Row.rows[4].font.bold:=true;
Row.rows[4].font.size:=12;
Row.rows[4].font.name:='Times New Roman';
Row.rows[4].font.Color:=clred;
Sheet.cells[4,1]:='№';
Можно прочитать из
таблицы
Sheet.cells[4,2]:='Фамилия';
Sheet.cells[4,3]:='Оклад';
Sheet.cells[4,4]:='% премии';
Sheet.cells[4,5]:='Премия';
65
Sheet.cells[4,6]:='Налог';
Sheet.cells[4,7]:='Итог';
// формирование записей
index:=5; //номер строки
xx:=0;
For i:=1 to StringGrid1.RowCount-1 do begin
Sheet.cells[index,1]:=IntToStr(i);
Sheet.cells[index,2]:=StringGrid1.Cells[xx, i];
Sheet.cells[index,3]:=StringGrid1.Cells[xx+1, i]+ 'р.';
Sheet.cells[index,4]:=StringGrid1.Cells[xx+2, i]+'%';
Sheet.cells[index,5]:=StringGrid1.Cells[xx+3, i]+'р.';
Sheet.cells[index,6]:=StringGrid1.Cells[xx+4, i]+'р.';
Sheet.cells[index,7]:=StringGrid1.Cells[xx+5, i];
inc(index);
end;
//цвет шапки таблицы
for g := 1 to 7 do begin
Sheet.cells[4,g].select;
ExcelApp.Selection.interior.color:=clYellow;
end;
//оформление итоговых сумм
Row.rows[index+1].font.bold:=true; Row.rows[index+1].font.size:=12;
Row.rows[index+1].font.name:='Times New Roman';
Row.rows[index+1].font.Color:=clblue;
Sheet.cells[index+1,2]:='ИТОГО ';
Sheet.cells[index+1,3]:=CurrToStrF(sumokl,ffCurrency,2);
Sheet.cells[index+1,5]:=CurrToStrF(sumpr,ffCurrency,2);
Sheet.cells[index+1,6]:=CurrToStrF(sumnal,ffCurrency,2);
Sheet.cells[index+1,7]:=CurrToStrF(sumitog,ffCurrency,2); end;
66
- На команду меню Карточка вызов процедуры кнопки Карточка
ToolButtonN.Click;
- На команду меню Отчет вызов процедуры кнопки Отчет;
- Установите еще одну панель инструментов ToolBar, которая будет
дублировать команды меню;
- Установите свойства:
- выравнивание слева;
- авторазмер;
- увеличьте ширину границы;
- не показывать заголовки;
- измените цвет;
- DrawingStyle – градиент; границы со всех сторон;
- EdgeInner – esRaised выпуклые; EdgeOuter – esRaised;
- горизонтальное распределение градиента; его включение;
- заливки для градиентного цвета;
- меню – подключить MainMenu1;
- список картинок включить – ImageList1
67
- Протестируйте проект;
Доработайте интерфейс:
- Hint – текст подсказки, ShowHint – показать подсказку (если ввести текст
к меню, то подсказки будут и на кнопках панели инструментов, дублирующих
меню);
- Введите титульное название проекта;
- Установите иконку на свернутое приложение и на форму (две разные);
-
- Выполните проверку выдачи карточки Word, если таблица не заполнена, то
личной карточки не выдавать;
- В процедуру закрытие формы введите код и разберите его:
if
messagedlg('Ты
хочешь
проект?',mtCustom,[mbYes,mbNo],0)=mrYes
68
закрыть
then action:=cafree
else
action:=canone;
- Протестирует проект;
- В процедуру с удалением строки добавьте код:
if
Application.MessageBox(PChar('Ты
действительно
хочешь
'удалить строку'), 'Внимание!!!', MB_OKCANCEL)=id_OK then
DeleteARow(StringGrid1, StringGrid1.Row);
- Протестирует проект;
- Выполните расчет средних сумм и выполните их вывод в программу MS
Excel (оформите вывод с пропуском одной строки после итоговых сумм);
- Завершите работу.
Оформите и сдайте отчет преподавателю.
Для отчета
1. Представить код задачи Шрифт:
2. Раскройте назначение панели инструментов:
3. Представить скриншот задач:
Вывод:
69
Литература
Основная:
1. Бабушкина,
И.А.
Практикум
по
объектно-ориентированному
программированию / И.А. Бабушкина, С.М. Окулов. – М. : Бином,
Лаборатория знаний, 2012. – 366 с.: ил.
2. Культин, Н.Б. Основы программирования в De1phi 2006 для Windows.
Самоучитель / Н.Б. Культин. - СПб. : БХВ-Петребург, 2009.- 384 с.: ил.
Дополнительная:
3. Абрамов С.А. Задачи по программированию" М: Наука, 2003.
4. Кент, Рейсворд. Delphi 6 освой самостоятельно: Пер.с англ / Рейсворд Кент.
– М.: ЗАО «Издательство Бином», 2010.
5. Культин, Н.Б. Turbo Pascal в задачах и примерах / Н.Б. Культин. – СПб.: БХВ
– Петербург, 2011. – 256 с.: ил.
6. Фаронов, В.В. Delphi. Программирование на языке высокого уровня: /
В.В. Фаронов. – СПб.: Питер, 2010.– 640 с.: ил.
Интернет-ресурсы:
7. Среда
программирования
Delphi
//
электронный
ресурс
/
http://citforum.ru/programming/32less
8. Практические курсы по программированию // электронный ресурс /
http://rutracker.org/forum/viewtopic.php?t=518680
70
Приложение 1
Министерство образования и науки Челябинской области
Государственное бюджетное образовательное учреждение
среднего профессионального образования
(среднее специальное учебное заведение)
«Южно-Уральский государственный технический колледж»
ЗАЩИЩЕНО
ОЦЕНКА____________________
Преподаватель
________________ Лукьянова И.Н.
ОТЧЕТЫ
по практическим работам
дисциплины «Предметно-ориентированное
прикладное программирование»
специальности 09.02.05 (230701)
«Прикладная информатика (по отраслям)»
Разработал
Студент группы ПИ-3хх/б
________________ ФИО
Челябинск, год
71
Практическая работа № N
Тема:
Цель работы:
– изучить …;
– освоить ….
Ход работы:
1. …
2. ...
3. скриншот задачи…
Вывод:
72
Download