Nadpisywanie property

0

Witam,

Mam taki problem. Ogólnie rozumiem zasady dziedziczenia aczkolwiek napotkałem zagwozdkę z którą nie miałem nigdy do czynienia i mam do was pytanie. Otóż, tworzę sobie obiekt TMyTabSheet dziedziczący z TTabSheet (standardowa zakładka kontrolki TPageControl). TTabSheet posiada właściwość ImageIndex. I teraz, podczas zmiany tej właściwości, chciałbym aby oprócz dotychczasowej czynności zmiany indexu, robiło mi coś jeszcze, np. zmieniało ImageIndex w powiązanym menu. No i pojawia się problem. W większości takich przypadków robiłem tak że przeładowywałem procedure SetXXX i po inherited dodawałem swój kod. Jednak tutaj tak się nie da, bo SetImageIndex jest w sekcji private. Próbowałem kombinować w taki sposób, że w klasie TMyTabSheet zdublowałem/przysłoniłem property:

property ImageIndex: Integer read FImageIndex write SetImageIndex

... co wymagało również dodania FImageIndex do sekcji private. No i w mojej SetImageIndex dodałem swój kod. Tylko że jak teraz debuguję, to najpierw wołane jest pierwotne SetImageIndex a potem moje, z tym że to moje jakby przysłania to pierwotne i w konsekwencji imageindex na zakładce się nie zmienia. Jedyne co mi przychodzi do głowy to dodanie osobnej właściwości ImageIndexGroup i w SetImageIndexGroup zrobić zmianę zarówno ImageIndex zakładki jak i w menu, ale może mam niedobór wiedzy na temat właściwości obiektów i da się to prościej zrobić.

Pozdrawiam

0

A jak zrobisz coś takiego:

property ImageIndex: Integer read FImageIndex write My_SetImageIndex

I wypełnisz My_SetImageIndex czym tam sobie chcesz?

0

Niestety ten sam rezultat co przy samym SetImageIndex

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.