Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Теоретические сведения. Разработку компонента можно начать с создания проекта пакета (Package)




Разработку компонента можно начать с создания проекта пакета (Package). Для этого выполним File\New\Other.. \ New \ Package (рис. 22.1). При этом откроется окно управления проектом пакета компонентов (рис. 22.2).

Теперь необходимо установить текущие каталоги, для этого нажимаем кнопку Options и на закладке Directories изменяем поля (рис. 22.3):

Output directory =.

DCP output directory =.

Точка означает текущий каталог.

Как и для любого проекта выполняем Save Project As… (проект желательно сохранить в отдельном каталоге, изменив стандартное имя проекта Package1.dpk на свое, например StdVar.dpk). Компилируем и выполняем установку пакета, нажимая кнопку Install в окне управления проектом пакета. В случае удачной установки пакета получаем сообщение, показанное на рис. 22.4.

С этого момента в каталоге проекта находятся следующие файлы: StdVar.bpl, StdVar.cfg, StdVar.dcp, StdVar.dcu, StdVar.dof, StdVar.dpk, StdVar.res.

Кроме этого файл StdVar.bpl интегрирован в состав среды разработки Delphi и поэтому для корректной работы не может быть перемещен в другой каталог (или удален) без очистки списка используемых пакетов. Таким образом, для удаления пакета нужно указать в списке Design packages необходимый пакет и нажать кнопку Remove. После этого с файлом *.bpl можно выполнять необходимые манипуляции. Для добавления существующего пакета достаточно, нажав кнопку Add…, указать его местонахождение (рис. 22.5).

 

Рис. 22.1. Хранилище объектов Delhi с выбранным шаблоном Package

Рис. 22.2. Окно управления проектом пакета компонентов

Рис. 22.3. Установка текущих каталогов

Рис. 22.4. Сообщение об удачной инсталляции компонента

 

Теперь можно приступать к созданию компонента. Для этого необходимо в окне управления проекта пакета нажать кнопку Add и в появившемся окне на закладке New Component заполнить поля:

· Ancestor type (базовый класс компонента), например TTimer;

· Class Name (имя класса создаваемого компонента), например TMyTimer;

· Palette page (имя страницы в палитре компонентов), здесь лучше указать уникальное имя для создания своей странички, например Std;

· Unit file name (местонахождение файла компонента) изменяем на текущий каталог проекта.

Нажимаем Ok и выполняем Save All (рис. 22.6).

После компиляции получаем сообщение, показанное на рис. 22.7, и на палитре компонентов появляется новая закладка с именем Std, которая содержит созданный компонент (рис. 22.8).

Рис. 22.5. Окно опций проекта, содержащего пакеты

Рис. 22.6. Окно опций проекта, содержащего пакеты

 

 

Рис. 22.7. Сообщение об успешной инсталляции компонента

 

Рис. 22.8. Новая закладка на палитре компонентов
с пользовательским компонентом.

Порядок выполнения работы

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

1.2. Создать проект пакета (package) и настроить проект для сохранения результатов компиляции в текущем каталоге (по умолчанию результаты компиляции сохраняются в системном каталоге, который может быть защищен от записи)

2.3. Разработать компонент (обязательно со своими свойствами и событиями соответствующие заданию и с учетом наработок по п.1) путем модификации стандартных компонентов и/или объединения нескольких стандартных компонентов в один. Выполнить его установку в среде разработки Delphi.

3.4. Разработать приложение для тестирования созданного компонента.

Варианты

1. Переключатель, состоящий из двух кнопок (TButton). При нажатии на одну кнопку происходит ее фиксация в нажатом состоянии до нажатия на вторую

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

3. Два ползунка (TTrackBar) для выбора минимальной и максимальной границы с контролем Min <= Max. Реализовать события изменяющие минимальное и максимальное значения.

4. Разработать аналог TSpinEdit чисел с плавающей точкой.

5. Разработать TLabel с автоматическим отображением текущего времени.

6. Двухцветный индикатор, аналог TProgressBar с использованием второго цвета для отображения уровня больше заданного (этот компонент удобнее создать на базе TPanel).

7. Расширить функциональность TEdit для ввода чисел с плавающей точкой и цветовой индикацией корректных и ошибочных значений.

8. Аналог TSpinEdit с днями недели в качестве значений.

9. Группа, состоящая из семи TCheckBox (по аналогии с TRadioGroup), где каждый элемент используется для представления и выделения дней недели.

10. Расширить функциональность TEdit для ввода целых значений с единицами длины (мм, см, дм, м) и возвратом вещественного значения в метрах.

11. Комбинация TEdit и TScrollBar (аналог TSpinEdit) для ввода целых значений.

12. Аналог TSpinEdit с названиями месяцев в качестве значений.

13. Расширить функциональность TEdit для ввода вещественных чисел с дополнительным выделением цветом значений, больших максимального и меньших минимального.

14. Комбинация TEdit и TTrackBar (аналог TSpinEdit) для ввода целых значений.

15. Скомбинировать TPogressBar и TLabel для отображения состояния TPogressBar в процентах.

16. Кнопка с блокировкой после определенного количества нажатий.

17. TEdit с блокировкой ввода в случае несовпадения вводимого значения с контрольным.

18. Будильник, который генерирует событие в определенное время.

19. Расширить функциональность TEdit для отображения целых и вещественных значений, а также нечисловых значений соответствующим цветом фона.

20. Расширить функциональность TEdit для ввода целых значений с единицами измерения объема информации (B, kB, MB, GB) и возвратом значений в байтах. Если единицы при вводе информации не заданы, то по умолчанию считать как байты.

21. Группа, состоящая из двенадцати TCheckBox (по аналогии с TRadioGroup), где каждый элемент используется для представления и выделения месяцев.

22. Сгруппировать семь элементов TCheckBox и TEdit в один компонент. При вводе однобайтового значения преобразовать его в двоичный код и соответственно установить свойства Checked элементов TCheckBox.

23. Обратная задача 22. Использовав семь элементов TCheckBox, вывести в TEdit десятичное значение.

24. Сгруппировать не менее пяти элементов TButton в один блок переключателей с фиксацией нажатого состояния, при этом одна из кнопок должна сбрасывать нажатое состояние у всех остальных.

25. Сгруппировать несколько элементов TSpinEdit, где каждый из них будет отвечать за соответствующий десятичный разряд числа типа Word

Контрольные вопросы

1. Особенности создания компонентов пользователя.

2. Добавление новых свойств к базовым компонентам.

3. Особенности инсталляции компонента пользователя.

Домашнее задание № 6
Компоненты: Поля редактирования, группа переключателей. обработка событий клавиатуры

Цель работы: изучение компонентов TRadioGroup и их основных свойств, обработка событий клавиатуры.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных