"BL" könnte eine Klasse sein, oder ein eigenes Projekt in einer Projektgruppe oder einfach ein DataModule (wobei das dann keine richtige Trennung von der
GUI mehr ist) oder sogar eine
DLL.
Der Business-Layer ist idealerweise eigentlich keine Klasse, sondern eine Schicht: Wenn Du alle Klassen deines Projekts vertikal so anordnest, das die Abhängigkeiten einer Klasse ('Uses Liste') immer nur nach oben zeigen, dann kannst Du diese Hierarchie in einzelne Schichten unterteilen.
Ganz oben ist die UI, also Formulare, Komponenten usw.
Ganz unten die Datenmodule (wenn Du welche hast). Oberhalb der Datenzugriffschicht (also dort, wo mit der Datenbank kommuniziert wird) liegt normalerweise der Business Layer, der Daten von der Datenschicht nimmt, Umformungen der Daten vornimmt (nach Aufforderung von oben) und diese wieder an die Datenschicht zum speichern übergibt.
Die Befehle zur Datenmanipulation kommen aus der UI oder besser noch: Aus einer Schicht dazwischen, dem Viewmodel. Dieses Viewmodel stellt eine 'Fassade' dar (nicht mit dem Pattern gleichen Namens verwechseln), welche die Daten und Operationen der BL-Schicht so maskiert, das die UI diese ohne großartige eigene Logik darstellen kann.
Die Sache mit dem Viewmodel ist nicht sehr weit verbreitet und bei kleineren Projekten auch nicht wirklich nötig, denn es ist schon eine ganze Menge Mehrarbeit.