Форум: "Начинающим";
Текущий архив: 2008.07.27;
Скачать: [xml.tar.bz2];
ВнизСсылка в тексте Найти похожие ветки
← →
uno-84 (2008-06-24 15:37) [0]Здравствуйте, подскажите пожалуйста! Каким образом мне сделать, что бы в RichEdite ссылки подсвечивалися синим цветом, причем помимо ссылок RichEdit содержет еще и текст. Заранее спасибо!
← →
{RASkov} © (2008-06-24 16:56) [1]> [0] uno-84 (24.06.08 15:37)
> в RichEdite ссылки подсвечивалися синим цветом
SendMessage(RichEdit.Handle, EM_AUTOURLDETECT, Integer(True), 0);
← →
uno-84 (2008-06-25 10:59) [2]не распознает EM_AUTOURLDETECT, как мне избавиться от этой ошибки
← →
Palladin © (2008-06-25 11:12) [3]Const
EM_AUTOURLDETECT=WM_USER+91
← →
uno-84 (2008-06-25 11:24) [4]Спасибо большое
← →
{RASkov} © (2008-06-25 13:21) [5]> [2] uno-84 (25.06.08 10:59)
Это не ошибка.... и кстати, как думаешь, Palladin или я сами придумали эту константу? нет, но в делфи есть поиск, где можно указать директорию с VCL и все бы нашлось.... Нет, я не к тому, что бы как-то повыпендриваться, а к тому, что если пользоваться поиском, то при нахождении одного ты видишь и остальные ответы..... но ты не пользуешься поиском и соответственно у тебя сейчас будет вопрос как обработать клик по ссылке, так? :)
ЗЫЖ Поиск бывает не только на жестком диске, а в интернете есть практически все, что и у тебя на ХДД
:о)
← →
uno-84 (2008-06-25 13:30) [6]Но у меня возник еще один вопрос, как ссылку в RichEdit я записываю полное имя файла
procedure TNewMesForm.UrBtnClick(Sender: TObject);
begin
SendMessage(Mesredit.Handle, EM_AUTOURLDETECT, Integer(True), 0);
OpenDialog1 := TOpenDialog.Create(self);
OpenDialog1.Title := "Файл";
OpenDialog1.InitialDir := "S:\";
If OpenDialog1.Execute then
begin
Mesredit.Text := MesRedit.Text + "<" + " " + "http:\\" + OpenDialog1.FileName + ">";
end;
end;
И дело в том, что если имя файла имеет пробел ссылка после пробела не поддерживется. И имя получается не полной
← →
Palladin © (2008-06-25 13:32) [7]заменяй пробелы на "%20"
← →
uno-84 (2008-06-25 14:12) [8]просто по этой ссылке нужно переходить на сетевой ресурс и открывать, а имя файло уже получается измененно
← →
Palladin © (2008-06-25 14:19) [9]а давай сначала попробуешь?
← →
uno-84 (2008-06-25 15:43) [10]Пробел - Char, а %20 уже String, могули я заменить на %?
← →
Palladin © (2008-06-25 15:45) [11]StringReplace + F1
← →
uno-84 (2008-06-25 16:22) [12]Спасибо огромное, теперь все нормально,)))) буду искать как обработать клик по ссылке
← →
{RASkov} © (2008-06-26 00:55) [13]> [6] uno-84 (25.06.08 13:30)
>OpenDialog1 := TOpenDialog.Create(self);
:)
> [12] uno-84 (25.06.08 16:22)
http://yandex.ru/yandsearch?clid=9582&text=EM_AUTOURLDETECT :)
http://www.delphisources.ru/pages/faq/base/re_url_highlight.html
← →
uno-84 (2008-06-26 09:37) [14]Нашел себе:
procedure TNewMesForm.WndProc(var Message: TMessage);
var
p: TENLink;
strURL: String;
begin
if (Message.Msg = WM_NOTIFY) then
begin
if (PNMHDR(Message.LParam).code = EN_LINK) then
begin
p := TENLink(Pointer(TWMNotify(Message).NMHdr)^);
if (p.msg = WM_LBUTTONDOWN) then
begin
SendMessage(MesRedit.Handle, EM_EXSETSEL, 0, Longint(@(p.chrg)));
strURL := MesRedit.SelText;
ShellExecute(Handle, "open", PChar(strURL), 0, 0, SW_SHOWNORMAL);
end
end
end;
inherited;
end;
Но ссылки все ровно не открываются, не знаете почему?
← →
Palladin © (2008-06-26 10:07) [15]инициализируй RichEdit, что бы он отправлял EN_LINK
Var
f:Cardinal;
f:=SendMessage(TRichEdit.Handle,EM_GETEVENTMASK,0,0);
f:=f or ENM_LINK;
SendMessage(TRichEdit.Handle,EM_SETEVENTMASK,0,f);
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.07.27;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.011 c