あまりにも素人な質問で恐縮なのですが、MS-Accessとか市販されているアプリケーションに見られるようなGUIってどうやって作るのでしょうか?
プログラミングの入門書では、フォームにテキストボックス、コンボボックス、グリッドなどをペタペタ貼るイメージしか解りません。
市販のツールのようにキャンバスの中に子ウィンドウを表示してグリグリしたり線を引いたりとかはどうすれば良いのでしょうか?
とっかかりだけでも教えて頂けると助かります。
因みに、今から覚えたい言語としてはRIA系を考えています。
ですので我侭を言って申し訳ないのですが、出来ればJavaFX、AIR、WPFあたりで回答を頂けると嬉しいです。
申し訳ありませんが宜しくお願いします。
以下、知りたいGUIのイメージです。
<MS-Access>
http://www.novixys.com/Exult/Relationships_1021_01-sm.jpg
http://justinsomnia.org/images/microsoft-access-qbe.png
<ETL>
http://www.sas.com/offices/asiapacific/japan/images/softw...
http://www.mitsubishielectric.co.jp/business/itsolution/c...
http://www.ctc-g.co.jp/~product/ctc-web/images/option/ima...
http://www.appsinsight.net/wp-content/uploads/2009/03/odi...
<その他>
http://www.techworld.jp/images/c/25125_tms.jpg
http://movion.net/wp-content/uploads/2008/04/clay01.jpg
コメント

- 2:ゲスト
- 2009/06/18 11:42
>
と書いていらっしゃるので、おそらく
どのようなツールを作りたいかにもよりますが、
基本的には「フォームに部品を配置し、その部品の動作をプログラムしていく」という基本操作を繰り返してツールを作成していきます。
入門書では、その基本操作が書かれています。
たとえば
どんな部品があるか?を良く知り、それを組み合わせることでおおよそのツールはできると思います。
ただ、市販のツール並みに複雑で高速なものを作ろうとすると、
参考になれば幸いです。

- 3:hi-air
- 2009/06/18 22:16
>
そうでしょうか?
というか、どうしたら良いか解りません。
>
C#やJAVAでも良いので、大まかな手順が解る資料がどこかに無いものでしょうか?
例に挙げた市販のツールはどれも複雑で高機能ですが、別にそこまで複雑なものを作ろうとしている訳ではありません。
標準コントロールでは作れそうに無いGUIを作るにはどうしたら良いかを知りたいんです。
作りたいものが漠然としているようなので、要件を絞ってみます。
取り敢えず、以下のようなことをやりたいです。
・アイコンをドラッグしてキャンバスに追加
・キャンバスの中でアイコンからアイコンへマウス操作で線を描画
・キャンバスの中でアイコンをドラッグ可能(線も追随する)
・キャンバスの中でアイコンや線を右クリックすることでメニュー表示
如何でしょうか?

- 4:ゲスト (TIGER)
- 2009/06/19 11:29
自分、Delphiしか使えないのでDelphiでの開発経験になりますけど、
基本的には「全部描画する」しかないと思います。
たとえばアイコンをドラッグするというならば
・キャンバス内でマウスが左ボタンダウンしたら、ダウンしたマウス座標を
スクロール等考慮した絶対位置に換算
・そこにドラッグ可能なオブジェクトが配置されていると、内部の
リストにあれば、該当オブジェクトのドラッグ状態をたてる
またオブジェクトとマウスの相対位置を保存する
・キャンバス内でマウスが移動したときに左ボタンがダウンしたまま
だったら、ドラッグシンボルを該当位置に表示する
・キャンバス内でマウスの左ボタンが離された時、なんらかの
オブジェクトにドラック中のマークがされていたら、マウス位置
からドラッグされているオブジェクトの相対位置を設定する
・なんらかの変動があった祭には、キャンバスの再描画を行う
その時、内部に保存してある各オブジェクトの属性およびZインデックス
に従い、表示可能範囲をクロップして、基本描画命令
(直線・円弧・矩形・ブロックコピー等)で描画する
・・・といった一連の作業をすべてコーディングすることで可能です。
そういうのを省略するためにフォームとかツールキットがあるんですけど
こだわったGUIのアプリを作ろうと思ったら普通に必要なことですよ。
#その気になればVISIO的なことだってできます(w
何か便利なツールがあればいいですが、大抵どこか自分のやりたい
ことには合わないもんなので、結局書くことになってしまうと
思います。もっとも、RIA系ということになると、もうちょっと楽だとは
思いますけど。

