Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабораторні роботи_ООП.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
7.3 Mб
Скачать

Лабораторна робота №10

Тема: Визначення типів. Створення нової компоненти.

Мета: Навчитися створювати нові компоненти засобами Delphi, а також їх встановлювати та тестувати.

Завдання

Створити новий клас, мутант TBitBtn1, в якому змінити значення за умовчанням властивості ShowHint на True і додати нову властивість – лічильник натиснень на кнопку.

Хід роботи

1. Перед початком роботи із створення нового компоненту потрібно створити окремий каталог для модуля і інших файлів компоненту. Після цього можна приступити до створення модуля компоненту.

Для того, щоб створити модуль компоненту, необхідно з меню Component вибрати команду New Component і в поля діалогового вікна New Component (мал. 1), що відкрилося ввести інформацію про створюваний компонент.

Рис. 1. Діалогове вікно New Component

Поле Ancestor type повинне містити базовий тип для створюваного компоненту. Базовий тип компоненту можна задати безпосереднім введенням імені типу або вибором із списку, що розкривається. Для компоненту, що розробляється, базовим компонентом є стандартний компонент BitBtn (поле введення-редагування). Тому базовим типом для типу компоненту, що розробляється, є тип TBitBtn [Buttons].

В полі Class Name необхідно ввести ім'я класу компоненту, що розробляється, наприклад TBitBtn1. Пригадайте, що в Delphi імена типів повинні починатися буквою т.

В полі Palette Page потрібно ввести ім'я вкладки палітри компонентів, на яку після створення компоненту буде доданий його значок. Назву вкладки палітри компонентів можна вибрати із списку, що розкривається. Якщо в полі Palette Page ввести ім'я ще не існуючої вкладки палітри компонентів, то безпосередній перед додаванням компоненту вкладка з вказаним ім'ям буде створена.

В полі Unit, file name знаходиться автоматично сформоване ім'я файла модуля створюваного компоненту. Delphi привласнює модулю компоненту ім'я, яке співпадає з ім'ям типу компоненту, але без букви T. Клацнувши на кнопці з трьома крапками, можна вибрати каталог, в якому повинен бути збережений модуль компоненту.

Після натиснення кнопки ОК до поточного проекту додається сформований Delphi-модуль, що є заготівкою (шаблон) модуля компоненту. Текст цього модуля приведений в лістингу 1.

unit Unit1;

interface

uses

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

Forms, Dialogs, StdCtrls;

type

TMyButton = class(TBitBtn1)

private

{ Private declarations }

protected

{ Protected declarations }

public

{ Public declarations }

published

{ Published declarations }

end;

procedure Register;

implementation

procedure Register;

begin

RegisterComponents('Samples', [TBitBtn1]);

end;

end.

Для прикладу створимо новий клас, мутант TBitBtn1, в якому змінимо значення за умовчанням властивості ShowHint на True і додамо нову властивість – лічильник натиснень на кнопку. Тепер початковий текст виглядає так:

unit BitBtn1;

interface

uses

SysUtils, Classes, Controls, StdCtrls, Buttons;

type

TBitBtn2 = class(TBitBtn)

private

{ Private declarations }

FClickCount : Longint;

FNote: string;

protected

{ Protected declarations }

public

{ Public declarations }

constructor Create(AOwner : TComponent); override;

procedure Click; override;

property ClickCount : Longint read FClickCount write FClickCount;

published

{ Published declarations }

property Note: string read FNote write FNote;

end;

procedure Register;

implementation

constructor TBitBtn2.Create(AOwner : TComponent);

begin

inherited Create(AOwner);

ShowHint:=True;

FClickCount:=0;

end;

procedure TBitBtn2.Click;

begin

Inc(FClickCount);

inherited Click;

end;

procedure Register;

begin

RegisterComponents('Samples', [TBitBtn1]);

end;

end.

Установка компоненту

Для того щоб значок компоненту з'явився в палітрі компонентів, компонент повинен бути доданий в один з пакетів (Packages) компонентів

Пакет компонентів - це файл з розширенням dpk (Delphi Package File). Наприклад, компоненти, створені програмістом, знаходяться в пакеті Dclusr70.dpk.

Під час додавання компоненту в пакет Delphi використовує модуль компоненту і файл ресурсів компоненту, в якому повинен знаходитися бітовий образ значка компоненту. Ім'я файла ресурсів компоненту повинне обов'язково співпадати з ім'ям файла модуля компоненту. Файл ресурсів має розширення dcr (Dynamic Component Resource). Бітовий образ, що знаходиться усередині файла ресурсів, повинен мати ім'я, співпадаюче з ім'ям класу компоненту.

Ресурси компоненту

Файл ресурсів компоненту можна створити за допомогою утиліти Image Editor, яка запускається вибором з меню Tools команди Image Editor.

Для того щоб створити новий файл ресурсу компоненту, потрібно з меню File вибрати команду New і із списку, що з'явився, вибрати тип створюваного файла - Component Resource File.

В результаті відкривається вікно файла ресурсів Untitledl.dcr, а в меню діалогового вікна Image Editor з'являється новий пункт - Resource. Тепер потрібно з меню Resource вибрати команду New/Bitmap і у вікні Bitmap Properties, що відкрилося встановити характеристики бітового образу значка компоненту: Size - 24х24 пікселя, Colors - 16.

В результаті цих дій в створюваний файл ресурсів компоненту буде доданий новий ресурс - бітовий образ з ім'ям Bitmap1 Подвійне клацання на імені ресурсу (Bitmapl) розкриває вікно редактора бітового образу, в якому можна намалювати потрібну картинку.

Створений файл ресурсів компоненту потрібно зберегти в тому каталозі, в якому знаходиться файл модуля компоненту. Для цього треба з меню File вибрати команду Save.

Увага! Ім'я файла ресурсів компоненту (Edit.dcr) повинне співпадати з ім'ям модуля компоненту (Edit.pas), а ім'я бітового образу (Edit) - з ім'ям класу компоненту (Edit).