Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > как пол. коорд. курсора мыши над TScroll


Автор: devmstr 11.4.2005, 07:21
Но не относительно формы, а относительно самого компонента.
Например я обрабатывал MouseMove, но координаты показываются относительно формы, тоесть прокрутка не влияет на координату...
Помогите плиз.. вопрос нормально сформулировать у меня не получилось, но я старался...

Автор: p0s0l 11.4.2005, 09:53
Попробуй прибавлять к координатам X и Y значения HorzScrollBar.Position и VertScrollBar.Position...


Автор: Girder 11.4.2005, 11:53
Код
...
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;

Автор: devmstr 11.4.2005, 15:04
Спасибо, это именно то, что мне было нужно!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)