Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Лабораторная работа №6 (2 часа)




 

Создание нового компонента

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

Оборудование: ПЭВМ IBM PC-AT.

Программные средства: ОС семейства Windows, среда Delphi 5.* (или выше).

 

Задание

Создать на основе формы About Box из Репозитория объектов простой компонент TaboutBoxDlg — диалоговое окно.

Подключить этот компонент в палитру Компонентов Delphi.

Создать новый проект, добавив в него единственный компонент — созданный TaboutBoxDlg. Задать его свойства через Инспектор объектов, откомпилировать проект, проверить правильность работы компонента.

 

Программа работы

 

1. Изучить последовательность действий по созданию нового компонента.

2. Определить интерфейс для создаваемого компонента.

3. Написать исходный код компонента.

4. Выявить и исправить ошибки.

5. Расставить по тексту комментарии.

6. Проинсталлировать компонент в палитру Компонентов.

7. Написать тестовую программу и с её помощью проверить работоспособность вновь созданного компонента.

 

Пояснения к работе

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

При создании компонента требуется выполнение следующих шагов:

1. Определение интерфейса компонента.

2. Создание компонента и подготовка его к регистрации.

3. Создание интерфейса компонента, инсталляция его в палитру.

4. Тестирование компонента.

 

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

Шаг 1. Для примера лучше выбрать готовый код программы, написанной на Delphi, и далее спроектировать компонент — "обёртку", в которую его и вложить — сделать "начинку". В качестве "начинки" выберем окно диалога из Репозитория объектов с описанием класса TAboutBox.

Ваш компонент будет создавать и выполнять диалоговое окно во время исполнения программы, передавая данные, определённые при разработке.

Шаг 2. Создание компонента требуется начать с создания нового рабочего каталога (для лабораторной работы №6).

Скопируйте в этот каталог файлы ABOUT.PAS и ABOUT.DFM из директории "C:\ProgramFiles\Borland\Delphi3\Objrepos" (или "C:\Program Files\Borland\Delphi4\ Objrepos", в зависимости от версии продукта). Они потребуются для использования в качестве библиотек для "начинки" (почти любая форма, т. е. её файлы с расширением PAS и DFM, может функционировать как диалоговое окно в этом контексте).

Запустите Delphi и выполните команду "Close all" . Затем создайте новый unit (File|New закладка New, выбрать "Unit").

В появившемся окне редактора кода сотрите все строчки и внесите туда пустой шаблон для создания компонента TaboutBoxDlg с объявлением нового класса и единственной процедурой для регистрации компонента с именем "TaboutBoxDlg" на странице палитры "Samples":

 

unit AboutDlg; //Название модуля

Interface

uses // Используемые библиотеки

SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,

Forms;

type // Объявление нового типа компонента

TAboutBoxDlg = class(TComponent)

end;

procedure Register; // Объявление процедуры регистрации компонента

Implementation

procedure Register; // Описание процедуры регистрации

Begin

// Samples — название страницы палитры

// TAboutBoxDlg — имя компонента

RegisterComponents('Samples', [TAboutBoxDlg]);

end;

end.

 

Сохраните шаблон компонента в рабочем каталоге в модуле с именем "AboutDlg.pas".

Для того чтобы инициализировать и отобразить "обернутое" диалоговое окно TaboutBox, вы должны добавить модуль его формы в шаблон компонента, сделав объявление в разделе uses.

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

 

Uses

SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, About;

 

Теперь необходимо объявить переменную класса формы для последующего использования. В нашем случае требуется объявить переменную типа TAboutBox. В шаблоне компонента перед оператором implementation должен появиться следующей код:

 

Var

AboutBox: TAboutBox;

 

Выполненных действий будет достаточно для того, чтобы зарегистрировать новый класс компонента. Но как с ним работать? Какими свойствами и интерфейсными функциями он обладает? Для создания интерфейса компонента перейдём к следующему шагу.

Шаг 3. Сначала добавим интерфейсные свойства. Для этого необходимо выделить четыре поля со строковым типом – по одному под каждую характеристику программного продукта: название, версию, авторское право, любые комментарии. После необходимо объявить свойства – переменные, через которые будут доступны для редактирования значения соответствующих полей в Инспекторе объектов. При этом после оператора объявления класса объекта

 

