Создание собственных компонент Содержание icon

Создание собственных компонент Содержание



НазваниеСоздание собственных компонент Содержание
Дата конвертации17.07.2012
Размер68.97 Kb.
ТипОбзор
1. /Введение в DELPHI/Alexs.rtf
2. /Введение в DELPHI/Les00.rtf
3. /Введение в DELPHI/Les11.rtf
4. /Введение в DELPHI/Les110.rtf
5. /Введение в DELPHI/Les12.rtf
6. /Введение в DELPHI/Les13.rtf
7. /Введение в DELPHI/Les14.rtf
8. /Введение в DELPHI/Les15.rtf
9. /Введение в DELPHI/Les16.rtf
10. /Введение в DELPHI/Les17.rtf
11. /Введение в DELPHI/Les18.rtf
12. /Введение в DELPHI/Les19.rtf
13. /Введение в DELPHI/Les21.rtf
14. /Введение в DELPHI/Les22.rtf
15. /Введение в DELPHI/Les23.rtf
16. /Введение в DELPHI/Les31.rtf
17. /Введение в DELPHI/Les310.rtf
18. /Введение в DELPHI/Les311.rtf
19. /Введение в DELPHI/Les32.rtf
20. /Введение в DELPHI/Les33.rtf
21. /Введение в DELPHI/Les34.rtf
22. /Введение в DELPHI/Les35.rtf
23. /Введение в DELPHI/Les36.rtf
24. /Введение в DELPHI/Les37.rtf
25. /Введение в DELPHI/Les38.rtf
26. /Введение в DELPHI/Les39.rtf
27. /Введение в DELPHI/Les41.rtf
28. /Введение в DELPHI/Les42.rtf
29. /Введение в DELPHI/Les43.rtf
30. /Введение в DELPHI/Les44.rtf
31. /Введение в DELPHI/Les45.rtf
32. /Введение в DELPHI/Menu.doc
HighWay Soft Group
Borland Delphi
Среда программирования Delphi Содержание
Средства создания мультимедийных приложений Содержание
html">Проект Delphi Пункт меню "File"
Обзор Палитры Компонент Содержание
Рисование и закраска Содержание
Печать текстовая и графическая Содержание
Свойства в Delphi Содержание Îáçîð -error: Reference source not found
Обзор
Обработка исключительных ситуаций в Delphi Содержание
События в Delphi Содержание
Dynamic Data Exchange получило свое имя потому, что позволяет двум приложениям обмениваться данными (текстовыми, через глобальную память) динамически во время выполнения. Связь между двумя программа
Ole содержание Обзор Основы ole объект tolecontainer Пример ole приложения Сохранение ole объекта в базе данных Обзор
Использование dll в Delphi Содержание
Обзор
Управление транзакциями Содержание
Local InterBase Содержание
Настройка bde содержание Обзор 2 Обзор
Создание таблиц с помощью Database Desktop Содержание
Создание таблиц с помощью sql-запросов Содержание
Содержание
Компонент ttable. Создание таблиц с помощью компонента ttable Содержание
Содержание
Содержание
Управление соединением с базой данных (класс tdataBase,объект Session) Содержание
Создание собственных компонент Содержание
Редакторы свойств Содержание
Содержание
Урок 30: Основы языка sql содержание урока 30
Обзор Local InterBase 0 les311. rtf Подменю «Сложный материал» Создание собственных компонент les41. rtf Создание редакторов свойств компонент les42. rtf Генератор отчет

32 óðîêà ïî Delphi



Создание собственных компонент


Содержание

Обзор

Добавление новых объектов в VCL

Заготовка для нового компонента

Соглашения по наименованиям

Выбор предка

Пример создания компонента


Обзор


Поскольку Delphi является открытой средой и позволяет не только использовать объекты из Библиотеки Визуальных Компонент (VCL) в своей программе, но и создавать новые объекты. Причем, ничего другого, кроме Delphi, для этого не требуется. Создание нового объекта в Delphi не является очень сложной задачей, хотя для этого и требуется знание Windows API, объектно-ориентированного программирования и иерархии классов в VCL.

Может возникнуть вопрос; если в Delphi уже есть своя библиотека, то зачем еще создавать какие-то объекты? Ответ прост: нельзя создать библиотеку на все случаи жизни и на все вкусы. Новые компоненты, во-первых, позволяют расширить область применения Delphi: например, с помощью библиотек объектов третьих фирм разрабатывать приложения для работы в Internet. Во-вторых, позволяют дополнить или настроить для себя имеющиеся в VCL объекты (например, переопределить значения свойств, устанавливаемые по умолчанию).

Добавление новых объектов в VCL


