掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
生成したTPaintBoxに線を描画するには? (ID:20581)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>でも、Captionを再描画するコードはPaintBoxPaint内にない。 >それでもCaptionは再描画される。 Delphi言語というのは,クラスという単位でその言語体系を構築しています. 例えば,TLableの派生元はTCustomLableです, TLabel <--- TCustomLabel このTCustomLabelの中に procedure CMTextChanged(var Message: TMessage); message CM_TEXTCHANGED; というメッセージ処理があります.その中身は以下の様になっています. この中でCaptionの再描画を行っているわけです. procedure TCustomLabel.CMTextChanged(var Message: TMessage); begin Invalidate; AdjustBounds; end; Windowsのというのはメッセージの嵐です,その中のいくつを捕らえて 利用しやすいようにしたのがイベントです.オブジェクト・インスペク タに表示されているそれです.他のWindowsのメッセージは作成しなけ れば捕らえることができません.上に示したCaptionを表示するための メッセージの処理は,TCustomLableで行われています. つまり,TLableのCaptionはDelphiの利用者が意識しなくても再描画 (メッセージ)処理をしてくれます. この例の様に,Delphiの動作を詳しく知るには,コンポーネント(クラス )のソースコードを追うことで理解することができます. もっと理屈を言えば,コンポーネントのTextまたはCaptionが変更されると Delphiは自分自身にCM_TEXTCHANGEDというメッセージを送ります. (その様にDelphiが作られています.中も外も関係ありませんし,考える必 要もありません.その様にDelphiができているのです) このメッセージの処理がCMTextChangedです. [参考] http://homepage2.nifty.com/Mr_XRAY/Halbow/Chap00.html#sanka >でも、Captionを再描画するコードはPaintBoxPaint内にない。 >それでもCaptionは再描画される。 どうしても,この疑問を納得するまで解決したいのであれば,Halbowさん の解説のコードを自分で打ち込んで実行してみることをお勧めします. まずは,理屈よりも実践です.理屈は後からついてきます. 神武天皇も明治天皇も関係ありません!! 文法から入って勉強する某国の英語教育の真似をする必要はありません.
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.