掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
生成したTPaintBoxに線を描画するには? (ID:20592)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>整理したものをいつかサイトで発表していただけませんか。 あれれっ,いや〜,困ったな.私自身は,イベントについて,デル太さんへの レスの形で,当面以下の様に理解していれば,と考えていますので,以下の文章で 勘弁して下さいませ m(_ _)m .ごめんなさい. ------------------------------------------------------------------------ >なるほど、OnClickはプロパティなんですね。 >OnClickの記述場所というか、IDEはなぜイベントとわかるか?という点で疑問が OnClickというプロパティを設定すると,Delphiは自動的にそれをイベントとして 処理してくれるわけです. ですから,「なぜわかるか」ではなく, 「そうなるようにDelphiが設計されている」のです. Edit1.Text:='Delphi'; とした時,デル太さんは,なぜIDE,DelphiはそれがTextだとわかるかは理解 しているわけですか.たとえ十分理解していなくても使えてますよね.それ と同じです. プロパティといっても,String型,Integer型,TColor等々,そしてイベント の場合もいろいろありますが,この場合はTNotifyEvent型です. これは,他の方のレスにも説明があります. >ただ、この先はたどれませんでした。 たどれます.「さ」さんがCaptionについて説明されていますが,それと同じ ように. TObject | TComponent | TPersistent | TControl | TWinControl | TButtonControl | TButton TControlで以下の様になっています. FOnClick: TNotifyEvent; つまり,TControlのOnClickを継承しているんですね.継承元のプロパティなりが, 継承先で利用できるという,Delphiのすばらしい機能の一つです. そして,ButtonのOnClickイベントを作成して実行すると,それを実行して くれます.もし,この動作を,Windowsのメッセージを自分で処理するとなると, (1) Windowsのメッセージを常に監視し,何かの操作が発生したかを検査する (2) それががマウスの左ボタンのクリックかを調べる (3) わかったら,そのボタンが押された時に実行するコードに実行を移動する (4) そのコードを実行する (5) そのコード自身は,自分がいつどこから呼出されたか関係なく実行する これを1からプログラマーがやっていたら大変です.Delphiではイベントの コードを書いておくことで,全てこれを自動で実行してくれます. つまり,プログラマーは,イベントハンドラを書くことに専念すればいい ことになります. これを「イベント駆動型プログラミング」と言っています. なお,TButtonの場合,オブジェクトインスペクタでダブルクリックして 作成されるOnClickのイベントの名前は,Button1Clickとなりますが, (ButtonのNameプロパティがButton1の場合) 空白状態でダブルクリックしないで,オブジェクトインスペクタの右の欄に, 自分で好きな名前を入力(タイプして)つけることもできます. 例えば ABCとタイプして,ダブルクリックすると, procedure TForm1.ABC(Sender: TObject); begin end; というのができます.もちろん,ちゃんと動作します. ----------------------------------------------------------------- デル太さんの次なる疑問は (1) Windowsのメッセージはどのようにして,どこで発生するのですか? (2) それがマウスの左ボタンとどうしてわかるのですか? (3) 等々... ということになるのでしょうか.これらの疑問にはお付き合いできません のでご了承下さい(笑).
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.