Also wenn ich Bitmaps aus einer Liste in einen Stream speichern wollte, dann würde ich das so machen:
Delphi-Quellcode:
procedure TBitmapList.SaveToStream( AStream: TStream );
var
idx: Integer;
begin
AStream.WriteData( Count );
for idx := 0 to Count - 1 do
Self[ idx ].SaveToStream( AStream );
end;
Das Lesen ist etwas aufwändiger (aber nicht wirklich)
Delphi-Quellcode:
procedure TBitmapList.LoadFromStream( AStream: TStream );
var
idx, lCount: Integer;
lBitmap : TBitmap;
begin
Clear;
AStream.ReadData( lCount );
for idx := 0 to lCount - 1 do
begin
lBitmap := TBitmap.Create;
try
lBitmap.LoadFromStream( AStream );
Add( lBitmap );
lBitmap := nil;
finally
lBitmap.Free;
end;
end;
end;
und zur Vollständigkeit
Delphi-Quellcode:
type
TBitmapList = class( TObjectList<TBitmap> )
public
procedure SaveToStream( AStream: TStream );
procedure LoadFromStream( AStream: TStream );
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)