GUIプログラミングはガワを作ってから、ガワに対応する機能・処理を書いていくものですか?

GUIプログラミングの開発手順がわかりません。
ガワを全部作ってから、アクションを書いていきます?

このQ&Aに関連する最新のQ&A

A 回答 (6件)

> ガワを全部作ってから、アクションを書いていきます?



開発する規模にもよりますが機能単位で作成していきます。
いきなり作り出すんじゃなく、設計もある程度しますが
ガワを全部作らなくても、スタブ開発でいいと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。

設計   ←

機能単位 ↑

スタブ →↑

テスト用の何かしらの作業が別途必要そうなので、
スタブ開発は相当の慣れがいりそうです。

お礼日時:2009/05/13 23:41

設計書あっての話にですが、


WPFを利用した開発や、ASP.NETのように、GUI部分と処理は切り離しての開発が一般的になってきています。

要するに、画面の開発と処理や機能の開発は別担当者が同時に行うケースです。

そのため、どちらが先かは問題ではないと思います。

設計段階においては、
要求仕様を満たすための設計になるはずですので。

まずは機能面が設計され、それをユーザーが使いやすいように、画面が設計されるというのが一般的ではないでしょうか。


個人で使用するような、ツールレベルの場合。
VB.NETやVB6ではプロパティ欄にイベントを一覧で表示したり、イベントへのハンドリングを自動で記述してくれる機能が備わっています。
そのため、コントロールを配置した後に処理を記述することが多くなると思います。


共通して確かなのは、実現したい機能をはっきりさせてから作り出せばよい。
また、作成途中での仕様変更は極力避ける。
    • good
    • 0
この回答へのお礼

ありがとうございます。

確かにコンポーネントを配置しないとアクション処理はかけませんね。

お礼日時:2009/05/14 15:19

> プログラムの設計指針とはどういったものですか?



コーディングの基本的なキメとか、
クラス利用に関することとか、
開発中のジャンルに関することとか、
まあ、自分で決めていけばいいんじゃないでしょうか。

構造化プログラミングとかの本を基にされてもいいでしょう。

> 逃避癖があるので。

性格の問題は自己解決してください。
仕事をしない、ということであれば問題外ですね。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2009/05/14 15:18

プログラムの設計指針を持っていてそれから外れない


なら、その時その時で自由に手に付き易いところから
始めたらいいと思います。

GUI開発の利点は、やはり何と言っても想定した理論の
結果が直ぐに目に見えることです。
部分の確認をし、全体の見直しをし、また部分を確認
し、全体を見直す・・・これの繰り返しではないでし
ょうか。時間のかかるドキュメントも不要で、実に効
率がよく、恵まれた開発環境のように思います。
規模の大きな発想の人ほど有効かな、と感じます。

契約で中間提出物が要求されていると、その通りにす
るしかありませんが、結果だけならなんでもいいでし
ょう。
    • good
    • 0
この回答へのお礼

ありがとうございます。

プログラムの設計指針とはどういったものですか?

手の付け易いところからやるとあとあと時間が切羽詰って
自爆することがあります。逃避癖があるので。

お礼日時:2009/05/13 23:51

Borland C++ Builderでのプログラム作成時での話です。


最初にガワを作りボタンやパーツを配置して、次にイベント処理を記述していきます。

設計仕様書などなくて思いつくままに作るのであれば、ガワを全部(またはある程度)配置してからの方が完成品をイメージしやすいと思いますがいかがでしょう?
    • good
    • 0
この回答へのお礼

ありがとうございます。

私と同じやり方です。

お礼日時:2009/05/13 23:48

理想はまずプログラムの処理の流れ(フローチャート)を固めてから、外見を作って、プログラム作成というのが普通かと思いますよ。

私は先輩からそう教わりました。

でも、実際やるときは、外見から作成したほうが、イメージが沸きやすいですし、デバッグもしやすいので、いきなり外見を作る人のほうが多いですね。

私は簡単なプログラムは外見から作り、大規模なものやミスが許されないものは、フローチャートなどを先に作って、処理の流れを周りの人に確認してもらうという方法で、二つを使い分けていますよ。
    • good
    • 0
この回答へのお礼

ありがとうございます。
機能の洗い出しですか?必要項目を先に洗い出すわけですね。

フローチャート

ガワ

機能・処理

フローチャートですね。
GUIって分岐が多いと思いますが、独自のフローチャートなんでしょうね。
本どおりのフローチャートをいちいち書くとなると大変そうです。

お礼日時:2009/05/13 23:44

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qマクロでシートタブ色の変更

