-サーバ連携方法、オープンソースの使い方など様々なCurlの実際のソースコードの記述方法が集約されています。afterマクロの使用方法について画面のレンダリングがタイミング的な問題でうまくいかないときに使ったりします。afterマクロの使用方法について画面描画のタイミングを制御、というと誤解を招きそう。いうイディオムの話しですよね。(0sより大きい値を指定して将来のあるタイミングに処理を予約する使い方はおそらくそれほど疑問はないと思うので)よく乱用されることもあるこのイディオムの使い方を真面目に理解するにはまずイベントループとイベントキューについて分かる必要があります。イベントループについてはWikipedia参照Curlのことばで簡単に説明するとイベントループは以下のような概念として理解できます。された場合などにエントリが追加されます。指定せずに処理だけをイベントキューの末尾に追加(enqueue)することといえます。handle-eventの途中で呼ばれた場合に、そのループを中断して、イベントキューが空になるまでそれ以降のループを回しきる(待機中のイベントをすべて処理してUIの描画も行う)ということになります。中断したループは、イベントキューを空にしたあとに再開されます。UIの再描画のみを実行するものです。使うよう推奨されているのはこのためです。afterマクロの使用方法についてイベントループモデルは近頃また話題ですねー。afterマクロの使用方法について>[url=http://communities.curl.com/member.php?action=profile&uid=13][/url]fukutaさん横やりですいません。指定せずに処理だけをイベントキューの末尾に追加(enqueue)することといえます。概念は分かったのですが、これを使う簡単な局面・例ってありますでしょうか?この手の「イベントを操作する」という概念は"はまった"経験しかなく、可読性が落ちる原因と自分は思っています。do}の様な概念は使用せず構築してきたので逆に「こういうときは結果的に使わざるを得ない」という例があればうれしいのですが・・・。この手の「イベントを操作する」という概念は"はまった"経験しかなく、可読性が落ちる原因と自分は思っています。do}の様な概念は使用せず構築してきたので逆に「こういうときは結果的に使わざるを得ない」という例があればうれしいのですが・・・。確かにむやみな使用は避けるべきと思います。妥当な例はすぐにたくさん思いつきませんが、例えばグラフィカルオブジェクトの大きさを表示時に取得したい場合など。表示上のサイズはオブジェクトがグラフィカル階層にアタッチされた後、レイアウトネゴシエーションが完了するまで確定しないので、サイズの取得はそれを待ってから行う必要があります。使って以下のように実現することがあります。※CurlのDateFieldはフォーカスアウト時に未入力だと値を元に戻してくれるのでDeleteで削除できない。しても後続の処理で値が復活してしまいます。実行されるようにしています。使える場合があります。基本的にはほとんどハック的な目的で使うものだと思います。afterマクロの使用方法について>fukutaさんご回答ありがとうございます。妥当な例はすぐにたくさん思いつきませんが、例えばグラフィカルオブジェクトの大きさを表示時に取得したい場合など。表示上のサイズはオブジェクトがグラフィカル階層にアタッチされた後、レイアウトネゴシエーションが完了するまで確定しないので、サイズの取得はそれを待ってから行う必要があります。CurlのGUI歴があまり(=殆ど)ないので、「何を今更?」的な事を言っているかもしれませんが、この場合別途イベントは発生しないのでしょうか?#~resizedイベント、みたいな感じのものです。使って以下のように実現することがあります。※CurlのDateFieldはフォーカスアウト時に未入力だと値を元に戻してくれるのでDeleteで削除できない。DateFieldの使用はないですが、こっちは意味は分かります。いった挙動をしたいという要求仕様+DateField使用は無理がある様に感じますね。0部分を1以上とするのも個人的には非常に違和感を感じます。GUIのローカルアプリでは通常、タイマーコントロールが存在しますが、こういった概念がないから(いや、あるのかも分かりません)でしょうか?質問ばっかりで申し訳ないですが、ご存じなら教えて下さい。CurlのGUI歴があまり(=殆ど)ないので、「何を今更?」的な事を言っているかもしれませんが、この場合別途イベントは発生しないのでしょうか?#~resizedイベント、みたいな感じのものです。いったイベントは発生しないですね。0部分を1以上とするのも個人的には非常に違和感を感じます。GUIのローカルアプリでは通常、タイマーコントロールが存在しますが、こういった概念がないから(いや、あるのかも分かりません)でしょうか?違和感についてはよく分かりませんが、CurlにもTimerというAPIがありますよ。定期的に処理を行う場合などはこちらを使います。