掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
親ウィンドウがないと表示されてしまう自作コンポーネント (ID:19007)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
提示されているコードだけでは,適切なコメントはできませんが, 一般にコンポーネント(コントロール)にはParent(親)が必要です. たとえば以下のコードでは,(*)のコードがないとAButtonは表示されません. procedure TForm1.Button1Click(Sender: TObject); var AButton: TButton; begin AButton:=TButton.Create(Self); AButton.Parent:=Self; //(*)ここがないと表示しない AButton.Show; end; コンポのconstructor ではParentはまだできて(設定されて)いません. (上のコードでも明らかで,Createの後でParentを設定していますよね) Parentは,SetParentメソッドで設定されます.したがって,SetParentを overrideして,Parent<>nil の場合(SetParentはコンポの破棄の時も含めて 複数回呼ばれ,nilの時もあります)にCanvasをもつものであれば,Canvasに 描画できます. ただし,具体的な情報が不足していますので,WM_PAINTメッセージや、Paint メソッドで描画すべきかは,判断できません. >最後ですが、下のペンネーム様と名前がかぶってごめんなさい。 このようなことを避けるためには,ステハンは使用しないことです. 「ペンネーム」はどう考えてもステハンでしょうね.
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.