Warum so viel Code in einer einzigen Methode?
Das ist nicht gut!
Schreibe mal eine Funktion/Methode die nur Folgendes macht:
Inputparameter sind ein TStrings-Objekt mit allen Firmen und der Suchstring.
Die Funktion befüllt ein 2. TStrings-Objekt mit allen zum Suchstring passenden Treffern.
Man könnte das auch mit einer
SQL-Abfrage mit dem Operator LIKE ermitteln.
Auf jeden Fall: nicht Alles in eine Funktion packen sondern das Problem zerlegen
und mit Unterfunktionen lösen.