Предположим, что у вас появился уже готовый компонент. Как его добавить в VCL? Для этого выберите пункт меню Options|Install Components… Появится диалог, как на рис.1




Рис.: Диалог установки нового компонента

Нажмите “Add” и укажите модуль, содержащий процедуру регистрации, нажмите “OK” и после успешной перекомпиляции новый объект появится в палитре.

Заготовка для нового компонента


В среде Delphi есть специальный эксперт, создающий заготовку для нового компонента. Вызвать его можно в пункте меню File|New Component… (см рис.2)




Рис.: Эксперт для создания нового компонента

В диалоге нужно указать имя нового класса (например, TMyButton), предка класса (TButton) и страницу палитры, куда поместить новый компонент (Samples). Если нажать “OK”, то эксперт создаст модуль - заготовку для нового компонента:


unit Unit1;


interface


uses

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

Forms, Dialogs, StdCtrls;


type

TMyButton = class(TButton)

private

{ Private declarations }

protected

{ Protected declarations }

public

{ Public declarations }

published

{ Published declarations }

end;


procedure Register;


implementation


procedure Register;

begin

RegisterComponents('Samples', [TMyButton]);

end;


end.


Модуль содержит декларацию нового класса и процедуру его регистрации в Палитре Компонент. В процедуре RegisterComponents первый параметр - имя страницы (можно указать свое имя - появится новая страница); второй параметр - множество объектов для регистрации.

Теперь модуль нужно сохранить под новым именем (например, NEW_BTN.PAS) и приступить к дописыванию новых свойств и методов. После того, как эта работа закончена и новый компонент отлажен, можно добавить его в Палитру (см. предыдущую главу). Но перед этим желательно создать файл ресурсов, в котором будет лежать пиктограмма для представления данного объекта в Палитре Компонент. Файл ресурсов можно создать с помощью программы Resource Workshop, называться он должен точно так же, как модуль регистрации компонента и иметь расширение .DCR (т.е., если объект регистрируется в модуле NEW_BTN.PAS, то тогда имя файла ресурсов будет NEW_BTN.DCR). В файле ресурсов должен находиться ресурс типа BITMAP - картинка размером 28x28 точки (можно меньше), название картинки должно совпадать с именем класса (в нашем случае TMYBUTTON).

Соглашения по наименованиям


Если вы рассматривали исходные тексты VCL, то могли видеть, что они следуют нескольким простым соглашениям при определении новых классов. Delphi этого не требует, имена методов, свойств и т.п. могут быть любыми, компилятору это безразлично. Но если следовать этим соглашениям, то разработка новых компонентов и чтение исходных текстов станет существенно проще.

Итак:

Все декларации типов начинаются на букву T. Еще раз, Delphi не требует этого, но это делает очевидным, что "TEdit", например, есть определение типа, а не переменная или поле класса.

Имена свойствам нужно давать легко читаемые и информативные. Нужно помнить, что пользователь будет их видеть в Инспекторе Объектов. И имя вроде "TextOrientation" много удобнее, нежели "TxtOr". То же самое относится к методам. Методы, доступные пользователю, должны иметь удобные названия.

При создании свойств типа Event, имя такого свойства должно начинаться с “On” (например, OnClick, OnCreate и т.д.).

Имя метода для чтения свойства должен начинаться со слова “Get”. Например, метод GetStyle должен выполнять чтение для свойства Style.

Имя метода для записи свойства должен начинаться со слова “Set”. Например, метод SetStyle должен выполнять запись в свойство Style.

Внутреннее поле для хранения данных свойства должно носить имя, начинающееся с буквы “F”. Например, свойство Handle могло бы храниться в поле FHandle.

Конечно же, есть исключения из правил. Иногда бывает удобнее их нарушить, например, класс TTable имеет свойства типа Event, которые называются BeforePost, AfterPost и т.п.

Выбор предка


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

TObject - Можно использовать в качестве предка, если с этим компонентом не нужно работать во время дизайна. Это может быть, например, класс, содержащий значения переменных среды (environment) или класс для работы с INI файлами.

TComponent - Отправная точка для многих невидимых компонент. Данный класс обладает встроенной возможностью сохранять/считывать себя в потоке во время дизайна.

TGraphicControl - Используйте этот класс для создания видимых компонент, которым не нужен handle. Такие компоненты рисуют прямо на своей поверхности и требуют мало ресурсов Windows.

TWinControl - Базовый класс для компонент, которые имеют окно. Данное окно имеет свой handle, его используют при доступе к возможностям Windows через API.

TCustomControl - Потомок TWinControl, вводит понятие канвы (Canvas) и метод Paint() для лучшего контроля за прорисовкой компонента. Именно этот класс используется в качестве базового для построения большинства видимых компонент, имеющих оконный handle.

