TFileStreamのコンポーネント化

解決


たかみちえ  URL  2002-05-21 23:04:17  No: 897

TFileStreamに機能を追加しようと思って、
コンポーネントを作ったんですけど…。
type
  TBinFile = class(TFileStream)



procedure Register;
begin
  RegisterComponents('Tool',[TBinFile]);
end;
とやってみたら、
RegisterComponentsの行で、
"'TComponentClass' と 'クラス参照' には互換性がありません"
と出てしまいました。
ヘルプや他の人のコンポーネントを参考にしていろいろやってみたんですけど、
エラーが消えません。

  上のclass(TFileStream)をclass(TCompornents)としてみたら、とりあえずこの行のエラーだけは消えたんようなんですけど、
…となると、TFileStreamは継承できないんでしょうか?


にしの  2002-05-22 00:08:16  No: 898

TFileStreamクラスは、
THandleStream - TStream - TObject
と派生します。
一方、自作コンポーネントは、
TComponent - TPersistent - TObject
と派生していて、TFileStreamがTComponentの派生クラスではないために登録できません。

コンポーネントとして登録したいのであれば、TBinFileをTComponentの派生クラスとして定義して、そのプロパティにTFileStreamを持たせることで実現できます。


たかみちえ  URL  2002-05-22 09:03:29  No: 899

そうですかぁ…。でも結局書きかえるだけ…ですよね?
じゃあ、そうします。たびたびありがとうございました。


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加