Главная страница
Навигация по странице:

зад. для лаб.. Задание на лабораторную работу 1



Скачать 451 Kb.
Название Задание на лабораторную работу 1
Анкор зад. для лаб..doc
Дата 20.12.2017
Размер 451 Kb.
Формат файла doc
Имя файла зад. для лаб..doc
Тип Документы
#13278

Задание на лабораторную работу №1

«Изучение среды Delphi. Работа с компонентами Delphi»

Нарисовать заданную геометрическую фигуру, которая перемещается по заданной траектории и постоянно изменяет свой масштаб («дышит»).

Программу писать и отлаживать в среде программирования Delphi 3.

На форме приложения предусмотреть: регулятор относительного размера траектории; регуляторы диапазона и скорости масштабирования фигуры; регулятор скорости перемещения фигуры по траектории; настройку цвета фона и тона прорисовки.

Приложение должно иметь законченный вид, быть проработанным с дизайнерской и эргономической точки зрения.

ПРИМЕЧАНИЕ:

Окно прорисовки на форме приложения должно иметь значение alClient в опции Align (всегда занимать максимальное пространство на форме).

При изменении размеров формы приложения масштаб и центр прорисовки должны соответственно измениться, т.е. изображение всегда должно быть вписано в размеры формы окна прорисовки.

Координаты точек траектории и вершин фигуры целесообразно выбирать в диапазоне от -1 до 1.

В случае использования таймера для перемещения фигуры по траектории с целью обеспечения эффекта мультипликации (непрерывного движения со скоростью прорисовки 25 кадров в секунду) интервал отсчета следует принять равным 40мс. Скорость перемещения фигуры по траектории никоим образом не связана со скоростью прорисовки кадров, а определяется величиной шага смещения (чем больше шаг ­– тем выше скорость). Следует избегать перегрузки обработчика таймера вычислительными действиями, так как это приводит к «торможению» работы всей операционной системы.

Варианты фигур



Варианты траекторий



1.



2.



3.



4.



5.



6.



7.



8.


Распределение фигур и траекторий движения по вариантам заданий на лабораторную работу

  1. 1 1

  2. 1 2

  3. 1 3

  4. 1 4

  5. 1 5

  6. 1 6

  7. 1 7

  8. 1 8

  1. 2 1

  2. 2 2

  3. 2 3

  4. 2 4

  5. 2 5

  6. 2 6

  7. 2 7

  8. 2 8

  1. 3 1

  2. 3 2

  3. 3 3

  4. 3 4

  5. 3 5

  6. 3 6

  7. 3 7

  8. 3 8

  1. 4 1

  2. 4 2

  3. 4 3

  4. 4 4

  5. 4 5

  6. 4 6

  7. 4 7

  8. 4 8

  1. 5 1

  2. 5 2

  3. 5 3

  4. 5 4

  5. 5 5

  6. 5 6

  7. 5 7

  8. 5 8

  1. 6 1

  2. 6 2

  3. 6 3

  4. 6 4

  5. 6 5

  6. 6 6

  7. 6 7

  8. 6 8

  1. 7 1

  2. 7 2

  3. 7 3

  4. 7 4

  5. 7 5

  6. 7 6

  7. 7 7

  8. 7 8

  1. 8 1

  2. 8 2

  3. 8 3

  4. 8 4

  5. 8 5

  6. 8 6

  7. 8 7

  8. 8 8



Задание на лабораторную работу №2 (расширение ЛР№1)

«Работа с файлами и буфером обмена в Delphi»

Используя класс TClipboard в Delphi 3 зарегистрировать собственный формат обмена информацией через Clipboard (буфер обмена).

В качестве программы, передающей и принимающей данные из буфера обмена использовать программу лабораторной работы №1, соответственно расширив ее интерфейс: кнопками «Копировать» и «Вставить»; текстовым полем для отображения передаваемой информации; меню с командами «Копировать», «Вставить», «Вырезать» и «Удалить», сохранить/читать из текстового файла. Предусмотреть возможность редактирования фигуры из текстового поля.

Добавить в окно прорисовки счетчик кадров, для отображения количества кадров за одну секунду. В программе должно быть объявлено не менее четырех классов: форма приложения, фигура, траектория, буфер обмена. При чтении/записи с помощью OpenDialog и SaveDialog последние должны в качестве стартового каталога предоставлять текущий каталог, где размещается приложение.

В качестве данных, подлежащих обмену через Clipboard, взять координаты вершин фигуры (см. задание на ЛР1).

В Clipboard помещаются два формата: пользовательский формат и текст. Пользовательский формат представлен структурой, изображенной на рисунке 1.
Структура пользовательского формата



Рис.1

Формат текста представлен на следующем примере:
Квадрат

-1,0; 1,0

1,0; 1,0

1,0; -1,0

-1,0; -1,0
Первой строкой, как показано в этом примере, должно быть имя фигуры, а в следующих строках координаты вершин. Количество строк, содержащих координаты вершин будет определять количество вершин в фигуре, но не более тридцати.

Точно такой же текстовый формат используется для сохранения/чтения из файла.

При чтении фигуры из буфера обмена в первую очередь проверяется наличие в нем пользовательского (двоичного) формата. В случае отсутствия в буфере обмена пользовательского формата извлекается текстовый формат.

Если текст, передаваемый вашему приложению, содержит в числах координат недопустимые символы, то используйте блок try .. except, чтобы корректно обработать преобразование (например StrToFloat) и выдать соответствующее сообщение на экран (например ShowMessage). При преобразовании из строки в число с помощью функции StrToFloat необходимо помнить, что представление десятичной точки в операционной системе Windows настраивается пользователем и для корректного перевода потребуется использование переменной DecimalSeparator.

Предусмотреть перехват события WM_DRAWCLIPBOARD – изменение содержимого буфера обмена, то есть при изменении буфера обмена одной программой другие должны сразу отобразить новое содержимое буфера «у себя».

Запрещается многократно опрашивать (например, в циклах) компоненты имеющие событие OnChange.
Дополнительно: при изменении размеров формы изображение в окне прорисовки пропорционально масштабируется, т.е. траектория фигура соответственно масштабируются. Изменение амплитуды «дыхания» не должно ивлиять на скор
Задание на лабораторную работу №3

Работа с классами Exception, TIniFile, TPrinter
Основана на лабораторной работе №2. Используя класс Exception сделать порождение и обработку исключительных ситуаций на файловые операции и операции по работе с выделением блока памяти в операциях с буфером обмена.

С использованием класса TIniFile организовать чтение и сохранение настроек интерфейса: размеры и положение формы приложения; текущее положение движка компонента TrackBar и состояние компонентов CheckBox, цвета фона и тона прорисовки.

С использованием класса TPrinter организовать печать на принтере формы работающего приложения.

ость «дыхания» фигуры.
написать администратору сайта