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.