TAboutBoxDlg = class(TComponent)

 

добавится следующий код:

 

Private

// выделение четырёх полей строкового типа

FProductName, FVersion, FCopyright, FComments: string;

Published

// объявление интерфейсных свойств, через которые будут

// доступны на запись и на чтение строковые поля

property ProductName:string read FproductName

write FProductName;

property Version:string read FVersionwrite FVersion;

property Copyright:string read FCopyrightwrite FCopyright;

property Comments:string read FCommentswrite FComments;

 

Позднее, когда Вы проинсталлируете компонент в Палитру компонентов и разместите компонент на форме, Вы сможете редактирвать свойства — “реквизиты” программы, и их значения будут автоматически меняться у формы AboutBox.

Заключительная часть при проектировании интерфейса компонента - создание способа открытия окна диалога, который должен возвращать результат его отработки при закрытии. Для этого добавим в шаблон компонента метод с названием Execute, который будет вызывать диалог с формой AboutBox и возвращать результат через стандартную переменную Result:

 

Type

TAboutBoxDlg = class(TComponent)

Public

// объявление функции Execute, которая будет возвращать значение

// типа Boolean

function Execute: Boolean;

end;

function TAboutBoxDlg.Execute: Boolean;

Begin

// конструктор переменной

AboutBox := TAboutBox.Create(Application);

Try

// если название продукта при проектировании не задано, то …

if ProductName = '' then

// … использовать название приложения как имя продукта

ProductName := Application.Title;

// Заголовку метки ProductName присвоить значение,

// заданное в свойстве ProductName

AboutBox.ProductName.Caption := ProductName;

// Заголовку метки Version присвоить значение,

// заданное в свойстве Version

AboutBox.Version.Caption := Version;

// Заголовку метки Copyright присвоить значение,

// заданное в свойстве Copyright

AboutBox.Copyright.Caption := Copyright;

// Заголовку метки Comments присвоить значение,

// заданное в свойстве Comments

AboutBox.Comments.Caption := Comments;

// Заголовку формы присвоить значение:

// 'About ' + ProductName

AboutBox.Caption := 'About ' + ProductName;

with AboutBox do begin

// Скопировать изображение иконки в

// поле Graphic объекта Picture,

// расположенного на форме

ProgramIcon.Picture.Graphic := Application.Icon;

// выполнить диалог и установить результат

// (Result - стандартная переменная в Delphi для

// возвращения значений функции)

Result := (ShowModal = IDOK);

end;

Finally

AboutBox.Free; // высвободить память после

// отработки диалога

end;

end;

 

Далее сохраните внесённые в модуль изменения.

Выберите пункт главного меню "Component|Install component…". В появившемся диалоговом окне нажмите кнопку "OK".

На последующие запросы о перезагрузке и новой комплектации пакета с расширением BPL ответьте в обоих случаях "Yes".

После компиляции компонента закройте окно "Package…". На запрос о сохранении изменений в файле с расширением BPL ответьте "Yes".

Инсталляция окончена.

Шаг 4. Создайте новое приложение с пустой формой.

На форму поместите созданный Вами компонент TaboutBoxDlg со страницы палитры Samples. Задайте все необходимые его свойства через Инспектор объектов. Поместите на форму компонент "Кнопка" и по его событию OnClick покажите экземпляр формы компонента TaboutBoxDlg:

 

procedure TForm1.Button1Click(Sender: TObject);

Begin

AboutBoxDlg1.Execute;

end;

 

Откомпилируйте проект. Проверьте правильность работы компонента и продемонстрируйте работу преподавателю.

Контрольные вопросы и задания

 

1. Для чего создаются новые компоненты?

2. Перечислите стадии проектирования нового компонента.

3. Перечислите характерные отличия модуля – шаблона компонента от отдельного модуля исходного кода любого ПП.

4. Что такое свойства компонента?

5. Каково назначение процедуры RegisterComponents()?

6. Каково назначение метода Execute?

7. Каким образом проинсталлировать новый компонент в Палитру компонентов?










Последнее изменение этой страницы: 2018-05-27; просмотров: 206.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...