Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Вниз

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

 
able ©   (2004-03-22 07:38) [0]

Здраствуйте, ув. Мастера! У меня вопрос: как сделать обработку ссылок в RichEdit"е? Ну, что бы она (ссылка) меняла цвет, аттрибуты и при клике открывался дефолтный браузер (ну или почтовик) с этой ссылкой. Спасибо..


 
TUser ©   (2004-03-22 08:36) [1]

Обрабатывать OnMouseMove и OnClick


 
Piople ©   (2004-03-22 08:38) [2]


> TUser

Ага, а как ты будешь определять что находится над ссылкой


 
able ©   (2004-03-22 11:38) [3]

>Обрабатывать OnMouseMove и OnClick
А как выделять их?


 
easy ©   (2004-03-22 12:24) [4]

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ComCtrls, RichEdit, shellapi;

type
 TLinkRichEdit = class(TRichEdit)
 private
   procedure CNNotify(var Message: TWMNotify); message CN_NOTIFY;
 public
   procedure CreateWnd; override;
 end;

type
 TForm1 = class(TForm)
   procedure FormCreate(Sender: TObject);
   procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
 private
   LinkRichEdit: TLinkRichEdit;
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

{ TLinkRichEdit }

procedure TLinkRichEdit.CNNotify(var Message: TWMNotify);
type
 PENLink = ^TENLink;

 procedure CheckLinkMessage(EmLink: PENLink);
 var
   LinkText: string;
   LinkStart, LinkLength: Integer;
 begin
   if EMLInk.msg = WM_LBUTTONDOWN then begin
     LinkStart := EMLink.chrg.cpMin + 1;
     LinkLength := EMLink.chrg.cpMax - EMLink.chrg.cpMin;
     LinkText := Copy(Lines.Text, LinkStart, LinkLength);
     ShellExecute(0, "open", PChar(LinkText), "", "", SW_SHOW);
   end;
 end;

begin
 if Message.NMHdr^.code = EN_LINK then
   CheckLinkMessage(PEnLink(Message.NMHdr));
 inherited;
end;

procedure TLinkRichEdit.CreateWnd;
var
 EventMask: Longint;
begin
 inherited;
 SendMessage(Handle, EM_AUTOURLDETECT, 1, 0);
 EventMask := SendMessage(Handle, EM_GETEVENTMASK, 0, 0) or ENM_LINK;
 SendMessage(Handle, EM_SETEVENTMASK, 0, EventMask);
end;

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
begin
 LinkRichEdit := TLinkRichEdit.Create(self);
 LinkRichEdit.Parent := form1;
 LinkRichEdit.Align := alClient;
 LinkRichEdit.Lines.Add("http://delphimaster.net/view/1-1079930286/");
 LinkRichEdit.Lines.Add(">>> http://216.101.185.148/scripts/isapi.dll/article?id=1E04BE4F&article=4207475 <<<");
end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
 LinkRichEdit.Free;
end;

end.


 
able ©   (2004-03-22 13:13) [5]

Спасибо! Ща буду юзать :)


 
Serge ©   (2004-03-22 13:16) [6]

Also, look at:  http://www.lmc-mediaagentur.de/dpool.htm


 
able ©   (2004-03-22 13:58) [7]

ok!


 
able ©   (2004-03-22 15:01) [8]

>all, easy
А можно ещё вопрос. Надо, что бы, допустим, не только вида http://******.*** или mailto:*****, а допустим надпись "ооо" являлась ссылкой и ссылалась на http://www.****.**. Вроде всё..



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

Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.038 c
3-1081584601
Алексей (Гость)
2004-04-10 12:10
2004.04.11
Как обратиться из запроса к значению MaskEdit?


1-1082562776
Insert
2004-04-21 19:52
2004.04.11
Запуск readme


1-1082467995
Ultr
2004-04-20 17:33
2004.04.11
Функция в DLL с типизированным результатом?????


1-1082698992
tlan
2004-04-23 09:43
2004.04.11
dll с отчетом выкидывается ошибка EOleSysError


6-1076327005
Роман
2004-02-09 14:43
2004.04.11
POP3 - прикреплённые файлы





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский