![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Caption у компонента
Sedik © (2006-08-03 10:14:00)Добрый день!
Создаю компонент
TMyComponent = class(TWinControl)
private
FLabel: TLabel;
function GetCaption: string;
procedure SetCaption(const Value: string);
public
constructor Create(AOwner: TComponent); override;
published
property Caption: string read GetCaption write SetCaption;
end;
...
constructor TMyComponent.Create(AOwner: TComponent);
begin
inherited;
FLabel := TLabel.Create(self);
FLabel.Parent := self;
end;
function TMyComponent.GetCaption: string;
begin
Result := FLabel.Caption;
end;
procedure TMyComponent.SetCaption(const Value: string);
begin
FLabel.Caption := Value;
end;
Теперь свойство Caption у компонента изменится только после того, как мы в инспекторе объектов в Caption введем строку и нажмем Enter. А как сделать, чтобы Caption менялся после изменения каждого символа (без нажатия Enter) в инспекторе объектов, как например у компонента TLabel?
Юрий Зотов (2006-08-03 14:27:00) [21]Или просто заменить у свойства тип string на TCaption.
:о)
DimaBr (2006-08-03 12:00:00) [22]зарегистрировать для свойства соответствующий редактор
TMyCaptionProperty = class(TStringProperty)
function GetAttributes: TPropertyAttributes;override;
end;
function TMyCaptionProperty.GetAttributes: TPropertyAttributes;
begin
Result := inherited GetAttributes + [paAutoUpdate];
end;
RegisterPropertyEditor(TypeInfo(string), TMyComponent, 'Caption', TMyCaptionProperty);