Hi, TMemoryStream ist kein Nachfahre von TComponent, deshalb klappt die Registrierung nicht.
Lösung: TBitmapStream von TComponent ableiten und ein Feld vom Typ TMemoryStream hinzufügen.
Delphi-Quellcode:
type
TBitmapStream =
class(TComponent)
private
FStream: TMemoryStream;
protected
{ Protected-Deklarationen }
public
function Count: Integer;
function AddBMP(BMP: TBitmap): Integer;
procedure LoadFromImageList(
const IL: TImageList);
procedure SaveToImageList(
var IL: TImageList);
procedure GetBMP(
const Index: integer;
var BMP: TBitmap);
procedure Delete(
const Index: Integer);
procedure InsertBMP(BMP: TBitmap;
const Index: Integer);
procedure SaveToFile(
const AFileName: TFileName);
procedure LoadFromFile(
const AFileName: TFileName);
procedure Clear;
{ Public-Deklarationen }
published
end;
Dann nur noch Contructor und Destructor hinzufügen, wo FStream erzeugt bzw. zerstört wird.
PS: Das "var" ist bei Parametern, die Objekte sind, zwar nicht nötig, aber es schadet eigentlich auch nicht. (
imho)
Dani H.
At Least I Can Say I Tried