AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Kann meine Komponente nicht installieren!!

Ein Thema von F.W. · begonnen am 31. Okt 2004 · letzter Beitrag vom 1. Nov 2004
Antwort Antwort
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#1

Kann meine Komponente nicht installieren!!

  Alt 31. Okt 2004, 18:02
Ich versuche meine Komponente (TBitmapStream) zu installieren, aber er meckert immer:

"[Fehler] ImageStream.pas(36): Inkompatible Typen: 'TComponentClass' und 'Class reference'"

Delphi-Quellcode:
type
  TBitmapStream = class(TMemoryStream)
  private
    { Private-Deklarationen }
  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
    { Published-Deklarationen }
  end;

procedure Register;

implementation

procedure Register;
begin
 RegisterComponents('Beispiele', [TBitmapStream]);
end;
Was kann ich machen?
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Kann meine Komponente nicht installieren!!

  Alt 31. Okt 2004, 18:25
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
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#3

Re: Kann meine Komponente nicht installieren!!

  Alt 31. Okt 2004, 18:29
Dass du den Fehler nicht siehst..

Delphi-Referenz durchsuchenRegisterComponents registriert Komponenten, die (logischerweise) von Delphi-Referenz durchsuchenTComponent abgeleitet sind. TMemoryStream ist aber TCostumMemoryStream <- TStream abgeleitet. Du könntest höchsten RegisterClass benutzen..
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#4

Re: Kann meine Komponente nicht installieren!!

  Alt 1. Nov 2004, 14:42
Hmmm, stimmt!

Zitat:
Dass du den Fehler nicht siehst..
>>Sorry! Hab bisher noch nie von TStream oder so abgeleitet, immer nur von Sachen die schon in der Componentenpalette stehen!

Danke!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz