Распределение фигур и траекторий движения по вариантам заданий на лабораторную работу
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
|
2 1
2 2
2 3
2 4
2 5
2 6
2 7
2 8
|
3 1
3 2
3 3
3 4
3 5
3 6
3 7
3 8
|
4 1
4 2
4 3
4 4
4 5
4 6
4 7
4 8
|
5 1
5 2
5 3
5 4
5 5
5 6
5 7
5 8
|
6 1
6 2
6 3
6 4
6 5
6 6
6 7
6 8
|
7 1
7 2
7 3
7 4
7 5
7 6
7 7
7 8
|
8 1
8 2
8 3
8 4
8 5
8 6
8 7
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 организовать печать на принтере формы работающего приложения.
ость «дыхания» фигуры.