Dynamische-Array-Variablen enthalten selbst nur Pointer, du wirfst also einen Pointer auf einen Pointer in die Funktion. Versuch es mal mit
@Datei[0] // Zeiger auf das erste Element des dynamischen Arrays
PS: Warum SetLength(Datei,AttachedFileName.Count
+1)
?