我实现了你的要求,思路是:
1。取得光标位置,
2。找出光标所在单词的起始位置及结束位置,
3。得到单词。
程序如下:
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
iLine,iCol,j,k:integer;
begin
iCol:=memo1.CaretPos.x;
{取得光标所在列}
iLine:=memo1.CaretPos.y;
{取得光标所在行}
s:=memo1.Lines.Strings[iLine];
j:=iCol;k:=iCol;
while s[j] in ['a'..'z','A'..'Z']do
j:=j-1;
{找出光标所在单词的起始位置}
while s[k] in ['a'..'z','A'..'Z']do
k:=k+1;
{找出光标所在单词的结束位置}
s:=copy(s,j+1,k-j);
{得到单词}
memo1.Lines.add(s);
end;