Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Найти все ссылки в TMemo

01.01.2007
{ 
  For this tip you need Memo1, ListBox1, Label1, Button1. 
 
}
 
 procedure TForm1.Button1Click(Sender: TObject);
 var
    i, p: Integer;
   s: string;
 begin
   ListBox1.Clear;
   for i := 0 to Memo1.Lines.Count - 1 do
   begin
     if Pos('http://', Memo1.Lines.Strings[i]) > 0 then
     begin
       s := '';
       {If the current line contains a "http://", read on until a space is found 
 
       Die aktuelle Zeile wird nach der Zeichenfolge "http://" durchsucht 
       und bei Erfolg ab der gefundenen Position ausgelesen, bis ein 
       Leerzeichen auftritt...}
 
       for p := Pos('http://', Memo1.Lines.Strings[i]) to
         Length(Memo1.Lines.Strings[i]) do
         if Memo1.Lines.Strings[i][p] <> ' ' then
           s := s + Memo1.Lines.Strings[i][p]
       else
         break;
 
        {Remove some characters if address doesn't end with a space 
 
       Falls die gefundene Adresse nicht mit einem Leerzeichen abschlie?t, 
       werden hier noch anhangende Textzeichen entfernt...}
 
       while Pos(s[Length(s)], '..;!")]}?''>') > 0 do
         Delete(s, Length(s), 1);
       // Add the Address to the list... 
      //Gefundene Adresse in die Liste aufnehmen... 
      ListBox1.Items.Add(s);
     end;
   end;
 
   // Show the number of Addresses in Label1 
  // Die Zahl der gefundenen Adressen in Label1 anzeigen... 
 
  if ListBox1.Items.Count > 0 then
     label1.Caption := IntToStr(ListBox1.Items.Count) +
       ' Adresse(n) gefunden.'
   else
     label1.Caption := 'Keine Adresse gefunden.';
 end;

Взято с сайта: https://www.swissdelphicenter.ch