Der Aufruf von LoadPicture verursacht Position = Size. Du musst Position vor dem Lesen des Streams wieder auf Null setzen.
Also entweder
Delphi-Quellcode:
LoadPicture(SkinPfad + iString);
//soll
pFile.Position := 0;
Picture.Bitmap.LoadFromStream(pFile);
//dieses hier, gibt aber immer eine exception!
Oder
Delphi-Quellcode:
function LoadPicture...
begin
..
pFile.CopyFrom(lFile,Size);
pFile.Position := 0;
end;