- 1 名前:1 mailto:sage [2006/08/03(木) 13:43:29 ]
- 今まで知らないでゴリゴリしこしこやっていた処理が実は簡単に出来たなんてことがよくあります。
そんなちょっとしたテクニックやTips(秘訣)を紹介するスレです。 プログラミングのQ&Aは C++Builder相談室 Part16 pc8.2ch.net/test/read.cgi/tech/1138766165/ くだすれC++Builder(超初心者用)その2 pc8.2ch.net/test/read.cgi/tech/1144308804/ 関連スレ Borland Developer Studio 2006 No.07 pc8.2ch.net/test/read.cgi/tech/1154069526/ 【Delphi】 Indyコンポーネント 【C++Builder】 pc8.2ch.net/test/read.cgi/tech/1093654251/
- 261 名前:253 mailto:sage [2008/09/09(火) 18:35:55 ]
- >Assigned()
これは、関数ポインタが設定(=アサイン)されているか? ということを確認する関数。 どういうことかっていうと、OnClickみたいなイベントハンドラって関数ポインタ型になってるじゃん? で、IDEでイベントハンドラ設定すると、 OnClick := ButtonClick; みたいなコードで関数ポインタが設定されるわけ。 でコンポーネント側は、 >if (Assigned(OnClick)) > OnClick(self, , ,) みたいにイベントハンドラが設定されてたら関数ポインタを実行(=関数を実行)するわけ。
- 262 名前:253 mailto:sage [2008/09/09(火) 18:37:49 ]
- ま、Assignedコールもできるでしょうし、意味的には、
>if (OnClick != NULL) { > OnClick(self, , , ); >} と等価です。 また、OnClickみたいな関数ポインタを使わず、 関数コール直接書いてもおk。
- 263 名前:253 mailto:sage [2008/09/09(火) 18:42:52 ]
- >で、IDEでイベントハンドラ設定すると、
>Button1.OnClick := Button1Click; >みたいなコードで関数ポインタが設定されるわけ。 の方が正確かな。 ま、上記のような、コンポーネントがイベントハンドラを実行する仕組みは理解した方が良いが、 どーしても理解できない場合は、Win23APIべた書きして下さい: >ttp://www.m--takahashi.com/bbs/pastlog/03000/02950.html // アイドリング処理 グローバル関数
|

|