Ohne wirklich etwas in der Richtung gemacht zu haben würde ich behaupten dass die angesprochenen Probleme daher kommen, wenn man die Dateien (die ja schon irgendwo auf der Platte liegen) wirklich mit Methoden wie LoadFromFile(..) oder ähnliches reinlädt oder an
Indy übergibt.
Ich habe mit
Indy nie viel gemacht, aber neben Dateien hat das Ding garantiert Unterstützung für
Streams. Dann nimmst du einen
TFileStream (oder
TBufferedFileStream) und gibst das weiter.