例えば、A1に数字が入ればシートタブが青色に、A1とA2に数字が入ればシートタブが黄色に、
A1とA2とA3に数字が入ればシートタブが赤色に、このようにするにはどのように記述したら良いでしょうか、よろしくお願いいたします。

Aベストアンサー

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range("A1:A3"), Target) Is Nothing Then
Worksheets("Sheet1").Tab.ColorIndex = -4142
If Range("A1") <> "" And Range("A2") <> "" And Range("A3") <> "" Then
Worksheets("Sheet1").Tab.ColorIndex = 3
ElseIf Range("A1") <> "" And Range("A2") <> "" Then
Worksheets("Sheet1").Tab.ColorIndex = 6
ElseIf Range("A1") <> "" Then
Worksheets("Sheet1").Tab.ColorIndex = 5
End If
End If
End Sub
これで良いのかな。
ーー
結構、初心者には勉強点があるように思う。
(1)シートイベントというものの勉強
(2)マクロの記録でタブの色を変えるコードを勉強する
また色を抹消するコードを勉強する。
(3)3つの場合の場合分け(条件の多いほうから聞く)
(4)A1:A3以外は素通りさせる方が良いかな(ntersectの利用。これはIFでORを使っても出来る)
数字かどうかのチェックを略している(IsNumericで、使って追加してください)
しかしこの質問のアイデアは珍奇で使えるのかな(今まで質問に出たこと無いような)。
Changeイベントを扱う難しさなどがある。上記コードでは多数例テストして無いので、出来るだけテストして見てください。

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range("A1:A3"), Target) Is Nothing Then
Worksheets("Sheet1").Tab.ColorIndex = -4142
If Range("A1") <> "" And Range("A2") <> "" And Range("A3") <> "" Then
Worksheets("Sheet1").Tab.ColorIndex = 3
ElseIf Range("A1") <> "" And Range("A2") <> "" Then
Worksheets("Sheet1").Tab.ColorIndex = 6
ElseIf Range("A1") <> "" Then
Worksheets("Sheet1").Tab.ColorIndex = 5
End If
End I...続きを読む

Q市販ソフトのようなガワを作りたい!

市販ソフトのようなガワを作りたい!

電卓ができました。
これにガワ付けしたいのですが、メタリック調にしたいです。

タイトルバーのWindows標準のブルーを画像?グラデーション?で銀色の光沢にしたいです。
ボタンもメタリックにしたいです。

これはどうやればいいですか?
フレームすべてを画像か色で張り替えたいです。

Aベストアンサー

windows標準の機能では実現できないかもしれません。
方法としては、タイトルバーなどを消す
BorderStyle=None
にしますと、タイトルバーなどは表示されなくなりますので、これと同等な機能(ウィンドウのサイズ変換機能、移動機能など)を自分で実装する必要があると思います。

QofficeXP Excel シートタブの色変更が出来るタイプと出来ないタイプ??? 

自宅も会社もofficeXPなんですが、少し違うところがあります。

エクセルで、自宅のはシートのタブが色変更できます。
シートタブ上で右クリックから色を選べます。

でも、会社のは同じXPなのに、右クリックからこの機能が出てこないのです。
これってバージョンによるものなんですか?

それとも、法人向けはこの色変更の機能を抜き取っているんですか?

どなたかわかるかたいますか?
よろしくお願いします。

Aベストアンサー

こんにちは

バージョンの違いがあるのでは、バージョンは?
検索していると2002からだとか(未確認ですが)
http://www.relief.jp/itnote/archives/002047.php

では。

Qプログラミングの学習の手順がわかりません

最近プログラミングの学習が行き詰っています。(Visual BasicとExcel VBAをやっています。いずれはC++も勉強するつもりです)

理由は、本のコードを丸写ししてばっかりで、いつになったら本なしでオリジナルのコードが書けるようになるんだと考えるようになったからです。

プログラミングをどういう手順で学習していけばよいですか?今は本を借りて真似をしているだけです。

もう一つ聞きたいのは、1つのプログラミング言語をマスターする上で覚えなくてはならないのはどんなことですか?あと、どのくらいの時間を費やして勉強すればよいですか?(まだ中2です)

Aベストアンサー

ま、一応私もプロっちゃ~プロだったりしますが、今でも本
というかマニュアルは必ず参照しながら書いてますので、
別に「見ないで書けるからえらい」って話じゃないです。

結局のところ、「やりたいこと」が、本に書いてあることから
離れないから、コードも本にあるもののママになっちゃうん
です。何か「本に書いてないこと」に挑戦すれば、「本」が
使えないので、自動的に「見ないで書く」ことになります。

