イベントハンドラについて - Printable Version +- Curl Global Community (https://communities.curl.com) +-- Forum: Discussions (https://communities.curl.com/forumdisplay.php?fid=1) +--- Forum: General Curl questions (https://communities.curl.com/forumdisplay.php?fid=2) +--- Thread: イベントハンドラについて (/showthread.php?tid=283) |
イベントハンドラについて - tutumi - 09-21-2011 こんにちわ。tutumiです。 Curl初心者です。 on(マクロ)を使わずにEventHandlerを作成しEventTarget にセットする方法はありますか? ご教授いただきたく宜しくお願いいたします。 又、VLEで作成したレイアウトの個々の要素についてイベントハンドラを割り付ける一般的な方法についても 解ると助かります。 RE: イベントハンドラについて - nmyzk - 09-22-2011 EventHandlerは普通のクラスですから、 普通にEventHandlerインスタンスを作成すること自体は onマクロを使用しなくても可能です。 ただ、onマクロの方が簡単なのでお勧めはしません。 tutumiさんの期待する回答になっているかわからないのですが、 C#の匿名メソッドやJavaの匿名クラスを用いるような形式で プログラム中に動的にイベントハンドラを登録したいということでしょうか? 上記だとすると、EventTarget.add-event-handlerメソッドを使えば イベントハンドラを動的に追加することは可能です。 例えば以下のコードのような例です。 Code: let e:EventHandler = VLEは少しコードに癖があるので正しい書き方を示すのが難しいですが、 私が一番判りやすいと思う書き方は、 画面右のイベントハンドラ欄でイベントを設定し、 イベントの処理に対応するメソッドを別途定義して それを呼び出す書き方にするのが良いように思います。 判りづらい説明ですみません。 不明な点があったら追記でご質問ください。 RE: イベントハンドラについて - nasuB - 09-22-2011 こにゃにゃちわ。 リゾート地で、バケーションだったのですっかり焼きナス状態です。 onマクロ使わない方法は、こんなんでいかがっすか? Code: {def eh = {EventHandler もしくはコード内でEventHandlerを追加するには、 Code: {def cb = {CommandButton ただ、この場合でもonマクロを使った方がシンプルかも。。 Code: {def eh = {on Action do VLEは分からないので、誰かヘルプ!! -B RE: イベントハンドラについて - nasuB - 09-22-2011 いかん、返信している間に、かぶった・・・。 申し訳ナス。 -B RE: イベントハンドラについて - tutumi - 09-27-2011 皆様 ご教示頂き、ありがとうございます 小生 既存アプリのRIA化の検討中でcurlについて調査している次第です。 ビュー層について、レイアウトをWYSIWYGに操作できるエディタが存在していて ビュー層でのmvcをうまく表現できるツールを検討しています。 イベントのハンドラの割付等はレイアウトクラスではなくコントロールクラスで行い イベントハンドラを拡張してハンドラ実行前後のログ出力等を実施出来ればよいと考えておりました。 ご教示いただく間に、下記のような感じで、割り付ける事は出来る事を確認していたのですが、作ったハンドラをVLEで割り付けることができず悩んでいます。 VLEで割り付けようとすると常にonマクロになってしまいレイアウトクラスに制御内容が混在してしまいます。 curlを利用してのmvc(コンテンツ・レイアウト・コントロール)をうまく分離し、VLEで操作する良い方法は ありますでしょうか、あるいはcurlらしいつくり方はどのようになるでしょうか。 ソースコード: ||============ onマクロを使わない イベントハンドラ追加方法確認 START ||ハンドラプロシージャ作成 let my-proc:{proc-type {Event, EventTarget}:void} = {proc {event:Event, eventTarget:EventTarget}:void {output "ccc"} } ||ハンドラ作成 let myActionEventHandler:EventHandler = {new EventHandler, Action,my-proc} ||ハンドラ割付 {self._layout.login-button.add-event-handler myActionEventHandler} {self._layout.login-button.add-event-handler {new EventHandler, Action,my-proc}} ||============ onマクロを使わない イベントハンドラ追加方法確認 END RE: イベントハンドラについて - yosuga - 09-27-2011 VLEでは基本的にonマクロになると思いますので、代わりにSonntagはどうでしょうか。VLEも使えるようです。 http://developers.curlap.com/re-reference/45-fw05.html |