В конце после всех действий всё равно добавь строку
чтобы освободить память, занятую StringList
PS: Это относится ко всем объектам, которые ты сам лично создаешь ( например SL := TStringList.Create; )
PPS: Кстати вот ещё ссылка, скачай всё оттуда, в первую очередь - справочник по API-функциям
http://rexinc.narod.ru/load.htm