==================================================発行部数931======
     AutoCADカスタマイズ入門講座              No.19 1999/09/20
===================================================================
 AutoCADカスタマイズ入門講座のご購読ありがとうございます。先週はお
休みを頂き申し訳ございませんでした。
今回は先々週に引き続き、GUIについて学んでいきたいと思います。

--------------------------------------------------------------------
 1.GUIでみんな幸せ?
--------------------------------------------------------------------
 さて、先々週は簡単なダイアログボックスを表示するプログラムを紹介し
ましたが、皆さんはどの様に感じられましたか?。きっと、簡単に感じられ
た思います。プログラムにGUIを付けると操作性も向上するし、カッコイイ
し、他の人に作ったプログラムを紹介する時にもちょっと自慢できるかもし
れません。ですが...、やはりというかなんというか世の中の全てのもの
がそうである様に、GUIにも気を付けなければならない事がいくつかありま
す。また、GUIは使う人にやさしくても作る人には厳しいです(・・;)。

--------------------------------------------------------------------
 2.GUI作成での注意点
--------------------------------------------------------------------
 コマンドラインからユーザがプログラムに対し値などを指定する場合と
GUIを用いて値を指定する場合の大きな違いはどこにあると思いますか?。
一番大きな違いは、あるプログラムに複数の入力項目がある場合、コマンド
ラインからの指定では入力する項目の順番が決まっているのに対し、GUIで
の入力では入力項目の順番が決まらないという事です。
 例えば、次の様なジュースの自動販売機を模擬したプログラムを考えてく
ださい。このプログラムではジュースの種類と容量、本数を入力する事で金
額を表示します。さて、この自動販売機では、A、B、Cの3種類のジュースが
買える事にします。また、Aは容量が350mmlと500mml、Bは容量が500mmlと
1000mml、Cは容量が350mmlと1000mml選べる事とし、それぞれの値段はジュ
ースの種類によらず、350mmlが120円、500mmlが150円、1000mmlが300円とし
ます。
 さて、コマンドラインベースのプログラムを作ると例えば以下の様になる
と思います。

 ジュースの種類を入力してください(A->1/B->2/C->3):2
 容量を入力してください(500mml->1/1000mml->2):B
 本数を入力してください:2
 合計金額は 600円 です

上記プログラムの1行目で、もし1を選択したなら2行目で
 容量を入力してください(350mml->1/500mml->2):
3を選択したならば
 容量を入力してください(350mml->1/1000mml->2):
を表示しなければならない事に注意してください。

 今度はGUIの場合について考えてみましょう。今回は1つのダイアログボッ
クス上にジュースの種類、容量、本数を選択するリストボックスがそれぞれ
1つづつと、合計金額を表示するためのボタン及びテキストボックスがある
事とします。リストボックスとは、Windows付属のメモ帳でメニューから編集
-フォントを選ぶと表示されるダイアログボックスにあるフォント名がたく
さん並んでいるリスト状のものです。

 さて、上記ダイアログボックスを頭に思い浮かべてください。ダイアログ
ベースのプログラムでは、ユーザは種類 → 容量 → 本数の順番でしか
入力できませんでしたが、ダイアログボックスではユーザは自由な順番で各
項目を入力する事が可能です。例えば、コマンドラインベースのプログラム
と全く逆の順序で入力する事も可能です。始めに本数3を選択し、
容量500mmlを選択し、最後に種類はCを選択したとします。合計金額はいく
らでしょうか?。そう、Cには500mmlの容量は無いので計算できません。

 つまりこういう事です。コマンドラインベースのプログラムでは各項目の
入力順序はプログラム(プログラマ)が決定します。ユーザは決してこの順序
を変更する事は出来ません。しかし、GUIベースのプログラムでは入力順所
はユーザが決める事です。プログラム(プログラマ)はどの様なユーザの入力
にも対応しなければなりません。例えば、上記のエラーの例を避けるには本
数3→容量500mmlを選択された時点で、ジュースの種類はA、Bしか選択でき
ない様にするなどの方法が考えられます。この時Aを選択したとしても、こ
の後容量を1000mmlに変更したら...。というように、GUIのプログラムは
非常に厄介だという事が理解して頂けたでしょうか?。

--------------------------------------------------------------------
 3.まとめ
--------------------------------------------------------------------
 コマンドラインベースのプログラムよりもGUIのプログラムが大変だとい
う事はご理解して頂けたと思います。しかし、やはりGUIは便利ですし、よ
く考えて作ればそれほど恐れるものでもありません。次回は上記の例で示し
たGUIのプログラムを実際に作成し、もう少しGUIのプログラムを検証してみ
ましょう(ちょっとAutoLISP自体とは離れてしまいますが...)。

●バックナンバーは下記のURLで参照する事が出来ます。
http://www2u.biglobe.ne.jp/~Saturn5/alisp.htm
====================================================================
■登録/解除の方法
http://www2u.biglobe.ne.jp/~Saturn5/alisp.htm
「AutoCADカスタマイズ入門講座」は、上記URLよりいつでも
登録/解除可能です。
====================================================================
●広告の問い合わせ
広告のお問い合わせは以下のメールアドレスへお願いします。
wankichi@mba.nifty.ne.jp
====================================================================
■「AutoCADカスタマイズ入門講座」No.18
発行責任者 :わんきち(wankichi@mba.nifty.ne.jp)
発行システム:インターネットの本屋さん『まぐまぐ』
              http://www.mag2.com/
              マガジンID:0000011579
====================================================================
戻る