これは、プロの仕事でも実は同じで、「どういう仕事をするか」
がはっきりしないと、コードは書きたくても書けないんです。

ですので、「どういう仕事をするか」を決めるのに、非常に
時間を掛けます。冗談抜きに、コードを書く時間の10倍以上
仕様決めに時間がかかることだってあるんです。

まず、あなたも「本に書いてないことでやりたいこと」をゆっくり
決めてみてください(それこそ、簡単なゲームをデザインして
仕様を決め、それからプログラミングをするとか)。

あと、プログラミングをするときに一番覚えなくてはならない
(というか、そういう感覚が必要な)のは、「構造化」という
発想です。

やらなければならない「仕事」を細かく分解して、関連付けて
行くということが「構造化」ですが、これは普段の生活では
やらないことなんですよね。でも、こればっかは、「慣れ」が
必要ですから、数多くコードを書くしか方法は無いです。

ま、一応私もプロっちゃ~プロだったりしますが、今でも本
というかマニュアルは必ず参照しながら書いてますので、
別に「見ないで書けるからえらい」って話じゃないです。

結局のところ、「やりたいこと」が、本に書いてあることから
離れないから、コードも本にあるもののママになっちゃうん
です。何か「本に書いてないこと」に挑戦すれば、「本」が
使えないので、自動的に「見ないで書く」ことになります。

これは、プロの仕事でも実は同じで、「どういう仕事をするか」
がはっきりしないと、コードは書き...続きを読む

Q[EXCELマクロ] シートタブに自動で色をつけるには?

シートが、1日~31日まであり、シート内は31枚とも全て同じで、
例えば、セルA1 に、日付(平成19年7月18日と表示)があったとき、
その日付を参照して、土曜日なら青色、日曜日なら赤色、というふうに
自動で31枚全てのタブの色を変更してくれるようにしたいのですが、
可能でしょうか?
また可能であれば、どのようにマクロを組めばいいでしょうか?

Excel2003を使用しています。
よろしくお願い致します。

Aベストアンサー

全シートのセルA1に日付が入っている場合でのサンプル。

Sub test()
  Dim sh As Worksheet
  Dim hi As Integer
For Each sh In Worksheets
  With sh
     Select Case Weekday(.Range("A1").Value, vbMonday)
         Case 6
         .Tab.ColorIndex = 41
         Case 7
         .Tab.ColorIndex = 3
         Case Else
         .Tab.ColorIndex = xlColorIndexNone
     End Select
 End With
Next
End Sub
日付以外が入っている場合は、修正が必要かもしれません。
ご参考程度として下さい。

QVBで内部処理のみ行って終了するプログラムを作るには?

VB6.0でコマンドラインからの引数をテキストファイルに出力して終了させるプログラムを作りたいのですが、フォームなど特に画面に表示することなく内部で処理をしたら勝手に終了させるにはどうしたらよいのでしょうか?
初心者の間の抜けた質問で申し訳ありませんが、どなたかアドバイスをお願いします。

Aベストアンサー

以下の手順でどうぞ。

(1)標準モジュールを追加します。
(2)Mainという名称で、サブプロシージャを作成し、ここに一連の処理を記述。
Public Sub Main()
'コマンドラインからの引数をテキストファイルに出力して終了させる処理を記述
End Sub
(3)メニューバー → プロジェクト → プロジェクトのプロパティ →
 全般タブ → スタートアップの設定 → 「Sub Main」を選択 → 「OKボタン」で確定
(4)Formは使用しないと言うことなので、解放する。
 (Loadしなければ良いだけなので、解放しなくても良いですが・・・)
(5)Exeを作成して完成です。

ちなみに、デバッグしたい時は、先ほどのプロジェクトのプロパティダイアログから、
実行可能ファイルの作成タブ → コマンドライン引数
に値を設定すれば、VBEから実行出来ます。

Q該当月のみにシートタブに自動で色

いつもお世話になります。
Win7 Excell2010 てす。

記入 顧客名簿 1 ~ 12  とシートがあります。

1)記入、顧客名簿 のシートには色付けしています。
2)1 ~ 12 は半角文字です。 (1月~12月を意味しています)

例えば、
A1 のセルに 8 と 今月は 8月ですから 8のシートタブに自動的色付けさせたいのですが可能でしょうか。
いろんなサイトで検索しましたが見つけることができませんてした。
VBAの記述と思いますがもし可能ならご指導いただけませんか。

