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

Добавление методов в новый компонент - операция несложная. Однако нужно обратить внимание на некоторые особенности, которые в дальнейшем облегчат взаимодействие пользователя с вашим компонентом.

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

Методы объявляются в секциях private, public и protected. При создании нового метода важно учитывать, как он будет использоваться в дальнейшем, сможет ли данный компонент быть предком для других компонентов, и, в зависимости от этого, разместить методы в нужных секциях. В таблице 2 приведены рекомендации по выбору секций для методов компонента.

Таблица 2. Размещение методов компонента в различных секциях.

Секция Размещаемые методы
Private В данной секции лучше всего размещать те методы, которые не могут изменяться в компонентах-потомках. Эти методы не доступны вне данного компонента
Protected В этой секции размещают методы, которые будут доступны для изменения в компонентах-потомках
Public Данная секция предназначена для размещения методов, которые доступны любому пользователю компонента. Доступ полный во время работы приложения, но не во время разработки, т. е. данные методы недоступны в окне инспектора объектов
Published В этой секции размещаются свойства компонента, которые доступны во время разработки приложения в окне инспектора объектов

Например, добавим в компонент TMyButton процедуру Click в которой будем подсчитывать количество нажатий на кнопку:

unit New_btn;

interface

uses

SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type

TMyButton = class(TButton)

private

FClickCount : Longint;

protected

{ Protected declarations }

public

constructor Create(AOwner : TComponent); override;

published

procedure Click; override;

property ClickCount : Longint read FClickCount write FClickCount;

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.








Дата добавления: 2015-09-07; просмотров: 838;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.