Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Objekte einer TObjectList direkt aus dem Speicher lesen / in ihn schreiben

  Alt 4. Jan 2016, 23:39
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)
  Mit Zitat antworten Zitat