お世話になっております。 A.中村です。
#見える化は思いっきり遅刻(T_T)
On Mon, 13 Dec 2004 07:13:57 +0900
Masatoshi SEKI様 ******@***.*** wrote:
> Borlandのもよく知らないのですが、そのRADツールではmainにたくさんのイベント
> ハンドラが置かれちゃうのですか?
余談ですが。
C++Bは知らないのですが、親戚筋のDelphiなら愛用してました。
で、main()って関数名ですよね?
C++Bって、関数「に」ハンドラが置かれたりするんでしょうか?
DelphiだとForm(所謂Window)を継承したクラスのメソッドとして
ハンドラが作られたような記憶があります。
つまりFormクラス「に」置かれてる。
#ハンドラのポインタとWidgetのイベントとの結合は、
#シリアライズ(みたいなもの)されたデータとして保持されるんで、
#ソースには出てきません…ってのがDelphi流。
#C++Bはどうなのかよく知りません。Delphiと同じだっけ??
関数にハンドラが置かれてる、と言われると、
「関数内関数かな?」とか思っちゃうんですが、
C++Bって、そんなところまでC++を拡張してましたっけ?
#普通のC++にゃ関数内関数は無い、のでしたよね?
> でもまあ、イベントハンドラの中身に直接具体的なコードを書くか書かないかはRAD
> ツールというよりもプログラマの責任な気がします。
そりゃそうですね。
要はWidgetのイベントハンドラから
「本来の」処理をCallすればいいんで。
あと、イベントハンドラにせよ本来の処理にせよ、
それを何処に置くのが良いか、って問題もありますね。
そのForm(Window)に置くのか、ドメインモデルなオブジェクトの
メソッドにするのか、第三の場所に置くのか、色々ありえそうです。
> # 太古のThinkClassLibraryやMacAppの古いやつなんかはコントロールごとに
> # サブクラスを作らなくてはならなくてうんざりしました。
Delphiのメソッドポインタとか、
Rubyでお馴染み(?)の無名関数とか、
ああいう風に関数やメソッド(の参照)をFCOとして扱えて初めて、
GUIモノは快適にコーディングできるようになるんだなー、と
感じています。
#JSFみたいな方式は、
#GUI RADの方式が10年経ってやっとWebアプリ界にも来たんだな、
#という風に解釈してます俺。