|
#1
|
|||
|
|||
Новый курсор
Здравствуйте, а можно создать курсор в пределах формы? (Независимый от основного)
Последний раз редактировалось Noooob, 10.05.2014 в 14:53. |
#2
|
||||
|
||||
И чем этот второй курсор будет управляться? Силой мысли?
А без управления - элементарно, просто рисуешь стрелочку на канве. jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
|||
|
|||
Он должен менять координаты и делать правый клик. Пробовал через CreateCursor но не получилось.
|
#4
|
||||
|
||||
Автоматически чтоли? А чем SendMessage(..., WM_RBUTTONDOWN, ...) не устраивает?
jmp $ ; Happy End! The Cake Is A Lie. |
#5
|
|||
|
|||
SendMessage не делает клик в WebBrowser1. Вот код
Код:
PostMessage(Form1.WebBrowser1.Handle,WM_LBUTTONDOWN,0,(i shl 16)+j+Screen.Height-Form1.Height); PostMessage(Form1.WebBrowser1.Handle,WM_SETCURSOR,Form1.WebBrowser1.Handle,MakeLong(HTCLIENT,WM_LBUTTONDOWN)); PostMessage(Form1.WebBrowser1.Handle,WM_LBUTTONUP,0,(i shl 16)+j+Screen.Height-Form1.Height); PostMessage( Form1.WebBrowser1.Handle,WM_SETCURSOR,Form1.WebBrowser1.Handle,MakeLong(HTCLIENT,WM_LBUTTONUP)); |
#6
|
||||
|
||||
Вот кто вас всех учит задавать совершенно левый вопрос?
Ведь цель: нажать на что-то в WebBrowser. А вопрос: как создать еще один независимый курсор. Ответили бы вам каким-нибудь извращенским километровым кодом по организации самодельного курсора целиком с нуля, а потом бы оказалось, что это не работает нифига и вообще было не нужно. Если цель - нажать в WebBrowser, то и вопрос должен быть - "Как нажать в WebBrowser?" В связи с этим первое, что приходит в голову - открыть www.googe.com и ввести там "Twebbrowser нажать на кнопку". И получить массу готовых ответов. Далее. Касаемо PostMessage. 1) В данном случае SendMessage гораздо лучше, т.к. он ожидает завершения. 2) Есть ScreenToClient и ClientToScreen. Зачем эти извращенские преобразования (которые, к тому же, не верны)? 3) Простейший клик состоит из двух SendMessage, первый с нажатием, второй с отпусканием. 4) Вы просили правый клик, а в коде - левый, и еще и неверный (третий параметр в клике, насколько я знаю, должен быть не ноль). Все это тоже легко находится в гугле по запросу "программный клик delphi". jmp $ ; Happy End! The Cake Is A Lie. |
#7
|
||||
|
||||
Оффтоп:
Цитата:
... Цитата:
Код:
var flg: boolean; mX, mY: integer; procedure TForm1.FormDeactivate(Sender: TObject); begin ReleaseCapture; end; procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if GetCapture = 0 then SetCapture(Form1.Handle); if PtInRect(Rect(Left, Top, Left + Width,Top + Height),ClientToScreen(Point(X,Y))) then begin if not flg then begin flg:= true; mX:= X; mY:= Y; end; end else begin if flg then begin flg:= false; SetCursorPos(mX,mY); end; end; end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#8
|
|||
|
|||
Если вебброузер встроен в Вашу прогу, но ничего нажимать не надо - см. в яндексе: webbrowser.oleobject
Нужно найти в DOM нужный тег и вызвать метод - чаще Click(); |