Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 428

/ вопрос открыт /

Приветствую, уважаемые эксперты!
Как узнать слово, по которому ты щёлкнул мышью в Memo или RichEdit?
Заранее спасибо.

Некто Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Некто (статус: Заблокирован)
Вопрос отправлен: 14 июля 2010, 20:14
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Ерёмин А.А.

Здравствуйте, Мусабаев Равиль!
Не поверите, но готовый код найден в гугле за минуту. См. приложение.

Приложение:
  1. uses
  2. RichEdit;
  3.  
  4. var
  5. WordInRE : string;
  6.  
  7. procedure TForm1.RichEdit1MouseMove
  8. (Sender: TObject; Shift: TShiftState; X, Y: Integer) ;
  9. var
  10. ci, //Character Index
  11. lix, //Line Index
  12. co, //Character Offset
  13. k, j: Integer;
  14. Pt: TPoint;
  15. s: string;
  16. begin
  17. with TRichEdit(Sender) do
  18. begin
  19. Pt := Point(X, Y) ;
  20. ci := Perform(Messages.EM_CHARFROMPOS, 0, Integer(@Pt)) ;
  21. if ci < 0 then Exit;
  22. lix := Perform(EM_EXLINEFROMCHAR, 0, ci) ;
  23. co := ci - Perform(EM_LINEINDEX, lix, 0) ;
  24. if -1 + Lines.Count < lix then Exit;
  25. s := Lines[lix];
  26. Inc(co) ;
  27. k := co;
  28. while (k > 0) and (s[k] <> ' ') do k:=k-1;
  29. Inc(co) ;
  30. j := co;
  31. while (j <= Length(s)) and (s[j] <> ' ') do Inc(j) ;
  32. WordInRE := Copy(s, k, j - k) ;
  33. end;
  34. end;


Ответ отправил: Ерёмин А.А. (статус: *Администратор)
Время отправки: 15 июля 2010, 12:22
Оценка за ответ: 5

Комментарий к оценке: Спасибо!

Мини-форум вопроса

Всего сообщений: 2; последнее сообщение — 15 июля 2010, 08:12; участников в обсуждении: 2.
min@y™

min@y™ (статус: Доктор наук), 14 июля 2010, 20:22 [#1]:

Надо посмотреть слева и справа от курсора и собирать слово, пока буквы/цифры не закончатся началом/концом текста или разделителем.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Некто

Некто (статус: Заблокирован), 15 июля 2010, 08:12 [#2]:

А как узнать координаты курсора в Memo? (Имеется в виду мигающая черта)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:36
Выполнено за 0.03 сек.