Versuche es mal so ...

Code:
procedure TForm1.FormCreate(Sender: TObject); 
var i,j:integer;
    s  :string; 
begin                                  { Begin der Prozedur }
for j := 1 to 1000 do                  { Fuehre Schleife 1000x aus }
 begin                                 { Begin der Schleife }
  s := ' ';                            { Loesche den alten String }
  for i := 1 to 8 do                   { Jeder String hat 8 Zeichen zu haben}
     s := s + Chr(Random(26) + 65);    { Fuege dem String ein Zufallszeichen hinzu }
  listbox1.add(s);                     { Wenn String komplett fuege ihn der Liste hinzu }             
 end;                                  { Ende der Schleife }
end;                                   { Ende der Prozedur }
Der zweite Teil ist fast richtig, aber es muss Edit1.Text und nicht Edit1.Caption heissen. Ausserdem muss es entweder Edit1.Text := 'ergebniss'; heissen oder Edit1.Text := Edit1.Text + ' ergebniss'; nicht aber, wie du schriebst Edit1.Caption + 'ergebniss'; Zudem hast du ein Begin zu viel drin .. wieso sollte das vor der Procedur stehen ? Und dann fehlt auch noch ein end; um die Procedur abzuschliessen ... hier mal der Code nochmal richtig

Code:
procedure TForm1.bt_suchenClick(Sender: TObject);
var i:integer;
begin                                                     { Begin der Prozedur }
Edit1.Text := '';                                         { Loesche das Textfeld der Ergebniszeile }
for i := 0 to Listbox1.Count -1 do                        { Fuehre Schleife fuer jeden Eintrag in Liste aus }
 begin                                                    { Begin der Schleife }
  if pos(listbox1.items[i], '<suchstr>') > 0 then         { Ist <suchstring> im Eintrag enthalten, also Position > 0 }
    if Edit1.Text <> ''                                   { Dann pruefe, ob Textfeld noch leer ist }
      then Edit1.Text := Edit1.Text + ', ' + inttostr(i)  { Ist es nicht leer, so fuege den Listenindex mit Komma getrennt dem Ergebnis hinzu }
      else Edit1.Text := inttostr(i);                     { Ist es leer (also erstmals etwas gefunden), brauchen wir kein Komma }
 end;                                                     { Ende der Schleife }
end;                                                      { Ende der Prozedur }
Hoffe, das bringt dich weiter ...
Der Code ist aus dem Kopf geschrieben und nicht auf fehler geprueft, sollte aber funktionieren.