12160

Режимы design-time и run-time. Объектные процедурные типы. Работа с ini файлами

Лабораторная работа

Информатика, кибернетика и программирование

Лабораторная работа №1 Тема: Режимы designtime и runtime. Объектные процедурные типы. Работа с iniфайлами Цель работы: показать простоту создания приложений в режиме designtime и удобство использования компонентов; показать возможность создания приложений с настраиваемым интер...

Русский

2013-04-24

148.5 KB

16 чел.

Лабораторная работа №1

Тема: Режимы design-time и run-time. Объектные процедурные типы.

Работа с iniфайлами

Цель работы: показать простоту создания приложений в режиме design-time и удобство использования компонентов; показать возможность создания приложений с настраиваемым интерфейсом пользователя применением режима run-time.

Указания к выполнению лабораторной работы

В данной работе необходимо разработать приложение, структура интерфейса которого приведена на рис. 2. Форма 1 должна быть создана в режиме design-time. Содержание формы должно соответствовать индивидуальному варианту. Для создания формы 2 необходимо прочитать структуру компонентов из INI-файла; создать данные компоненты на форме 2; определить их свойства, руководствуясь информацией, полученной из файла; переопределить обработчики событий в режиме run-time в соответствии с вариантом. При закрытии формы 2 все объекты, созданные динамически, должны быть уничтожены.

Рис. 2 – Структура интерфейса пользователя

Вся работа, связанная с чтением данных из ini-файла, заполнением свойств и подключением обработчиков событий должна быть вынесена в отдельный класс, описанный в другом модуле. Пример на подключение обработчиков событий смотри в приложении 1.

Последовательность выполнения действий

Для выполнения работы необходимо выполнить следующие действия:

  1.  Создать главную форму MainForm и разместить на ней две кнопки из палитры компонентов;
  2.  Создать форму DesignTimeForm в режиме design-time, содержание и функциональность которой соответствует индивидуальному варианту;
  3.  Описать структуру ini-файла;
  4.  Создать тестовый ini-файл с соответствующей структурой;
  5.  Создать модуль ComponentManagerUnit с описанием класса TComponentManager, который хранит ссылки на компоненты формы, выполняет чтение данных из ini-файла, содержит методы, определяющие свойства и обработчики событий для компонентов.
  6.  Создать пустую форму в режиме design-time с именем RunTimeForm;
  7.  В разделе private класса TRunTimeForm описать ссылки на компоненты в соответствии с индивидуальным вариантом;
  8.  В обработчике события формы OnCreate описать ссылку на объект TComponentManager, вызвать конструкторы для компонентов формы (см. пункт 7) и вызвать соответствующие методы этого объекта, позволяющие произвести чтение необходимых данных из файла и заполнение свойств компонентов.
  9.  В обработчике события формы OnCreate вызвать методы объекта TComponentManager, подключающие соответствующие обработчики событий.

Варианты заданий

Вариант 1

Необходимо разработать программу-заставку с изменяющейся во времени информационной строкой. На форме должна отображаться смаштабированная картинка, а также информационная строка, изменяющая вое значение в определенные интервалы времени. В iniфайле хранится путь к картинке, время отображения заставки на экране в секундах, список информационных строк и информация о времени отображения каждой строки. Закрытие заставки должно происходить по двум событиям: истечение времени таймера или “клик” по форме-заставке (событие OnClick).

Вариант 2

Необходимо разработать приложение, отображающее на экране систему меню. При выборе пункта меню на форме должна появляться геометрическая фигура (круг, квадрат, прямоугольник и т.д.). Для отображения фигуры использовать компонент TShape. В ini-файле должна храниться информация о нулевом уровне пунктов меню, о первом уровне пунктов меню, о виде отображаемой фигуры для пунктов первого уровня. Также в файле должна храниться информация о стиле заполнения фигуры.

Вариант 3

