|
Вопрос # 4 428/ вопрос открыт / |
|
Приветствую, уважаемые эксперты!
Как узнать слово, по которому ты щёлкнул мышью в Memo или RichEdit?
Заранее спасибо.
 |
Вопрос задал: Некто (статус: Заблокирован)
Вопрос отправлен: 14 июля 2010, 20:14
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Ерёмин А.А.
Здравствуйте, Мусабаев Равиль!
Не поверите, но готовый код найден в гугле за минуту. См. приложение.
Приложение: Переключить в обычный режим- uses
- RichEdit;
-
- var
- WordInRE : string;
-
- procedure TForm1.RichEdit1MouseMove
- (Sender: TObject; Shift: TShiftState; X, Y: Integer) ;
- var
- ci, //Character Index
- lix, //Line Index
- co, //Character Offset
- k, j: Integer;
- Pt: TPoint;
- s: string;
- begin
- with TRichEdit(Sender) do
- begin
- Pt := Point(X, Y) ;
- ci := Perform(Messages.EM_CHARFROMPOS, 0, Integer(@Pt)) ;
- if ci < 0 then Exit;
- lix := Perform(EM_EXLINEFROMCHAR, 0, ci) ;
- co := ci - Perform(EM_LINEINDEX, lix, 0) ;
- if -1 + Lines.Count < lix then Exit;
- s := Lines[lix];
- Inc(co) ;
- k := co;
- while (k > 0) and (s[k] <> ' ') do k:=k-1;
- Inc(co) ;
- j := co;
- while (j <= Length(s)) and (s[j] <> ' ') do Inc(j) ;
- WordInRE := Copy(s, k, j - k) ;
- end;
- end;
 |
Ответ отправил: Ерёмин А.А. (статус: *Администратор)
Время отправки: 15 июля 2010, 12:22
Оценка за ответ: 5
Комментарий к оценке: Спасибо!
|
Мини-форум вопроса
Всего сообщений: 2; последнее сообщение — 15 июля 2010, 08:12; участников в обсуждении: 2.
|
min@y™ (статус: Доктор наук), 14 июля 2010, 20:22 [#1]:
Надо посмотреть слева и справа от курсора и собирать слово, пока буквы/цифры не закончатся началом/концом текста или разделителем.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Некто (статус: Заблокирован), 15 июля 2010, 08:12 [#2]:
А как узнать координаты курсора в Memo? (Имеется в виду мигающая черта)
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|