Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Скроллинг в Word как в PDF 
V
    Опции темы
zhefran
Дата 23.4.2008, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 237
Регистрация: 27.9.2007
Где: Винница-Киев-Ирпе нь-?, Украина

Репутация: нет
Всего: нет



Задача стоит такая:
Когда я зажимаю ЛКМ и веду по документу мышью, должны производиться теже действия, что и в pdf-ках.
Кто, что  посоветует?
--------------------
Ніщо нізвідки не виникає і нікуди не дівається!Лечение компьютеров от вирусов! Бесплатно!
PM MAIL WWW ICQ   Вверх
zhefran
Дата 6.5.2008, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 237
Регистрация: 27.9.2007
Где: Винница-Киев-Ирпе нь-?, Украина

Репутация: нет
Всего: нет



Придумал такое дело:
Ловить хуком движение мишки и зажатие левой клавиши мыши, использую WH_Mouse_LL:
Код

function MouseLLHookProc(Code:Integer;wParam:WPARAM;lParam:LPARAM):LRESULT stdcall;
var
    ms : MSLLHOOKSTRUCT;
begin
if (Code = HC_ACTION) then
    begin
     if wparam=wm_lbuttondown then
        begin
          ms := PMSLLHOOKSTRUCT(lParam)^;
                 z:=ms.pt.Y;
        end;
    if wparam=Wm_mousemove then
        begin
       if GetAsyncKeyState(vk_lbutton)<>0 then begin
         ms := PMSLLHOOKSTRUCT(lParam)^;
         x1:=ms.pt.x;
         y1:=ms.pt.Y;
             end;
        end;
    end;
    Result:=CallNextHookEx(myhook,Code,wParam,lParam);
end;
 

Реализация скроллинга будет такая (скроллинг вверх/вниз):
Код

down:='1';
if y1<z
 then
   wordapplication1.ActiveWindow.ActivePane.SmallScroll(down,emptyparam,emptyparam,emptyparam)
 else 
   wordapplication1.ActiveWindow.ActivePane.SmallScroll(emptyparam,down,emptyparam,emptyparam);


У меня проблема с связыванием всего этого. В самой функции хука нельзя использовать Wordapplication1.  Если в функции в 
var обьявить WordApplication1:TWordApplication, то приложение компилируеться, но при запуске хука выдает ошибку типа:
user posted image
Помогите решить это!
Если сделать так:
Код

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Edit1: TEdit;
    Button3: TButton;
    Edit2: TEdit;
    Edit3: TEdit;
    Memo1: TMemo;
    Memo2: TMemo;
    Memo3: TMemo;
    ApplicationEvents1: TApplicationEvents;
    WordApplication1: TWordApplication;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Edit3Change(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
 protected
    function MouseLLHookProc(Code:Integer;wParam:WPARAM;lParam:LPARAM):LRESULT stdcall;
  private
    { Private declarations }
  public
    { Public declarations }

  end;


 
И поменять везде MouseLLHookProc на TForm1.MouseLLHookProc, то хук не отслеживается. 
 smile 
Помогите разобраться!!! smile 
--------------------
Ніщо нізвідки не виникає і нікуди не дівається!Лечение компьютеров от вирусов! Бесплатно!
PM MAIL WWW ICQ   Вверх
dumb
Дата 6.5.2008, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 13
Всего: 158



Цитата(zhefran @  6.5.2008,  12:23 Найти цитируемый пост)
В самой функции хука нельзя использовать Wordapplication1
Form1->Wordapplication1

edit: ой, дельфи ж. smile Form1.Wordapplication1


Это сообщение отредактировал(а) dumb - 6.5.2008, 14:16
PM MAIL   Вверх
zhefran
Дата 6.5.2008, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 237
Регистрация: 27.9.2007
Где: Винница-Киев-Ирпе нь-?, Украина

Репутация: нет
Всего: нет



Вот такую бодягу выдает!!!
user posted image

--------------------
Ніщо нізвідки не виникає і нікуди не дівається!Лечение компьютеров от вирусов! Бесплатно!
PM MAIL WWW ICQ   Вверх
dumb
Дата 6.5.2008, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 13
Всего: 158



не вызывай напрямую wordappl из процедуры обработки хука, а, например, шли сообщение(в параметрах сообщения передавай направление) своей форме:
Код
SendMessage(Form1.Handle, WM_MY_MSG, 1, 0);

для формы, соответственно, напиши обработчик сообщения WM_MY_MSG и уже в нем обращайся к wordappl'у.
PM MAIL   Вверх
zhefran
Дата 4.6.2008, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 237
Регистрация: 27.9.2007
Где: Винница-Киев-Ирпе нь-?, Украина

Репутация: нет
Всего: нет



Вопрос решен!!!
--------------------
Ніщо нізвідки не виникає і нікуди не дівається!Лечение компьютеров от вирусов! Бесплатно!
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0836 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.