Index: [Article Count Order] [Thread]

Date:  Tue, 14 Dec 2004 00:36:22 +0900
From:  Nakamura Akifumi <********@*****.**.**>
Subject:  [oosquare-ml:04438] Re: GUI  操作のためにだらだら長い  Main 
To:  ***********@***.***.*******.**.**
Message-Id:  <***********.****.********@*****.**.**>
In-Reply-To:  <************************************@***.***>
References:  <**************.****.***********@***.*****.***> <************************************@***.***>
X-Mail-Count: 04438


お世話になっております。 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アプリ界にも来たんだな、
#という風に解釈してます俺。