Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.04.08;
Скачать: CL | DM;

Вниз

URL   Найти похожие ветки 

 
Adios ©   (2007-03-20 13:14) [0]

как мне в мемо или ричэдит выделить URL если таковой появится, или обрезать весь текст и оставить тока ссылку?


 
Джо ©   (2007-03-20 13:17) [1]

См. по теме «конечные автоматы».


 
clickmaker ©   (2007-03-20 13:22) [2]


>  выделить URL

Pos("http://", text) и далее до пробела или >, если ссылка начинается с <


 
sniknik ©   (2007-03-20 13:39) [3]

uses RichEdit;

procedure TForm1.FormCreate(Sender: TObject);

 procedure SetVisibleLink(RichEdit: TRichEdit);
 var
   mask: Word;
   Rect: TRect;
 begin
   with RichEdit do begin
     mask:= SendMessage(Handle, EM_GETEVENTMASK, 0, 0);
     SendMessage(Handle, EM_SETEVENTMASK, 0, mask or ENM_LINK);
     SendMessage(Handle, EM_AUTOURLDETECT, Integer(True), 0);
   end;
 end;

begin
 SetVisibleLink(RichEdit1);
end;


 
sniknik ©   (2007-03-20 13:40) [4]

Rect: TRect; лишнее затесалось... (правил здесь).


 
Adios ©   (2007-03-20 13:41) [5]

text я так понял это текст из которого выборка происходит, а как мне пробелом ограничить?
например
if pos("http://",adress)>0 then showmessage(adress);
но если adress содержит пробел после ссылки и ещё символы, то сообщение всёравно выскакивает


 
clickmaker ©   (2007-03-20 13:42) [6]


> [3] sniknik ©   (20.03.07 13:39)

и у тебя это в стандартном работает? Не Rx?


 
Adios ©   (2007-03-20 13:43) [7]

у меня компилятор EM_GETEVENTMASK не пропускает, говорит что неизвестная переменная


 
sniknik ©   (2007-03-20 13:47) [8]

> и у тебя это в стандартном работает? Не Rx?
а типа Rx както по другому работает... имхо таже надстройка над стандартным, как и все компоненты.
а так как у нас использование "левых"  компонент запрещено,  приходится выкручиваться...

и кстати... перечитал вопрос, и видимо я не о том вовсе... (слово "выделить" неправильно интерпретировал ;)

> у меня компилятор EM_GETEVENTMASK
не все показанное перенес...


 
clickmaker ©   (2007-03-20 13:57) [9]


> а типа Rx както по другому работает

Rx грузит riched20.dll, если есть. А стандартный richedit32, т.е. первой версии, в которой эта фича не работает

Наследника написал?


 
sniknik ©   (2007-03-20 14:02) [10]

> т.е. первой версии, в которой эта фича не работает
в первый раз от тебя слышу... ну может раньше было... не сталкивался в общем. всегда работало.

> Наследника написал?
ничего не писал, кроме показанного, в d7 работает (в смысле ссылки выделяет, если нужно чтобы еще и кликались то там еще чуток кода надо добавить (вопроса о кликах не стояло ;о)))


 
clickmaker ©   (2007-03-20 14:09) [11]


> [10] sniknik ©   (20.03.07 14:02)

а, все понял
видимо в новых ОС riched32 просто wrapper, судя по секции импорта

RICHED20.dll
RichEdit10ANSIWndProc


 
clickmaker ©   (2007-03-20 15:37) [12]

точно. Начиная с 2000. А в 98/NT4 riched32 была отдельной версией



Страницы: 1 вся ветка

Текущий архив: 2007.04.08;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.029 c
2-1174343562
DemonVX
2007-03-20 01:32
2007.04.08
Как убрать исключение AccessViolation?


2-1173946249
Knight
2007-03-15 11:10
2007.04.08
Какой смысл в TDatabase?


15-1172580809
Alex Konshin
2007-02-27 15:53
2007.04.08
Трассировка exception в Delphi


2-1174068593
Леонид
2007-03-16 21:09
2007.04.08
Создание таблицы


2-1174295061
wasa
2007-03-19 12:04
2007.04.08
Поля