- 5:hi-air
- 2009/06/21 00:17
TIGERさん、コメントありがとうございます。
確かに座標を指定してフォームの中に丸や三角の図形を描画するサンプルを昔Windowsプログラミングの解説書か何かで見たことがあります。(言語はC++でMFCを使っていたと思います。)
確かに、既存の市販アプリは「その延長線上で全て描画されているんだろうな」という印象は持っていましたが、今でもそうなのでしょうか?
仕事としてチームで開発するならまだしも、個人的に趣味でちょっとしたツールを作るのには敷居が高すぎます。もっと簡易的にできる方法は無いものでしょうか?
次のことぐらいはノンコーディングで実現して欲しいです。
・オブジェクトの位置をマウスで変更
・クリックをするとハンドルを表示して選択状態であることを視覚的にフィードバック
・ドラッグをすると薄い影を表示してドラッグ中であることを視覚的にフィードバック
いろいろGoogleで調べているのですが、EclipseのGEF(Graphical
ただ、これはEclipseのプラグインを開発する時に使用するものの様なので、Web上で実現しようと思っている私の状況には合いません。
実は最初はDHTMLを考えました。ブラウザの中でオブジェクトをマウスでドラッグして位置を変えるのは簡単に出来ました。でも、この方向で進めると結局はAjaxになってしまいそうなので諦めました。(私にはAjaxは複雑で煩雑過ぎます。)
Ajaxに変わるRIA系の言語が流行っているとのことなので、そっち系で何かうまい手法が無いかと思い質問させて頂いている次第です。
GEFを見つけたので「Graphical
なので、WPFでGEFと同じような開発が出来ないか探してみようと思っています。
明日、街の大きな本屋に行って調べて見ます。
どなたか情報をお持ちであればお願いします。

- 6:ゲスト (TIGER)
- 2009/06/21 15:38
> 次のことぐらいはノンコーディングで実現して欲しいです。
そこで述べてること「だけ」ならば、普通にドラッグドロップ操作です。
大概の開発環境で、最小コーディングで行けると思いますよ。
GDI+に対応してれば半透明描画も簡単でしょう。
でも、描画だけできても仕方ないですよね?

- 7:hi-air
- 2009/06/21 17:17
TIGERさん、再びコメントありがとうございます。
>
仰る通りです。「描画だけ」ではアプリケーションにならないですものね。
でも、その「描画だけ」の部分でも手順を解説した資料やサンプルに辿り着けなくて苦労しています。
また、「・・・といった一連の作業をすべてコーディングすることで」と仰られていたので、「描画だけ」の部分に大量のコーディングが必要なように感じてしまったのでああいうコメントになってしまいまいした。
>
>
そうなんですか。その辺を学習したいのですが、何か良い資料はありませんでしょうか?
私が引き合いに出したEclipseのGEFであれば、Webでも書籍でも情報がありそうです。
・http://codezine.jp/article/detail/40
・http://www13.plala.or.jp/observe/index.html#gef
・http://book.mycom.co.jp/book/978-4-8399-2972-5/978-4-8399...
ですが、他の処理系で同様の機能(フレームワーク?)を見つけることが出来ません。
PS:因みに、今日は雨が降っていたので本屋には行けていません。

- 8:ゲスト (TIGER)
- 2009/06/22 16:57
たとえば、VBでの例になりますが、こんなサイトが参考になりました。
http://homepage1.nifty.com/rucio/main/technique/tec16_Dra...
リストの要素とかグリッドのセルとか、ファイルの読み込みとかでは今でもよく使われる
ドラッグ&ドロップですが、最近のGUIの流行にはあまり合ってないようで、このごろ
よほど特殊な用途のアプリでないと、見なくなってきたなぁという感はあります。
Windows3.1~95くらいの時代だと、これができること=GUIだ!みたいなノリでしたが。

- 9:hi-air
- 2009/06/30 04:46
TIGERさん、再びコメントありがとうございます。また、返信が遅れて申し訳ありません。
ちょっと、仕事の方が立込んできて…。今から仮眠して翌朝9時に出社です。(T^T)
教えて頂いたコードを動かしてからコメントしようと思っていたのですが、VBのセットアップも終わってません。orz
Visual
「Visual
あと、本屋に行って「Silverlight入門」という本を買ってみたので、こちらも参考にしてみます。
本音を言うと、もう少し揃っているフレームワークがあることを期待していたのですが、勉強の意味で地道に自分でコーディングしてみます。
ありがとうございました。
前へ 1 次へ![]()








沈んできたので自己コメントです。
済みません。どなたかヒントだけでも…。
宜しくお願いします。