Подскажите плз алгоритм, чтобы создавать объекты, доступные для обрабо

0000

Как например, при наборе в текстовом редакторе www.la-la.ru ссылка выделяется
и щелчек по ней открывает её в броузере (в неполном варианте можно то же
увидеть в lister'e - редакторе WinCommander)
Единственное что в голову приходит, так это обрабатывать вводимый текст и при получении "шаблона" (www.##.##) втавлять вместо текста "панель" с надписью.
Может можно проще, как-нить с помощье richedit?
Язык проганья Delphi, но я думаю это не шибко важно.

yuda

Не думаю, что добавляют лишние окна.
Первое, что приходит в голову:
1) При вводе анализируешь, не была ли это ссылка и если да, то запоминаешь координаты в тексте и красишь в синий цвет
2) Пишешь функцию, которая по координатам мыши выдает номер символа, над которым находится указатель
3) Делаешь все, что тебе нравится

0000

Это мысля канечна.
Хотя в lister'e как то по другому сделано...

yuda

Не знаю.
И никаких указаний, на то, как там сделано.

yuda

Но, кстати, подумалось, что смотрелку можно организовать именно таким образом, как ты описал.
А вот редактор - уже не то что геморно, а как-то, мягко говоря, кривовато.

0000

Вот и я так подумал.
Буду наверно через цвет делать.

yuda

О! MSDN
CRichEditCtrl::CharFromPosSee Also
CRichEditCtrl Overview | Class Members | Hierarchy Chart | CRichEditCtrl::PosFromChar
Retrieves information about the character at the point specified by the parameter pt.
int CharFromPos(
CPoint pt
) const;
Parameters
pt
A CPoint object containing the coordinates of the specified point.
Return Value
The zero-based character index of the character nearest the specified point. If the specified point is beyond the last character in the control, the return value indicates the last character in the control.
Remarks
This member function works with a rich edit control. To get the information for an edit control, call CEdit::CharFromPos.
For more information, see EM_CHARFROMPOS in the Platform SDK.
В Delphi, значит, тоже что-то подобное должно быть.
Оставить комментарий
Имя или ник:
Комментарий: