- Delphiartiklar, tips, forum, länksamling - 

      

START | DELPHI | LÄNKARGÄSTBOK 




 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: 1192
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; 

 
 
© Copyright 2005 - Staffan Berg
- Alla rättigheter förbehålles -