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

解決


たかみちえ  URL  2002-05-29 06:33:36  No: 942

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


たかみちえ  URL  2002-05-29 06:39:24  No: 943

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

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

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


にしの  2002-05-29 07:20:19  No: 944

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


にしの  2002-05-29 07:27:15  No: 945

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


たかみちえ  URL  2002-05-29 07:43:41  No: 946

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

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

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


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








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