Code:
...
FPrevIns, FCurIns: Pointer;
procedure WndProc(var M: TMessage);
...
procedure TMainForm.FormCreate(Sender: TObject);
begin
FPrevIns := Pointer(GetWindowLong(ClientHandle, GWL_WNDPROC));
FCurIns := MakeObjectInstance(WndProc);
SetWindowLong(ClientHandle, GWL_WNDPROC, Integer(FCurIns));
end;
procedure TMainForm.WndProc(var M: TMessage);
begin
case M.Msg of
WM_MDICREATE:
ShowMessage('create mdi');
WM_MDIDESTROY:
ShowMessage('destroy mdi');
// ostale poruke
end;
M.Result := CallWindowProc(FPrevIns, ClientHandle, M.Msg, M.wParam, M.lParam);
end;
Ovaj kod se postavi za main app form (mdi parent).
TurboDispatchJumpAddressEnd
----
Knocka Fia
----
And so we meet, again in a different time