Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.09.12;
Скачать: [xml.tar.bz2];

Вниз

Zoom в TWebBrowser (обработка мыши)   Найти похожие ветки 

 
TechnoDreamer   (2010-06-17 02:28) [0]

Хочу сделать зум в TWebBrowser как в IE с использованием ctrl+, ctrl- и ctrl-скролл.
Про .OleObject.Document.Body.Style.Zoom знаю. Реализовать через меню или другие контролы легко, а вот как обработать именно с использованием клавы\мышки учитывая отсутсвие соответсвующих событий -  не знаю.


 
ArchAL   (2010-06-17 10:15) [1]

Всё довольно просто:
1. Создаёшь глобальную переменную, например  ZoomSize:real;
2. Обрабатываешь событие  onMouseWheelDown (либо Up)  для формы.
3. Пишешь внутри код  
  if (ssCTRl in Shift) then
  begin
    ZoomSize:=ZoomSize-0.1;
    MainBrowser.OleObject.Document.Body.Style.Zoom:=ZoomSize;
  end;

Для Up  соответственно +0.1
4. Не забудь задать первоначальное значение для ZoomSize равное 1


 
Andy BitOff ©   (2010-06-17 10:21) [2]


> ArchAL   (17.06.10 10:15) [1]

Надо бы еще проверить, чтобы мышь находилась непосредственно над окном браузера, в котором отображена страница.


 
TechnoDreamer   (2010-06-18 01:07) [3]

Тогда ламерский вопрос, как обрабатывать onMouseWheelDown когда фокус не на форме. У меня это событии вызавается только при старте программы, стоит кликнуть по любому контролу на форме и события больше не будет.


 
Германн ©   (2010-06-18 01:33) [4]


> Тогда ламерский вопрос, как обрабатывать onMouseWheelDown
> когда фокус не на форме. У меня это событии вызавается только
> при старте программы, стоит кликнуть по любому контролу
> на форме и события больше не будет.

Это как это "фокус не на форме"?


 
TechnoDreamer   (2010-06-18 01:42) [5]

Ну типа activecontol<>nil... короче когда фокус в каком-нибуть контроле, думаю вы поняли, не придирайтесь к словам :-)


 
TechnoDreamer   (2010-06-18 01:47) [6]

Сорри, оказывается на обычных контролах всё работает (только таких в проекте не присутсвует), видать событие каким-то образом перехватывают DevExpress"овские контролы.
В общем сделал через отлов сообщения WM_MOUSEWHEEL, надеюсь это правильное решение...


 
Германн ©   (2010-06-18 01:48) [7]


> Ну типа activecontol<>nil

А причем тут ActiveControl? Я не придираюсь. Просто тебе нужно всего лишь проверить, что мышь находится непосредственно
над окном браузера, в котором отображена страница.
А фокус и ActiveControl имеют отношение только к клавиатуре.


 
Германн ©   (2010-06-18 01:51) [8]


> В общем сделал через отлов сообщения WM_MOUSEWHEEL, надеюсь
> это правильное решение...

Не думаю, что оно по-настоящему грамотное. Ведь на форме может быть более одного контрола, который должен реагировать на колесо мыши.


 
TechnoDreamer   (2010-06-18 02:00) [9]

хм, действительно, хотя я отлавливаю только с нажатым ctrl, т.е. обычный скролл работает нормально (проверил).

P.S. После некоторых экпериментов выяснилось, что событие не вызывается только на котролах у которых есть свои события onMouseWheel, например у tcxDBTreeList.

А как то можно проверить, есть фокус у TWebBrowser или нет?


 
TechnoDreamer   (2010-06-18 02:02) [10]


> Просто тебе нужно всего лишь проверить, что мышь находится
> непосредственно
> над окном браузера, в котором отображена страница.


оки, так и сделаю.


 
Anatoly Podgoretsky ©   (2010-06-18 10:21) [11]

У посторонних компонентов есть своя собственная поддержка, форумы, почему бы у авторов не спросить, а что это ваши компоненты не работают?



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2010.09.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
2-1276380946
AKE
2010-06-13 02:15
2010.09.12
Принадлежит ли точка треугольнику?


15-1276877562
Кто б сомневался
2010-06-18 20:12
2010.09.12
Поиск кода в гугл labs


2-1276534233
akosh12345
2010-06-14 20:50
2010.09.12
Вывод кнопок динамически


4-1220443358
dmitry_12_08_74
2008-09-03 16:02
2010.09.12
как получить handle текущего активного окна на рабочем столе


2-1276544773
Цукор5
2010-06-14 23:46
2010.09.12
чтение сокета. ServerSocket1ClientRead





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский