Как скрыть свойства объекта?
В иерархии 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
;