- •Создание компонентов в
- •Пакеты компонентов
- •Объявление класса
- •Объявление класса
- •Объявление класса
- •unit QMyButton; interface
- •Создание простых свойств
- •Создание простых свойств
- •Пример создания простых свойств
- •Создание перечислимого свойства и
- •Создание перечислимого свойства и
- •Пример создания перечислимого
- •Пример создания перечислимого
- •Пример создания перечислимого
- •Пример создания перечислимого
- •Создание свойства-массив
- •Создание свойства-массив
- •Создание свойства-массив
- •Создание свойства-массив
- •Создание свойства-массив
- •Создание свойства-объект
- •Создание свойства-объект
- •Создание свойства-объект
- •Создание свойства-объект
- •Создание свойства-объект
- •Инсталляция компонента
- •Определение нового пакета компонентов
Создание перечислимого свойства и
свойства-множества
Свойства, принадлежащие к множественному типу, позволяют задать любую комбинацию из предлагаемого набора. Например, BorderStyle или Anchors.
11
Пример создания перечислимого
свойства и свойства-множества
type TWeekDay=(wdMonday, wdTuesday, wdWednesday, wdThursday, wdFriday, wdSaturday, wdSunday);
TArrow=Set of (arTop, arBottom, arLeft, arRight);
TMyButton = class(TButton) |
|
private |
|
{ Private declarations } |
|
FMyInteger: integer; |
|
FMyChar: Char; |
|
FMyString: string; |
|
FWeekday: TWeekDay; |
|
FArrow: TArrow; |
|
FMyCursor: TCursor; |
|
FMyAnchors: TAnchors; |
|
protected { Protected declarations } |
12 |
Пример создания перечислимого
свойства и свойства-множества
public
{ Public declarations }
property MyInteger: integer read FMyInteger write FMyInteger; property MyChar: char read FMyChar write FMyChar; property MyString: char read FMyString write FMyString; property MyAnchors: char read FMyAnchors write FMyAnchors;
published |
|
{ Published declarations } |
|
property Weekday: TWeekday read FWeekday write FWeekday; |
|
property MyCursor: TCursor read FMyCursor write FMyCursor; |
|
property Arrow: TArrow read FArrow write FArrow; |
|
end; |
13 |
Пример создания перечислимого
свойства и свойства-множества
Все свойства доступны для чтения и записи. Программно доступны только свойства Weekday и MyCursor, описанные в разделе общедоступных описаний (Published).
Множественное свойство Anchor (якорь)
Перечислимое
свойство
Weekday
Пример создания перечислимого
свойства и свойства-множества
Все свойства доступны для чтения и записи. Программно доступны только свойства Weekday и MyCursor, описанные в разделе общедоступных описаний (Published).
Перечислимое
свойство
MyCursor
15
Создание свойства-массив
Свойства-массивы содержат индексированную совокупность однотипных значений. Например, свойство Lines. Значения этих свойств можно изменять только с помощью специального редактора.
16
Создание свойства-массив
unit Week; interface uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs; type
TWeek = class(TComponent) private
{ Private declarations }
function GetMonthName (const AIndex: Integer): String; function GetMonthNumber (const AMonthName: String): Integer; protected
{Protected declarations } public
{Public declarations }
property MonthName[const AIndex: Integer]: String read GetMonthName; default; property MonthNumber[const AMonthName: String]: Integer read GetMonthNumber; published
{ Published declarations } 17 end;
Создание свойства-массив
procedure Register; |
|
implementation |
|
const |
|
MonthNames: array[1..12] of String[8]= ('Январь','Февраль','Март','Апрель','Май', |
|
'Июнь','Июль','Август','Сентябрь', 'Октябрь', 'Ноябрь','Декабрь'); |
|
function TWeek.GetMonthName(const AIndex: Integer): String; |
|
begin |
|
if (AIndex<=0) or (AIndex>12) then |
|
raise Exception.Create('Номер месяца должен быть от 1 до 12') |
|
else Result:= MonthNames[AIndex]; |
|
end; |
|
function TWeek.GetMonthNumber(const AMonthName: String): Integer; |
|
var i:integer; |
|
begin |
|
Result:=0; |
|
for i:=1 to 12 do begin |
|
if Uppercase(AMonthName)=UpperCase(MonthNames[i]) then |
|
Result:=1; |
|
end;end; |
18 |
Создание свойства-массив
procedure Register; begin
RegisterComponents('Samples', [TWeek]); end;
end.
19
Создание свойства-массив
Пример использования
procedure TForm1.Button1Click(Sender: TObject); begin
Label1.Caption:=Week1.MonthName[MonthOf(Date)]
end;
20