Aベストアンサー

例として。

Dim sh As Worksheet
    For Each sh In Worksheets
        If sh.Name = Month(Now) Then
            sh.Tab.Color = 255    ' 赤
        Else
            sh.Tab.ColorIndex = xlNone
        End If
    Next

これを「開く時」イベントに書いておくと、
おそらくお望みの
・該当月の見出しは「赤」
・それ以外の見出しは「無色」
に出来ます。

VBAの使い方は別途お調べくださいませ。

QVB5.0で、フォーム内にスクロール機能を持ったエリアを作る

VB5.0で、フォーム内にスクロール機能を持ったエリア(なんて言えばいいかわかりません)
を作成したいんですが、できるでしょうか?
chartbuilderでグラフを表示させているんですが、フォーム内に表示する
グラフの数が多いためにスクロールさせたいんです。
どなたか方法を知りませんか???

Aベストアンサー

過去スレ

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=137422

QEXCELシートのタブの色

EXCELでシート(初期設定でsheet1とかsheet2とか)の色が変えられたと思ったんですけどやり方を忘れてしまいました。
教えてくださ~い!

Aベストアンサー

こんにちは。maruru01です。

一応、2000以前での方法を載せてあるページです。
裏技的なので、おすすめしませんが。

http://xcelfiles.homestead.com/Excel01_J.html#anchor_14133

参考URL:http://xcelfiles.homestead.com/Excel01_J.html#anchor_14133

QVBで電卓のメモリー機能はどのように作るのですか。

VBを始めて少ししか経っていないものです。
会社で「"実際の電卓"その物をVBで、5月一杯までに作りなさい」と言われました。本を買い何とか数字を文字列に変えたり、四則計算などは出来たのですが、
"平方根と、メモリー機能と、CE(直前の入力された値をキャンセルします)"が載っていなかったので、とても困っています。
どなたかわかる方、教えて頂けないでしょうか。よろしくお願いします。

Aベストアンサー

えっと、変数の使い方がまだ良く分かってらっしゃらないんじゃないかと推測します。

まず、電卓フォームのコードを表示して、
Dim curMemory as Currency
って書きます。
これで、このフォームのすべてのプロシージャから参照可能な、「curMemory」って言う名前の変数(通貨型)が使用可能になります。

んで、まずは「M+」を実装してみます。
フォーム上にボタン「cbMemoryPlus」と、数値を表示するためのテキストボックス「tb表示」が配置されているものとします。

まず、ボタンをダブルクリックで、Clickイベントのコードを表示させた後、
Sub cbMemoryPlus_Click()
  '「curMemory」に、(「現在の『curMemory』の値」+ 「テキストボックスの値」)をセットする
  curMemory = CurMemory + val(Me.tb表示)
End Sub

「M-」「MC」も同様(あえて書きません。)

「MR」は
Sub cbMemoryRecall_Click()
  'テキストボックスに「curMemory」の値をセットする
  Me.tb表示 = curMemory
End Sub
ですね。

「CE」も同様です。(あえて書きません。)

本を読むのは重要ですが、実際のプログラミングにおいては八割方は、どんな本にも載ってないようなコードを書かなくてはなりません。自分の持てる知識を総動員して、試行錯誤+創意工夫によって答えを導き出さなくてはならないのです。
五月末までにまだ暫くありますので、その間、ご自身がお書きになったコードを1行ずつ読み、そこで何が行われているのかをしっかりと理解しておくようにすれば、いいかもしれません。そうすれば今後似たような問題を出されたとしても、スラスラ解けるようになるのではないかと思います。

ってことで、がんばってください!


※「電卓」は初級コースの問題ですが、これが「関数電卓」になるといきなり上級コースになっちゃうんですよねぇ。
私も昔「電卓」に取り組んだことがありますが、これを関数電卓にアップグレードしようとして悩みぬいた挙句、挫折した記憶があります。(当時は後置記法なんて、微塵も知らんかったもんなぁ。)

えっと、変数の使い方がまだ良く分かってらっしゃらないんじゃないかと推測します。

まず、電卓フォームのコードを表示して、
Dim curMemory as Currency
って書きます。
これで、このフォームのすべてのプロシージャから参照可能な、「curMemory」って言う名前の変数(通貨型)が使用可能になります。

んで、まずは「M+」を実装してみます。
フォーム上にボタン「cbMemoryPlus」と、数値を表示するためのテキストボックス「tb表示」が配置されているものとします。

まず、ボタンをダブルクリックで、C...続きを読む


人気Q&Aランキング

おすすめ情報