| Код | ... var Form1: TForm1; OldClientWndProc:Pointer;
implementation
{$R *.dfm}
function NewClientWndProc(Wnd:HWND; Msg:UINT; wParam:wParam; lParam:lParam):LRESULT; stdcall; var p:TPoint; begin Result:=CallWindowProc(OldClientWndProc,Wnd,Msg,wParam,lParam); if (Msg=WM_HSCROLL)or(Msg=WM_VSCROLL)or(Msg=WM_Setcursor) then begin GetCursorPos(p); Windows.ScreenToClient(WindowFromPoint(p),p); Form1.Caption:=IntToStr(p.X)+';'+IntToStr(p.Y); end; end;
procedure TForm1.Button1Click(Sender: TObject); begin OldClientWndProc:=pointer(GetWindowLong(Memo1.Handle,GWL_WNDPROC)); SetWindowLong(Memo1.Handle,GWL_WNDPROC,integer(@NewClientWndProc)); end; | |