コンポーネントのコンストラクタが発生しない…。

解決


たかみちえ  URL  2002-05-28 21:33:36  No: 942  IP: [192.*.*.*]

TGraphicControlをもとにコンポーネントを作ってるんですけど、
なぜか、TVBox.Create(self);

編集 削除
たかみちえ  URL  2002-05-28 21:39:24  No: 943  IP: [192.*.*.*]

ごめんなさい、間違って送信してしまいました^^;

  えーっと、ソースに直接TVBox.Create(self);とかくと、
ちゃんとCreateコンストラクタが実行されるんですけど、
設計中に直接はりつけると、なぜかコンストラクタが実行されないで、
透明の部品が貼り付けられてしまうんです。

  とりあえず他の人のコンポーネントなどいろいろ参考にしてみたんですけど、
どこが違うのか…。
constructor Create(AOwner:TComponent); override;
とPublic宣言に書いて、そのあと、
implementationのしたに、メソッド宣言とかと同じように、
constructor TVBox.Create(AOwner:TComponent);
begin
  と書くんですよね?
どこがおかしいんでしょうか?教えてくださいおねがいします。

編集 削除
にしの  2002-05-28 22:20:19  No: 944  IP: [192.*.*.*]

inherited しています?
constructor TVBox.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
・・・
と書き始めてもうまくいきませんか?

編集 削除
にしの  2002-05-28 22:27:15  No: 945  IP: [192.*.*.*]

Createでは描画されません。
Procedure Paint; virtual;を、overrideして描画を実装します。
Createが通っていないということを、どのように確かめましたか?
IDEで貼り付けたときは、デバッグは働かないのでブレークポイントを置いただけではわかりません。

編集 削除
たかみちえ  URL  2002-05-28 22:43:41  No: 946  IP: [192.*.*.*]

いつもいつもすばやい返答ありがとうございます。

Createを通っていないのは、プロパティが全部0になってるので分かりました。
あと、なかでTBitmapを作ったんですけど、
それが初期化されていなかったので。

 inherited Create(AOwner);を忘れてました。ごめんなさい^^;
あと、Paintも、おかげでうまくいきました。
たびたびありがとうございます。

編集 削除