Jak wygląda mechanizm przechwytu komunikatów - messages z Windows, tj. tych wszystkich WM_,
czyli WM_KEYDOWN, WM_SIZE, WM_LBUTTONDOWN, itd, potem WM_COMMAND z menu i kontrolek, no i z 500 innych?
Może przykład, niekoniecznie poprawny w Delphi:
TSuperWin = class(TWin)
procedure WMPaint(var m : TMsg); message WM_Paint;
// jakieś inne
a,b,c : integer;
color : superinteger;
end;
I teraz mam utworzony ten TSuperWin, powiedzmy że zmienna nazywa się sw,
no i jak tam jest zapakowana ta procedura WMPaint plus odpowiedni kod - WM_PAint,
bo może być przecież wiele różnych?
Wewnątrz, czyli z punktu widzenia asemblera.
Jest tam jakaś specjalna tabela procedur message,
podobnie jak dla metod virtual: sw.vmtT ?
Aha, czy można w Delphi przechwytywać komunikaty od kontrolek?
procedure IDList((notify_code : uint); message ID_LIST; ???
To jest wysyłane w postaci WM_COMMAND, plus id kontrolki i kod, np. LBN_SELCHANGE,
czyli to musiałoby być realizowane wewnątrz WMCommand:
procedure WMCommand;
begin
if msg.id = ID_LIST and ... then IDList;
///
end;
Jest dokumentacja tych internalsów w delphi, albo i innego paskala, który coś takiego obrabia?