Создание главного окна с возможностью последующей загрузки стандартных приложений Windows (calc.exe, wordpad.exe и т.д.). На форме должны размещаться компоненты TLabel, при нажатии на которые происходит запуск приложений. В ini-файле содержится информация о количестве приложений, заголовках компонентов, список приложений, стиль вывода формы (по центру, на весь экран, свернутое состояние), координаты вывода формы. Если задан стиль, то координаты вывода игнорируются.

Вариант 4

Необходимо разработать приложение, позволяющее производить загрузку стандартных приложений windows. Отображение списка приложений может производится в двух режимах:

  1.  В списке выбора (компонент TListBox);
  2.  С помощью кнопок (компоненты TButton).

В ini-файле хранятся следующие данные: тип отображения (1 или 2), список заголовков приложений и список командных строк для запуска приложений.

Вариант 5

Создание информационного окна с возможностью задания параметров шрифта (использование компонента TLabel). В ini-файле содержится информация о количестве надписей на форме, о типе и размере шрифта для каждой надписи, о стиле вывода (жирный, курсив, зачеркнутый). При клике на любую надпись размер ее шрифта должен увеличиться в 2 раза, при следующем клике – уменьшиться в 2 раза и т.д.

Вариант 6 

Создание информационного окна с возможностью выравнивания текста и выбора цвета (использование компонента TLabel). В ini-файле содержится информация о количестве надписей на форме, о типе и размере шрифта для каждой надписи, о формате вывода (вывол в одну строку, вывод в несколько строк), о выравнивании (по левому краю, по правому краю, по центру), о цвете надписи. При клике на любую надпись ее цвет должен инвертироваться. Если при инвертировании цвет фона и надписи совпадают, то устанавливается цвет по умолчанию, информация о котором также хранится в файле.

Вариант 7 

Необходимо разработать прилодение, выдающее на экран диалоговое окно. В ini-файле хранится следующая информация: количество кнопок и надписи на них, футь к файлу-картинке, заголовок диалога, информационная строка, место расположения и размеры области, в которой планируется вывод картинки. В приложении предусмотреть список обработчиков событий для кнопок.

Вариант 8 

Окно со списком выбора слов и кнопкой генерации предложения. Список слов представлен на форме совоукпностью компонентов checkboxes. В ini-файле содержится следующая информация: количество слов, цвет вывода, список слов. При запуске формы пользователь выбирает соответствующие слова из вписка, после чего, про нажатии на кнопку “Сгенерировать”, происходит генерация словосочетания (вывод в TEdit). Порядок слов не важен.

Вариант 9 

Окно со списком выбора (radiogroups) приложений и кнопкой запуска. В ini-файле хранятся следующие данные: список заголовков приложений и список командных строк для запуска приложений.

Список вопросов к защите

1. Дать определение понятию среда визуальной разработки?

2. Дать определение понятию компонент?

3. Что такое компонентная модель?

4. Что такое компонентная среда?

5. Чем компонент отличается от класса?

6. Какие специцикаторы у свойств вы знаете?

7. Чем свойства отличаются от полей?

8. Что такое свойства-массивы?

9. Что такое свойства по умолчанию?

10. Чем процедурные типы отличаются от объектных процедурных типов?

11. Как в переменную объектного процедурного типа поместить адрес метода?

12. Как в переменную объектного процедурного типа поместить адрес процедуры (функции)?

13. Каковы основные этапы создания объектов в режиме run-time?

14. Описать жизненный цикл компонента в Delphi.

15. Описать общую структуру ini-файла.

16. Какой класс для работы с Ini-файлами существуют в Delphi? Методы класса? 

PAGE  3


 

А также другие работы, которые могут Вас заинтересовать

36217. Уравнения Колмогорова. Моделирование многоканальной СМО с ограничением на длину очереди 75.5 KB
  Моделирование многоканальной СМО с ограничением на длину очереди Марковские процессы уравнения Колмогорова Случайный процесс t называется Марковским если его будущее не зависит от прошлого а определяется настоящим т. Примерами Марковских процессов являются при определенных предположениях процессы функционирования СМО.1 СМО может иметь установившийся стационарный режим. Для построения модели стационарного режима СМО положим все производные в системе 11 равными нулю.
