kiedy korzystać z dziedziczenia? inherited, WM_NCHITTEST

0

Interesowało mnie jak przesuwać formę w delphi mając wyłączony title bar i znalazłem:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms645618%28v=vs.85%29.aspx

WM_NCHITTEST

No to piszę pod priv:

procedure WMNCHitTest(var Msg: TWMNCHitTest); message WM_NCHITTEST;

wciskam ctrl + shift + c, by utworzyć w sekundę kod i uzupełniam:

if Msg.Result = HTCLIENT then Msg.Result:= HTCAPTION;

Sprawdzam program i nie działa. Po chwili dowiaduję się z google, że musi być dopisane inherited;

poprawiam na:

  inherited;
  if Msg.Result = HTCLIENT then Msg.Result:= HTCAPTION;

i teraz działa elegancko.

W czym więc mam problem? Otóż nie wiem kiedy mam używać tego inherited, od czego to zależy? z tego co pamiętam, przy wielu rzeczach WM_COŚ_TAM nie trzeba tego słówka dopisywać, no a w tym przypadku musiałem. A muszę się dowiedzieć od czego to zależy, bo nie zamierzam w przyszłości pisać czegoś mówiąc za każdym razem: "dobra, jak nie zadziała, to dopiszę tę linijkę i gotowe" bo to bez sensu pisać coś i nie rozumieć tego i w ciemno dopisywać słówko do kodu.

Będę bardzo wdzięczny jeśli mi ktoś to w skrócie wytłumaczy.

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