В иерархии VCL в большинстве случаев
существует уровень объектов-"предшественников"
(TCustomXXXX), в которых многие свойства
скрыты.
Для унаследованных от таких "предшественников"
объектов можно "открывать" на выбор те или
иные свойства. А как можно сокрыть свойства,
которые объявлены в published-области от
Object Inspector'а, но при этом оставить
возможность доступа во время работы программы?
Решение состоит в объявлении свойства "по
новой" в public-области. В примере скрытым
будет у объекта TMyControl свойство Height.
TMyControl = class(TWinControl)
protected
procedure SetHeight(Value: Integer);
function GetHeight: Integer;
public
property Height: Integer read GetHeight
write SetHeight;
end;
procedure TMyControl.SetHeight(Value:
Integer);
begin
inherited Height := Value;
end;
function TMyControl.GetHeight;
begin
Result := inherited Height;
end;
|
|