36218. Имитация Марковских процессов с непрерывным временем и дискретными состояниями. Планирование машинных экспериментов при имитационном моделировании 91.5 KB
  Например пусть 1 время через которое должен произойти переход в состояние Sj1 а 2 время через которое должен произойти переход в состояние Sj2. Обозначим Т время в течении которого будем наблюдать имитируемый процесс время прогона. Для тех дуг что i = k0 сформировать с помощью датчика случайных чисел k0 j время ожидания перехода Sk0 Sj. Определить время пребывания в состоянии Sk0 через какое время будет реальный переход в новое состояние.
36219. Классификация моделей оптимального синтеза. Методы релаксации в непрерывной оптимизации, условия сходимости. Алгоритмы градиентного метода и методов сопряжённых градиентов 119 KB
  Задача линейного программирования ЛП функции критериев qkx и ограничений fix линейны; если хотя бы одна из этих функций нелинейна то имеем задачу нелинейного программирования НЛП. Задача выпуклого программирования функции критериев qkx и ограничений fix выпуклые. Задача линейного целочисленного программирования функции критериев qkx и ограничений fix линейны контролируемые входные переменные хj целые числа. Оценка приращения функции Лемма 6.
36220. Теоретические основы линейного программирования. Симплекс-метод. Метод искусственного базиса 93.5 KB
  Канонической формой задачи ЛП называется такая ее запись при которой 1 целевая функция должна быть минимизирована; 2 все искомые переменные должны быть неотрицательны; 3 все ограничения кроме неотрицательности переменных имеют вид равенства. Оптимальные значения переменных от такой замены не изменятся. 2 Если в исходной задаче на какойто параметр хj не наложено условие неотрицательности то можно сделать замену переменных положив где новые переменные удовлетворяющие условию неотрицательности. 3 Преобразование неравенств в...
36221. Очередь. Работа с динамической очередью 246 KB
  Например: Работа с очередью Для создания очереди и работы с ней необходимо иметь как минимум два указателя: на начало очереди возьмем идентификатор BegQ; на конец очереди возьмем идентификатор EndQ. Установка указателей BegQ и EndQ на созданный первый элемент: Удаление элемента очереди 1. Перестановка указателя начала очереди BegQ на следующий элемент используя значение поля Link которое хранится в первом элементе. После этого освобождается память начального...
36222. Парадигмы программирования. Правила структурного программирования 37.5 KB
  Создавались вполне работоспособные программы. Это можно объяснить только тем что программы в те времена были в основном простые работала над каждой группа не больше чем 10 человек а чаще всего вообще только программист. Он же потом осуществлял сопровождение программы и перенос в случае необходимости на другие аппаратные платформы...
36223. Понятия класса, объекта 25 KB
  Одним из самых главных понятий языка С является понятие класса с1аss. Понятие класса напоминает понятие записи в языке PSCL. По умолчанию все элементы класса приватные поэтому ключевое слово рrivаte можно опустить.
36224. Инкапсуляция. Вызов функций – членов класса 24.5 KB
  Вызов функций членов класса. В объектноориентированном программировании данные и функции их обрабатывающие могут быть объединены вместе в рамках одного класса как бы помещены в 1 капсулу что и является инкапсуляцией. Обычно данные класса объявляются рrivte и работа с ними возможна только методами данного класса. можно вызывать их за пределами класса.
36225. Конструкторы и деструкторы. Функции в языке С++ 29 KB
  Функции в языке С В С самостоятельные программные модули называются функциями. При описании функции должен быть указан тип возвращаемого значения он указывается перед именем функции. Но функции должны быть описаны до того когда они будут вызваны другими функциями. Вызов функции fx y передаётся адрес fxy передаются сами переменные Если return есть в теле функции то заканчивается выполнение функции а потом возврат.