TXxxxx - Класс вроде TEdit или TButton. Используются с целью доопределения их свойств и методов или переопределения значения свойств, принимаемых по умолчанию.

Пример создания компонента


Для примера создадим новый класс, мутант TButton, в котором изменим значение по умолчанию свойства ShowHint на True и добавим новое свойство - счетчик нажатий на кнопку. Заготовка модуля для создания нового компонента уже есть (см. пункт Заготовка для нового компонента). Теперь исходный текст выглядит так:


unit New_btn;

interface

uses

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

Controls, Forms, Dialogs, StdCtrls;


type

TMyButton = class(TButton)

private

{ Private declarations }

FClickCount : Longint;

protected

{ Protected declarations }

public

{ Public declarations }

constructor Create(AOwner : TComponent); override;

procedure Click; override;

property ClickCount : Longint read FClickCount write

FClickCount;

published

{ Published declarations }

end;


procedure Register;


implementation


constructor TMyButton.Create(AOwner : TComponent);

begin

inherited Create(AOwner);

ShowHint:=True;

FClickCount:=0;

end;


procedure TMyButton.Click;

begin

Inc(FClickCount);

inherited Click;

end;


procedure Register;

begin

RegisterComponents('Samples', [TMyButton]);

end;

end.


Для того, чтобы переопределить начальное значение свойства при создании объекта, нужно переписать конструктор Create, в котором и присвоить этому свойству нужное значение (не забыв перед этим вызвать конструктор предка).

Новое свойство для подсчета нажатий на клавишу называется ClickCount. Его внутреннее поле для сохранения значения - FClickCount имеет тип Longint, емкости поля хватит надолго.





Óðîê 27: Ñîçäàíèå ñîáñòâåííõ êîìïîíåíò


Epsylon Technologies






Похожие:

Создание собственных компонент Содержание icon«Создание собственных электронных образовательных продуктов»
Место проведения: ресурсный центр муниципальное общеобразовательное учреждение «Средняя общеобразовательная школа пос. Бурный» Энгельсского...
Создание собственных компонент Содержание iconСоздание com-компонент "среднего слоя" в среде Microsoft Visual FoxPro Михаил Дроздов
Схема обращения клиента к серверу через soap (Simple Object Access Protocol) протокол
Создание собственных компонент Содержание iconЭренфест–Иоффе научная переписка (М.: Наука, 1973. – фрагменты из книги) стр. 8
...
Создание собственных компонент Содержание iconУчебный план III ступени Муниципального общеобразовательного учреждения «Средняя общеобразовательная школа №33»
Региональный (национально – региональный) компонент и компонент образовательного учреждения
Создание собственных компонент Содержание iconП/п Содержание
Создание системы методической работы в оу, обеспечивающей сопровождение введения фгос ноо
Создание собственных компонент Содержание iconМуниципальное общеобразовательное учреждение «Средняя общеобразовательная школа с. Пролетарского»
Этот компонент наряду с другими компонентами учебно-воспитательного процесса (содержание, методы, средства, формы организации) должен...
Создание собственных компонент Содержание icon4 На III ступени организуется профильное обучение по следующему направлению: 10 -11 классы – социально-экономический профиль. 2
Учебный план III ступени содержит базовый и профильный компонент государственного образовательного стандарта. Базовый компонент содержит...
Создание собственных компонент Содержание iconДокументы
1. /Аппроксимация/1/lab5.doc
2. /Аппроксимация/2/CHM5.DOC
Создание собственных компонент Содержание iconРешение о введении форменной одежды принято Ученым советом 25 июня 2004 г. В целях возрождения исторических традиций Первого высшего учебного заведения в Уральском регионе
Он имеет многолетнюю богатую историю. Как и в любом уважающем себя вузе, в нем возникают и поддерживаются определенные традиции и...
Создание собственных компонент Содержание icon«Тестирование датчиков цифровой лаборатории «Архимед» Разработка и изготовление собственных датчиков для цифровых лабораторий» Камышенкова Алла
Учебно-исследовательская работа посвящена тестированию датчиков цифровой лаборатории Архимед, разработке и изготовление собственных...
Создание собственных компонент Содержание iconМорфологический подход Владимир Павлович Галкин, кандидат технических наук, старший научный сотрудник, научный руководитель ниумп «Лаборатория проблем цивилизации»
Рассмотрены основные объективные и субъективные компоненты информационных систем систем получения и циркуляции знания в обществе,...
Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©podelise.ru 2000-2014
При копировании материала обязательно указание активной ссылки открытой для индексации.
обратиться к администрации
Документы

Разработка сайта — Веб студия Адаманов