Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.007 c
15-1213126413
wl
2008-06-10 23:33
2008.07.27
oracle getting started


8-1183559340
alex30341
2007-07-04 18:29
2008.07.27
Перехват видео


15-1213080452
{RASkov}
2008-06-10 10:47
2008.07.27
Ограничение доступа в интернет


2-1214667019
NewQuestion
2008-06-28 19:30
2008.07.27
Разделитель целой и дробной части в денежной единице.


2-1214220645
ciborg
2008-06-23 15:30
2008.07.27
Сбор информации о системе





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский