Cześć, piszę sobie komponent i natrafiłem na kolejny problem.
Jak usunąć z ObjectInspectora niektóre właściwości rodzica?
Przykładowo nie chcę mieć właściwości Color, chcę to zrobić po swojemu, czyli dodać właściwość Style(z plusikiem) i tam sobie wszystko pozmieniać
niestety nie da sie ukryc metod/wlasciwosci rodzica...
jak juz cos zostalo udostepnione to bedzie zawsze widoczne.
mozna soboe z tym poradzic wykozystujac agregacje zamiast dziedziczenia.
a mowiac po polsku wstawic obiekt tej klasy jako prywatne pole i samemu napisac
metody dostepowe do wybranych pol
np
TMojaKontrolka = class(TComponent)
private
procedure setMojKolor(c: TColor);
function getMojKolor: TColor
protected
Shape: TShape;
published
MojKolor: TColor read getMojKolor write setMojKolor;
end;
procedure TMojaKontrolka.setMojKolor(c: TColor);
begin
shape.brush.color := c;
end;
function TMojaKontrolka.getMojKolor: TColor;
begin
result := shape.brush.color;
end;
//dopisane
spotkalem sie jeszcze z takim zwyczajem ze sie pisze jakis komponent
np TMojaKontrolka, a do niego dopisuje sie identyczny komponent TCustomMojaKontrolka,
rozniaca sie od pierwowzoru tym ze wszystkie publiczne i published elementy przenosi sie do
sekcji protected. dzieki temu klasy dziedziczace maja do dostep do wszystkiego co trzeba ale
nic nie jest udostepniane na zewnatrz.
Jednak wymaga to wczesniejszego przygotowania klasy z ktorej chce sie dziedziczyc.
sprawdz czy nie da sie przyslonic