|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
06.05.2008, 13:07 | #1 |
Пользователь
Регистрация: 08.04.2008
Сообщений: 37
|
Скроллинг в Word как в pdf
Задача стоит такая:
Когда я зажимаю ЛКМ и веду по документу мышью, должны производиться теже действия, что и в pdf-ках. Придумал такое дело: Ловить хуком движение мишки и зажатие левой клавиши мыши, использую WH_Mouse_LL: Код:
Код:
var обьявить WordApplication1:TWordApplication, то приложение компилируеться, но при запуске хука выдает ошибку типа: Помогите решить это! Если сделать так: Код:
Помогите разобраться!!! |
06.05.2008, 13:36 | #2 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
А в каком именно месте Access violation выбивает?
|
06.05.2008, 13:37 | #3 |
Пользователь
Регистрация: 08.04.2008
Сообщений: 37
|
В любой строчке внутри функции MouseLLHookProc, где присутствует WordApplication1.
Например: Код:
Последний раз редактировалось zhefran; 06.05.2008 в 14:03. |
06.05.2008, 14:10 | #4 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Надо отладчиком смотреть. По-моему вызов COM-интерфейсов из хука ничем хорошим кончиться не должен. Если хотите, сбросьте проект или сюда, или мне в PM, посмотрю. Из этого кода даже не ясно, где wordapplication1 инициализируется...
|
06.05.2008, 14:20 | #5 |
Пользователь
Регистрация: 08.04.2008
Сообщений: 37
|
Вот проэкт
|
06.05.2008, 14:42 | #6 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
zhefran, а почему Вы хук в экзешнике ставите, если WH_MOUSE_LL - Global only ??? Он ни к кому, кроме себя этот хук и не прицепляет, так точно ничего работать не будет, пишите dll. А какую из гор комментариев в этом архиве убрать я так и не понял... Зато добился того, о чём и предполагал - EOleSysError...
|
06.05.2008, 14:47 | #7 | ||
Пользователь
Регистрация: 08.04.2008
Сообщений: 37
|
Если я не ошибаюсь, то WH_MOUSE_LL можно и внутри приложения вставлять, он все равно будет глобальным.
Цитата:
Цитата:
Последний раз редактировалось zhefran; 06.05.2008 в 14:51. |
||
06.05.2008, 15:04 | #8 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
zhefran, ставить-то можно, только какой Вам смысл тогда в LL? Колесо можно и обычным хуком получить, а я всё-таки понял что Вам надо свой код в ворд загнать, с этой схемой через OLE Вы вряд ли чего добьётесь...
--------------------------- А ещё проще, сьавьте в хуке флажок, а снаружи хука его проверяйте и если этот способ с ole рабочий, значит вызывайте его уже оттуда. Последний раз редактировалось B_N; 06.05.2008 в 15:13. |
06.05.2008, 15:14 | #9 |
Пользователь
Регистрация: 08.04.2008
Сообщений: 37
|
B_N, мне нужно не колесо получить, а координаты курсора мышки при движении и зажатой ЛКМ.
Колесо мышки было в примере. Схема такая: Получить координаты при нажатой ЛКМ и получить координаты при движении. Сравнивать их и дальше по условию выполнять действие. Если я вынесу в отдельную библиотеку, то как мне оттуда передавать значения моих переменных? Обязательно ли при этом использовать SendMessage? |
06.05.2008, 15:25 | #10 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
А зачем тогда всё так усложнять? Если уж на то пошло, координаты можно вообще без всяких хуков получать. Попробуйте так, как я постом выше в правке добавил.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
скроллинг | kl45gp | JavaScript, Ajax | 0 | 24.03.2008 23:29 |
Ms Word | Farel | Общие вопросы Delphi | 0 | 12.01.2008 16:48 |
TChart, скроллинг | zIG | Компоненты Delphi | 4 | 20.07.2007 11:55 |
Word Pad | grafdi | Помощь студентам | 1 | 03.05.2007 02:39 |