Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.02.2014, 17:29   #1
Dennis777
Форумчанин
 
Регистрация: 06.11.2009
Сообщений: 203
По умолчанию Прокрутка TWebBrowser с помощью стрелок клавиатуры

Подскажите пожалуйста, как можно реализовать прокрутку страницы в веббраузере делфи по нажатию на стрелки вверх-вниз?
Интересный проект по изучению английского:
Английский в формате путешествия по США
Dennis777 вне форума Ответить с цитированием
Старый 18.02.2014, 18:59   #2
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Передай фокус контролу
Код:
WebBrowser1.SetFocus;
И прокрутка заработает.
doktor255 вне форума Ответить с цитированием
Старый 18.02.2014, 20:17   #3
blackstrip
Форумчанин
 
Аватар для blackstrip
 
Регистрация: 21.01.2012
Сообщений: 240
По умолчанию

По нажатию на клавиши надо вызывать

Код:
webBrowser1.OleObject.Document.ParentWindow.ScrollBy(X,Y)
, где X и Y - количество пикселей, проматываемых по соответствующей оси. Также в X и Y можно задавать отрицательные значения чтоб промотать обратно.
blackstrip вне форума Ответить с цитированием
Старый 18.02.2014, 23:09   #4
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Цитата:
Сообщение от blackstrip Посмотреть сообщение
По нажатию на клавиши надо вызывать

Код:
webBrowser1.OleObject.Document.ParentWindow.ScrollBy(X,Y)
, где X и Y - количество пикселей, проматываемых по соответствующей оси. Также в X и Y можно задавать отрицательные значения чтоб промотать обратно.
Куда можно встроить такой код, или что включить, чтоб сразу после нажатия некой кнопки, которая загрузит страницу браузера, не используя иных экранных кнопок листать браузер стрелочками на клавиатуре?
doktor255 вне форума Ответить с цитированием
Старый 18.02.2014, 23:58   #5
Dennis777
Форумчанин
 
Регистрация: 06.11.2009
Сообщений: 203
По умолчанию

Кнопками прокручивается, но колесико активируется только после клика на веббраузер. Как можно назначить прокрутку и колесику?

Фокус не хочет передаваться)
Интересный проект по изучению английского:
Английский в формате путешествия по США

Последний раз редактировалось Dennis777; 19.02.2014 в 00:27.
Dennis777 вне форума Ответить с цитированием
Старый 19.02.2014, 00:30   #6
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Цитата:
Сообщение от Dennis777 Посмотреть сообщение
Фокус не хочет передаваться
Как это не хочет передаваться? Если кликнуть на кнопку, в которой будет код Browser1.SetFocus, то при последующий кликах на клавиши вверх вниз браузер скролится.
doktor255 вне форума Ответить с цитированием
Старый 19.02.2014, 01:41   #7
blackstrip
Форумчанин
 
Аватар для blackstrip
 
Регистрация: 21.01.2012
Сообщений: 240
По умолчанию

Цитата:
Сообщение от doktor255 Посмотреть сообщение
Куда можно встроить такой код, или что включить, чтоб сразу после нажатия некой кнопки, которая загрузит страницу браузера, не используя иных экранных кнопок листать браузер стрелочками на клавиатуре?
Ну можно вставить его в обработку таймера (вызывающегося раз в 100 мс, например), и опрашивающего клавиатурные стрелочки, например, через GetAsyncKeyState
blackstrip вне форума Ответить с цитированием
Старый 19.02.2014, 01:57   #8
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Цитата:
Сообщение от blackstrip Посмотреть сообщение
Ну можно вставить его в обработку таймера (вызывающегося раз в 100 мс, например), и опрашивающего клавиатурные стрелочки, например, через GetAsyncKeyState
Костыль. Не айс.
doktor255 вне форума Ответить с цитированием
Старый 20.02.2014, 01:30   #9
Dennis777
Форумчанин
 
Регистрация: 06.11.2009
Сообщений: 203
По умолчанию

Цитата:
Сообщение от doktor255 Посмотреть сообщение
Как это не хочет передаваться? Если кликнуть на кнопку, в которой будет код Browser1.SetFocus, то при последующий кликах на клавиши вверх вниз браузер скролится.
Ну видать у меня какой-то неправильный делфи и у него неправильный мед. На веббраузер фокус не передается такой командой. Это первое, что пробывал.
Интересный проект по изучению английского:
Английский в формате путешествия по США
Dennis777 вне форума Ответить с цитированием
Старый 20.02.2014, 10:43   #10
blackstrip
Форумчанин
 
Аватар для blackstrip
 
Регистрация: 21.01.2012
Сообщений: 240
По умолчанию

Цитата:
Сообщение от Dennis777 Посмотреть сообщение
Ну видать у меня какой-то неправильный делфи и у него неправильный мед. На веббраузер фокус не передается такой командой. Это первое, что пробывал.
У веббраузера фокус стремный - он ненастоящий. Он в браузер не передается, но самое главное - обратно не вытаскивается. Т.е. если пользователь поставил курсор в каком нибудь поле на сайте (или даже просто нажал в пустое место на сайте), открытом в twebbrowser - то уже обратно перекинуть фокус на какую нибудь кнопку на форме командой setfocus не выйдет.

Я фокус у него смог вырвать только программным нажатием (mouse_event) на компонент на форме.

Возможно, фокус передается на некий виртуальный контейнер и нигде не показывается что он на браузере, а фокус на элементах сайта, открытого в twebbrowser - это уже другая фича от MS IE, которая жестко контролирует настоящий фокус и не дает ему убежать с twebbrowser-а никуда.

Последний раз редактировалось blackstrip; 20.02.2014 в 10:49.
blackstrip вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прокрутка в TWebBrowser [MoNAMur] Компоненты Delphi 0 27.03.2012 12:08
Авторизация на сайте с помощью twebbrowser smartbyte Работа с сетью в Delphi 0 24.07.2010 13:25
Incompatible types: 'Unit1.TWebBrowser' and 'SHDocVw.TWebBrowser' simon15x Общие вопросы Delphi 0 10.04.2010 03:11
Перемещать строки вверх-вниз, с помощью стрелок. Rio309 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 27.10.2008 21:47
Ошибка при заполнениии html форм с помощью TWebBrowser Banana Работа с сетью в Delphi 6 24.08.2007 15:35