В иерархии 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
;
|