Для добавления новых свойств в компонент достаточно задать поля и свойства, определив при этом их тип и доступ (чтение, запись).
Например, создадим новое свойство - счетчик нажатий на кнопку. Для этого в секции private объявим поле FClickCount: Longint (внутреннее поле для сохранения значения), а в секции published объявим свойство: property ClickCount: Longint read FClickCount write FClickCount. Задание этого свойства в разделе published будет гарантировать доступ к нему в окне инспектора объектов и не потребует написания дополнительных методов для доступа к нему.
Примечание. 1.За ключевым словом write указывается идентификатор поля или метода на запись свойства; метод должен быть процедурой, получающей параметр одного с полем типа. За ключевым словом read указываем идентификатор поля или метода на чтение объекта; метод должен быть функцией, возвращающей значение одного со свойством типа. Одна из этих директив может быть опущена, и тогда значение в поле нельзя будет читать или писать извне (свойство уже не попадёт в Object Inspector).
|
|
2. Указание свойства в секции public позволит обращаться к свойству в методах, но в Инспекторе объектов свойство отображаться не будет.
Теперь исходный текст выглядит так:
unit MyButton;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics,
Controls, Forms, Dialogs, StdCtrls;
type
TMyButton = class(TButton)
private
FClickCount: Longint;
protected
{ Protected declarations }
public
{ Public declarations }
published
property ClickCount: Longint read FClickCount write
FClickCount;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Samples', [TMyButton]);
end;
end.