Forum: Multimedia
Delphi
by himitsu,
1. Mär 2010
Soo, ich glaub jetzt dürfte es soweit stimmen.
'ne Positionsprüfung bei Read- und Write-Zugriffen gibt's nun,
denn der Zugriff über den "Hauptstream" existiert ja weiterhin, so daß von dort aus auch was geändert werden könnte, welches so jetzt abgefangen wird.
In .Create wird der Hauptstream absichtlich nicht geprüft, denn Assigned(Stream) würde nur den einen Fall eines NIL-Pointers...
Forum: Multimedia
Delphi
by himitsu,
27. Feb 2010
Size kommt über GetSize, welches auf dem QuellStream die Größe ausließt und begrenzt.
Position wird über Seek berechnet ... dort führt der TStream einen Seek(0) auf die aktuelle Position aus und Seek liefert ja dann als Ergebnis die Position, auf welche verschoben wurde, also die aktuelle Position, da ja nicht wirklich verschoben wurde.
Forum: Multimedia
Delphi
by himitsu,
26. Feb 2010
Mit dem Seek hast du Recht, obwohl ich jetzt auf die Schnelle nicht sagen kann, ob es so nun stimmt,
aber ich hat so das Gefühlt, daß dem leider nicht so ist.
Beim Read und Write war es schon richtig, daß die Grenzen des abgeleiteten Streams genutzt wurden.
Dieses Wochenende hab ich kaum Zeit, so werd' ich wohl erst nächste Woche nochmal genauer nachsehn können.
theoretisch mit...
Forum: Multimedia
Delphi
by himitsu,
26. Feb 2010
Mal was Billiges:
Type TStreamPart = Class(TStream)
Private
_Stream: TStream;
_Offset, _Len: Int64;
Protected
Function GetSize: Int64; Override;
Procedure SetSize(NewSize: LongInt); Overload; Override;
Procedure SetSize(Const NewSize: Int64); Overload; Override;
Public