Außerdem scheinst du den Speicher den die TINIFiles belegen, nicht wieder freizugeben. Das führt zu sog. Memory Leaks (der Arbeitsspeicher wird bis zum Programmende mit nicht mehr benötigten Daten vollgeschrieben). Also immer wenn du eine Variable (genauer gesagt eine Objekt-Instanz) nicht mehr brauchst,
Variablenname.Free() aufrufen. Für Strings, Integers usw. erledigt Delphi das selber, aber für Objekte musst du dich ums Aufräumen kümmern.
Beispiel für deine erste Prozedur:
Delphi-Quellcode:
procedure ExportBase(From,FileName: string; Files: TFileListBox);
var
F,F2: TiniFile;
//...
begin
//...
F:=TIniFile.Create(FileName);
//...
for i:=0 to Files.Items.Count-1 do begin
//...
F2:=TiniFIle.Create(Files.FileName);
//...
F2.Free; // <----- Speicher freigeben!
end;
F.Free; // <----- Speicher freigeben!
end;