Forum
Grundkurs
»Introduktion
»Snabbguide
»Komponenter
»Händelser
»Strängar
»Räkna med Delphi »Egna
typer
»Selektion
»Iteration
»Menyer
»Funktioner
»Arraystrukturer
Tips & Tricks
»Nya tips
»Blandat
»Databaser
»Filer
»Forms
»Grafik
»Internet
»Komponenter
»Matematik
»Multimedia
»Objekt/ActiveX
»Skrivare
»Strängar
»System
»Mest lästa tips
Artiklar
»Delphi och ADO
»Bygga en DLL
»Skapa en enkel rapport
»Hantera registret
»Enheter, units
»Klassen TCanvas
»Använd LookUp Controls
Nya
tips
Lägg
till tips
Delphilänkar
Gästbok
|
|
|
|
Markera webadresser i en TRichEdit
|
Kategori: Komponenter
Inlagt: 2005-07-24
Läst: 1290
Inlagt av: Staffan Berg
|
Beskrivning |
Detta kodexempel ser till att webadresserna blir markerade (understrukna) i en TRichEdit-kontroll.
|
Kod |
procedure TForm1.FormCreate(Sender: TObject); var mask: Word; begin mask := SendMessage(Handle, EM_GETEVENTMASK, 0, 0); SendMessage(RichEdit1.Handle, EM_SETEVENTMASK, 0, mask or ENM_LINK); SendMessage(RichEdit1.Handle, EM_AUTOURLDETECT, Integer(True), 0); RichEdit1.Text := 'FuzzyDizzie.com: '#13#10 + ' Site is located at www.fuzzydizzie.com'; end; // now we must detect mouse clicks in URL range. For this task we must // override WndProc method of our form: type TForm1 = class(TForm) protected procedure WndProc(var Message: TMessage); override; end; //the implementation looks like this: procedure TForm1.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(RichEdit1.Handle, EM_EXSETSEL, 0, Longint(@(p.chrg))); strURL := RichEdit1.SelText; ShellExecute(Handle, 'open', PChar(strURL), 0, 0, SW_SHOWNORMAL); end end end; inherited; end;
|
|
|