TFileStreamに機能を追加しようと思って、
コンポーネントを作ったんですけど…。
type
TBinFile = class(TFileStream)
・
・
・
procedure Register;
begin
RegisterComponents('Tool',[TBinFile]);
end;
とやってみたら、
RegisterComponentsの行で、
"'TComponentClass' と 'クラス参照' には互換性がありません"
と出てしまいました。
ヘルプや他の人のコンポーネントを参考にしていろいろやってみたんですけど、
エラーが消えません。
上のclass(TFileStream)をclass(TCompornents)としてみたら、とりあえずこの行のエラーだけは消えたんようなんですけど、
…となると、TFileStreamは継承できないんでしょうか?
TFileStreamクラスは、
THandleStream - TStream - TObject
と派生します。
一方、自作コンポーネントは、
TComponent - TPersistent - TObject
と派生していて、TFileStreamがTComponentの派生クラスではないために登録できません。
コンポーネントとして登録したいのであれば、TBinFileをTComponentの派生クラスとして定義して、そのプロパティにTFileStreamを持たせることで実現できます。
そうですかぁ…。でも結局書きかえるだけ…ですよね?
じゃあ、そうします。たびたびありがとうございました。
ツイート | ![]() |