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

Вниз

Ссылка в тексте   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.02 c
2-1214593880
DmitriyG.
2008-06-27 23:11
2008.07.27
Проблема вызова COM из dll


15-1212446696
alex-drob
2008-06-03 02:44
2008.07.27
Где написать код, чтобы он выполнился после загрузки программы


2-1214379371
123-ий
2008-06-25 11:36
2008.07.27
Работа с логами


15-1212475156
pasha_golub
2008-06-03 10:39
2008.07.27
Заюзать .lib от Borland C compiler в Delphi


15-1213375788
-koha
2008-06-13 20:49
2008.07.27
Всем смотреть!