Содержание материала

Следующую функцию можно использовать для получения слова, над которым находится курсор мышки:

Code:

function RECharIndexByPos(RichEdit: TRichEdit; X, Y: Integer): Integer;

{ функция возвращает абсолютное положение символа для данных координат курсора}

 

var

P: TPoint;

begin

P := Point(X, Y);

Result := SendMessage(RichEdit.Handle, EM_CHARFROMPOS, 0, longint(@P));

end;

 

function REExtractWordFromPos(RichEdit: TRichEdit;  X,  Y:  Integer):=

string;

{ X, Y - координаты в rich edit }

{возвращает слово в текущих координатах курсора}

 

var

BegPos, EndPos: Integer;

begin

  BegPos := RECharIndexByPos(RichEdit, X,  Y);

if (BegPos < 0or

  (SendMessage(RichEdit.Handle,EM_FINDWORDBREAK,WB_CLASSIFY,BegPos) and

                     (WBF_BREAKLINE or WBF_ISWHITE) <> 0 )      then

  begin

     result:='';

     exit;

  end;

 

  if SendMessage(RichEdit.Handle, EM_FINDWORDBREAK,WB_CLASSIFY,BegPos-1) and

     (WBF_BREAKLINE or WBF_ISWHITE)  =  0 then

        BegPos:=SendMessage(RichEdit.Handle, EM_FINDWORDBREAK,

                            WB_MOVEWORDLEFT, BegPos);

EndPos:=SendMessage(RichEdit.Handle,EM_FINDWORDBREAK,WB_MOVEWORDRIGHT,BegPos);

Result:=TrimRight(REGetTextRange(RichEdit, BegPos, EndPos - BegPos));

end;

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить