BC++ oraz VCL - przesłanianie metod

0

Witam. Wziąłem się za pisanie komponentów w BCB. Na bazie TImage (+ TLabel jako pole prywatne)chcę stworzyć moj komponent.
Teraz: jak można przesłonić i odwołać się do metod i właściwości TImage?

np: w TImage jest:

__property TWinControl* Parent = {... metody dostępu... }; 

a ja chciałbym przechwycić moment ustawienia Parent dla mojego komponentu. jak?? [???]

W Delphi istnieje cos takiego jak słowow "inherited, override, itp", a wBCB jak??.
Dziekuje za wszelkie wskazowki.

0
zibicoder napisał(a)

ja chciałbym przechwycić moment ustawienia Parent dla mojego komponentu. jak??
Przeładuj metodę SetParent

zibicoder napisał(a)

W Delphi istnieje cos takiego jak słowow "inherited, ... ", a wBCB jak??.

W Delphi piszesz:

inherited(parametry);

w C++ pisze się tak (przykładowo przeładowując metodę SetParent klasy TControl):TControl::SetParent(Value);



 > ##### zibicoder napisał(a)
> W Delphi istnieje cos takiego jak słowow "..., override, itp", a wBCB jak??.
<i>virtual</i> (tak, tak samo jak pierwszy nieprzeładowany egzemplarz). Można też w ogóle nie używać żadnego słówka, ale kolejne klasy pochodne już nie będą mogły przeładować tej metody.
0

Dzieki wielkie!

Czyli jak dobrze zrozumiałem to cos takiego:

w unit.h:

protected:

virtual void __fastcall SetParent(TWinControl* Value);

__published:
__property TWinControl* Parent = {read=FParent, write=SetParent };

a w unit.cpp:

void __fastcal TGraf::SetParent(TWinControl* Value)
{
   FParent = Value;
   TImage::SetParent(Value);
   FLabel->Parent = Value;
  
}

Sory, pomęczę was jeszcze trochę. Odnośnie TImage:

  • ładuję do mojego komponentu obrazek .jpg :
Picture->Assign(AJpg);

Jak przechwycić później Canvas lub obraz z mojego komponentu żeby coś na nim napisać??
Obraz .jpg ma robić za tło, na Canvasie ma się zmienić napis.
Jeszcze raz dzięki za zainteresowanie.

0
protected:

virtual void __fastcall SetParent(TWinControl* Value);

//bez tego, ta własność już jest zdefiniowana w klasie TControl, wystarczy przeładować metodę SetParent z której ta własność korzysta
//__published:
//__property TWinControl* Parent = {read=FParent, write=SetParent };



//unit.cpp:
void __fastcal TGraf::SetParent(TWinControl* Value)
{
   //FParent = Value; //bez tego, TImage::SetParent już ustawi FParent
   TImage::SetParent(Value);
   FLabel->Parent = Value;
 
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1