Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Управление словарем Lingvo через Alt + щелчок мышки [D6]


Terpelo ©   (2010-06-27 23:31:00) 

В словаре Lingvo возможно вызвать перевод слова наведя курсор на слово и нажав Alt + щелчок мышки. Пожалуйста, подскажите как реализовать это действие методами Delphi через наведение курсора и нажатие правой кнопки мышки.


Германн   (2010-06-28 02:07:00) [1]


> Юрий Зотов ©

<offtop>
Однако для ситуации "забыл очки на работе" ты весьма продуктивен. Я бы так не смог.
</offtop>


Юрий Зотов   (2010-06-28 00:34:00) [2]

Библиотеку типов Accessibility_TLB импортировать из oleacc.dll


Юрий Зотов   (2010-06-28 00:32:00) [3]


unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ComCtrls;

type
 TForm1 = class(TForm)
   procedure FormCreate(Sender: TObject);
   procedure FormClose(Sender: TObject; var Action: TCloseAction);
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

uses
 Accessibility_TLB; // Èìïîðòèðîâàòü èç oleacc.dll

function AccessibleObjectFromPoint(Pt: TPoint; var Acc: IAccessible; var Child: Variant): HRESULT;
 stdcall; external 'OleAcc.dll' name 'AccessibleObjectFromPoint';

var
 OldPoint: TPoint;

procedure RecalcText(Wnd: HWND; uMsg, idEvent: UINT; dwTime: DWORD); stdcall;
var
 P: TPoint;
 A: IAccessible;
 V: Variant;
begin
 if GetCursorPos(P) and ((P.X OldPoint.X) or (P.Y OldPoint.Y)) then
 begin
   OldPoint := P;
   if Succeeded(AccessibleObjectFromPoint(P, A, V)) then
     Form1.Caption := A.accName[V]
   else
     Form1.Caption := ''
 end
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 SetTimer(Handle, 1, 1000, @RecalcText)
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 KillTimer(Handle, 1)
end;

end.


Наверх

Титульная страница Поиск, карта сайта Написать письмо