Главная страница
    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.004 c
15-1276679561
vajo
2010-06-16 13:12
2010.09.12
диски для raid


15-1276247660
balepa
2010-06-11 13:14
2010.09.12
Задержка на CloseHandle при чтении файла на удаленном ПК


2-1276295129
HRustBB
2010-06-12 02:25
2010.09.12
как получить указатель на экземпляр класса


6-1225222273
SKIPtr
2008-10-28 22:31
2010.09.12
Изменения файла в интернете


2-1276357423
DROWSY
2010-06-12 19:43
2010.09.12
2 запроса в Firebird 1.5





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский