TGraphicControlをもとにコンポーネントを作ってるんですけど、
なぜか、TVBox.Create(self);
と
ごめんなさい、間違って送信してしまいました^^;
えーっと、ソースに直接TVBox.Create(self);とかくと、
ちゃんとCreateコンストラクタが実行されるんですけど、
設計中に直接はりつけると、なぜかコンストラクタが実行されないで、
透明の部品が貼り付けられてしまうんです。
とりあえず他の人のコンポーネントなどいろいろ参考にしてみたんですけど、
どこが違うのか…。
constructor Create(AOwner:TComponent); override;
とPublic宣言に書いて、そのあと、
implementationのしたに、メソッド宣言とかと同じように、
constructor TVBox.Create(AOwner:TComponent);
begin
と書くんですよね?
どこがおかしいんでしょうか?教えてくださいおねがいします。
inherited しています?
constructor TVBox.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
・・・
と書き始めてもうまくいきませんか?
Createでは描画されません。
Procedure Paint; virtual;を、overrideして描画を実装します。
Createが通っていないということを、どのように確かめましたか?
IDEで貼り付けたときは、デバッグは働かないのでブレークポイントを置いただけではわかりません。
いつもいつもすばやい返答ありがとうございます。
Createを通っていないのは、プロパティが全部0になってるので分かりました。
あと、なかでTBitmapを作ったんですけど、
それが初期化されていなかったので。
inherited Create(AOwner);を忘れてました。ごめんなさい^^;
あと、Paintも、おかげでうまくいきました。
たびたびありがとうございます。
ツイート | ![]() |