在 Delphi 中如何使用,金山词霸中的XdictGrb.dll
声明:
本贴只为个人研究,如有侵犯他人权力的嫌疑,请版主指正。
问题描述:
想实现简单的屏幕取词的功能,查到可以通过金山词霸中的 XdictGrb.dll 来实现。
网上有一些 VB 的代码:
http://www.chenoe.com/blog/article.asp?id=2047
http://blog.csdn.net/cnzx219/archive/2005/09/29/482399.aspx
http://tongxiaofeng.spaces.live.com/Blog/cns!1pR_PsQz7rPcW32aavcleDGQ!361.entry
但本人对 VB 和 COM 的使用都不是很熟,所以希望有哪位可以将其翻成 Delphi 的代码。
谢谢。
[解决办法]
用Delphi打开XdictGrb.dll,浏览类型库(类/接口/属性/方法/枚举等等)。
可以用Component菜单下面的“Import Component”来导入其声明(Import Type Library-> Next-> Select "XdictGrb 1.0 Type Library "-> Next...)。接下来的代码类似于:
// uses XDictGrb_TLB;
procedure TryIt;
var
grab: GrabProxy;
begin
grap := CoGrabProxy.Create;
grap.GrabInternal := 1;
grap.GrabMode := XDictGrabMouse;
grap.GrabEnabled := True;
//...
end;
[解决办法]
p.s.
// 编译时绑定
var
grab: IGrabProxy;
begin
grab := CoGrabProxy.Create;
grab.GrabInternal := 1;
//...
end;
// 运行时绑定
var
grab: Variant;
begin
grab := CreateOleObject( 'XdictGrb.GrabProxy ');
grab.GrabInternal := 1;
//...
end;
[解决办法]
收藏,学习。
[解决办法]
学习了..
[解决办法]
关键代码哪去了?
[解决办法]
搞定,查到C的源代码
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleServer, XDICTGRB_TLB, StdCtrls;
type
TForm1 = class(TForm, IXDictGrabSink)
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
GP: IGrabProxy;
public
{ Public declarations }
function QueryWord(const WordString: WideString; lCursorX: Integer;
lCursorY: Integer;
const SentenceString: WideString; var lLoc: Integer; var lStart: Integer):
Integer; safecall;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
gp := CoGrabProxy.Create;
gp.GrabInterval := 1;
gp.GrabMode := XDictGrabMouse;
gp.GrabEnabled := true;
gp.AdviseGrab(self);
end;
function TForm1.QueryWord(const WordString: WideString; lCursorX,
lCursorY: Integer; const SentenceString: WideString; var lLoc,
lStart: Integer): Integer;
begin
memo1.Text := memo1.text + SentenceString + #13#10;
end;
end.
[解决办法]
原来引用了IXDictGrabSink接口.
然后重写function QueryWord就可以了.
接分!
[解决办法]
关注
[解决办法]
关注。。。。