{Writing}
for f := 0 to
ImageList2.Count-1 do
begin
ImageList2.GetBitmap(f, bitmap);
MYJPEG.Assign(bitmap);
MYJPEG.SaveToStream(theMemStream);
if theMemStream.Size > 0 then
begin
size := theMemStream.Size;
theFileStream.Write(size, SizeOf(size));
theMemStream.Seek(0, soFromBeginning);
theFileStream.CopyFrom(theMemStream, size);
theMemStream.SetSize(0);
end;
end;
begin
ImageList2.GetBitmap(f, bitmap);
MYJPEG.Assign(bitmap);
MYJPEG.SaveToStream(theMemStream);
if theMemStream.Size > 0 then
begin
size := theMemStream.Size;
theFileStream.Write(size, SizeOf(size));
theMemStream.Seek(0, soFromBeginning);
theFileStream.CopyFrom(theMemStream, size);
theMemStream.SetSize(0);
end;
end;
{Loading - gives repeats of only one picture for
the number of pictures tendered in Write:}
repeat
theFileStream.Read(size, SizeOf(size));
theMemStream.CopyFrom(theFileStream, size);
theMemStream.Seek(0, soFromBeginning);
MYJPEG.LoadFromStream(theMemStream);
with bitmap do begin
Width := MyJPEG.Width;
Height := MyJPEG.Height;
Canvas.Draw(0, 0, MyJPEG);
end;
InsertPic(bitmap);
theMemStream.Size := 0;
until theFileStream.Position >= theFileStream.Size;
theFileStream.Read(size, SizeOf(size));
theMemStream.CopyFrom(theFileStream, size);
theMemStream.Seek(0, soFromBeginning);
MYJPEG.LoadFromStream(theMemStream);
with bitmap do begin
Width := MyJPEG.Width;
Height := MyJPEG.Height;
Canvas.Draw(0, 0, MyJPEG);
end;
InsertPic(bitmap);
theMemStream.Size := 0;
until theFileStream.Position >= theFileStream.Size;