用Delphi读取鼠标所在位置单词用Delphi读取鼠标所在位置单词
XueSong
2001年 32期
词的中文意思,这样的程序怎样编写呢?首先我们要将中英文对照字典事先建立好,然后在
程序中获取使用者点取的单词,接着在中英文对照字典查找所选的单词,最后将翻译结果显
示出来。本文就着力说明如何在程序中读取鼠标所在位置的单词。
EN_CHARFROMPOS。该消息用于读取当前鼠标位于文本框的第几行第几列上。在发送该消息时,参数wParam没有作用;参数lParam为长
整型,用于指定鼠标的坐标位置,其中两个高字节指定Y,两个低字节指定X。返回值为长...
用Delphi读取鼠标所在位置单词
XueSong
2001年 32期
词的中文意思,这样的程序怎样编写呢?首先我们要将中英文对照字典事先建立好,然后在
程序中获取使用者点取的单词,接着在中英文对照字典查找所选的单词,最后将
结果显
示出来。本文就着力说明如何在程序中读取鼠标所在位置的单词。
EN_CHARFROMPOS。该消息用于读取当前鼠标位于文本框的第几行第几列上。在发送该消息时,参数wParam没有作用;参数lParam为长
整型,用于指定鼠标的坐标位置,其中两个高字节指定Y,两个低字节指定X。返回值为长整型,其中两个高字节指定鼠标位于第几个字符上,两个低字节指定鼠标位于第几个列上。
unit Unit1;
interface
uses
Windows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs,
StdCtrls
type
TForm1 = class(TForm
Memo1:TMemo
procedure Memo1MouseDown(Sender:TObject;Button:TMouseButton
Shift:TShiftState;X,Y:Integer
procedure FormCreate(Sender:TOb—ject
private
{Private declarations}
public
Function IsSeparetor(ch:Char):Boolean
Function GetWord(pos:Word):String
{Public declarations}
end
var
Form1:TForm1
implementation
{$R*.DFM}
{函数IsSparetor用于判定一个字符是否为分隔符}
Function TForm1.IsSeparetor(ch:Char):Boolean;
begin
IsSeparetor:= False;
If ch in[' ',', '.','?',#10,#13]then
IsSeparetor:= True
End
{函数GetWord用于读取鼠标所在位置的单词}
Function TForm1.GetWord(pos:Word):String
var
st:string;pos1,pos2:Word
i:Longint;w:string
begin
w:='':pos1:= 1;getword:=
{读取文本框中的内容及文本长度}
st:=Memo1.Lines.Text
pos2:= length(st
{向前搜寻当前单词的起始位置}
For i:= pos - 1 downTo 1 do
If IsSeparetor(st[i])Then
begin
pos1:= i + 1;break
end
{向后搜寻当前单词的结束位置}
For i:= pos To pos2 do
If IsSeparetor(st[i])Then
begin
pos2:= i - 1; break
end;
{截取pos1-pos2间的字符,以构成一个单词}
if pos1<=pos2 then
begin
For i:= pos1 To pos2 do
w:=w+st[i]
GetWord:= '单词:'+w
end
End;
procedure TForm1.Memo1MouseDown(Sender:TObject;Button:TMouseButton;
Shift:TShiftState;X,Y:Integer
var
lc:Longint;CharPos:Word
begin
{向文本框传递消息EN_CHARFROMPOS}
lc:= SendMessage(Memo1.handle,EM_CHARFROMPOS,0,x+(y shl 16
{取得鼠标位于第几个字符上}
CharPos:=Word(lc)
{显示我们所点取的单词}
Memo1.Hint:= GetWord(CharPos
end
procedure TForm1.FormCreate(Sender.TObject
begin
Memo1.ShowHint:=True
end;
end.
Windows 98、Delphi 5.0环境下调试通过。
本文档为【用Delphi读取鼠标所在位置单词】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。