08-10-2011, 09:06 PM,
|
|||||
|
|||||
RE: afterマクロの使用方法について
(08-10-2011, 10:38 AM)復活の帝王 Wrote: この手の「イベントを操作する」という概念は"はまった"経験しかなく、可読性が落ちる原因と自分は思っています。 確かにむやみな使用は避けるべきと思います。 妥当な例はすぐにたくさん思いつきませんが、例えばグラフィカルオブジェクトの大きさを表示時に取得したい場合など。 表示上のサイズはオブジェクトがグラフィカル階層にアタッチされた後、レイアウトネゴシエーションが完了するまで確定しないので、サイズの取得はそれを待ってから行う必要があります。 Code: {on AttachEvent at g:Graphic do もうひとつの例は、例えば 「DateField の入力値を Delete キーで削除できるようにしたい」(※) といった要望があった場合に、after を使って以下のように実現することがあります。 ※CurlのDateFieldはフォーカスアウト時に未入力だと値を元に戻してくれるのでDeleteで削除できない。。 Code: {define-class public MyDateField {inherits DateField} これは、DateField の入力欄の「生の」値を見るために get-parsed-value というメソッドをオーバーライドして文字列が削除されたかどうか判断している例ですが、 このメソッド内で unset-value しても後続の処理で値が復活してしまいます。そのためここで after を用いて一連の処理が終わった後に unset-value が実行されるようにしています。 このように、組み込みAPIの動作など手を出せない部分に依存したり、それらの結果を覆したいような場合に after が使える場合があります。 基本的にはほとんどハック的な目的で使うものだと思います。 |
|||||
« Next Oldest | Next Newest »
|
Messages In This Thread |
afterマクロの使用方法について - by 森口 慶紀 - 07-28-2011, 10:31 AM
RE: afterマクロの使用方法について - by yosuga - 08-01-2011, 10:36 AM
RE: afterマクロの使用方法について - by 森口 慶紀 - 08-01-2011, 07:06 PM
RE: afterマクロの使用方法について - by fukuta - 08-02-2011, 08:32 AM
RE: afterマクロの使用方法について - by 復活の帝王 - 08-10-2011, 10:38 AM
RE: afterマクロの使用方法について - by fukuta - 08-10-2011, 09:06 PM
RE: afterマクロの使用方法について - by 復活の帝王 - 08-11-2011, 09:09 AM
RE: afterマクロの使用方法について - by fukuta - 08-11-2011, 01:40 PM
RE: afterマクロの使用方法について - by 復活の帝王 - 08-12-2011, 10:32 AM
RE: afterマクロの使用方法について - by yosuga - 08-02-2011, 09:11 AM
RE: afterマクロの使用方法について - by 森口 慶紀 - 08-02-2011, 11:01 AM
|
Users browsing this thread:
1 Guest(s)
1 Guest(s)