DrDialogを使ってみよう

(第1回)

 折角、只のプログラミング環境があるんですから使ってみましょう。
と言っても私は、プログラマでもないし、IT産業にも一切関係の無い文系事務職ですので、変なところやヘボイところは大目に見て下さい(ペコリ)。
 さて、今回何を作るかと言いますと、納豆騒動を受けてBMI(肥満度)を計算するソフトにします。
でも単に計算するならネット上に計算できるページが山ほどあるので、ちょっと絵とか付けて差別化してみましょう。
完成すると下のようになります(絵に関しての苦情は受け付けません。と言うか、可愛い絵を下さい)。

BMI測定2

 まず、BMIの計算をするバッチを作ってみます。
基本的な処理は、REXXでテストしてから、DrDialogに移植するということを繰り返していきます。
BMIは、体重(kg)÷身長(m) [身長の] 2乗で計算した数値です。22が理想体重、25以上が肥満となります。
(もし下のバッチを試すのなら各行の先頭に全角スペースが入っていますので削除して下さい。)

   /*肥満度(BMIDR.CMD)*/
   say'身長(cm)を入力してください'
   pull tall
   tall=tall/100 /*メートルに置き換える*/
   say'体重(kg)を入力してください'
   pull weight

   tall2=tall*tall /*身長の2乗。整数のべき乗は、tall2=tall**2でも可*/
   bmi=weight/tall2
   /*bmi=weight/(tall*tall) 左記のようにまとめられます。*/

   f=pos('.',bmi)+1 /*計算結果の数値から「.」の位置を取得。下一桁分プラス*/
   if f=1 then f=LENGTH(bmi) /*計算結果の数値に「.」が無い場合の処理*/
   bmi=substr(bmi,1,f) /*文字列先頭から小数点下一桁までを切り出す*/
   bmi2='BMI値は、'bmi'です。' /*解説文の追加*/
   say bmi2
   exit

これを実行すると次の様になります。

 では、DrDialogを起動してコントロールを配置していきます。

コントロールの配置

上の図にコントロールから複数行編集(赤丸で囲ったアイコン)を選んで張り付けたら、基本の出来上がりです。
左下にあるビルボードに画像を表示するのですが、起動毎にランダムにお医者さんを表示するようにすることで変化を付けようってのが本ソフトの要だったりします。

 テキストボックスやプッシュボタンのコメントや色等は、(init欄に書く以外にも)該当コントロールの上で右クリックすると出てくる下のポップアップメニューから指定する事が出来ます。
また、間違えてコントロールを置いてしまった場合には、Removeから削除できます。

ポップアップメニュー

 ここまで出来たら取りあえず保存しましょう。下では、LanguageとCreateにそれぞれチェックが1カ所入っていますね。Languageは、連携する言語関連の選択らしいですので、取りあえずCかC++にチェックが入っていればいいです。
次にCreateですが、これの意味はよく分かっておりません。Resourceにさえチェックが入っていれば問題ないようですが、手元にある「OS/2Warp4パーフェクトガイド」には、4つともチェックを入れておくよう書かれていますので全部に入れてから名前を付けて保存します

ソフトを保存する。

 
 次に配置元のダイアログをダブルクリックすると下記のツールが現れますので、コントロール等に名前を付けましょう。
と言っても、この程度のソフトなら起動した時に現れたダイアログに名前を付けるくらいで実は間に合います。
下の103は、身長の入力覧のことで「TField」と名付けていますが、プログラムする時には、C103で指定出来るからです。
あと、マウスポインタを持っていくとアンダーバーにID等が表示されますので、ID等が分からなくなった時に参照すればいいでしょう。

名前を付けます。

 次に106のプッシュボタンをダブルクリックしてClickと表示された欄に上のREXXソースを張り付け編集します。
こんな内容です(これも各行先頭の全角スペースは削除する)。

   tall=BASE.C103.text() /*入力された身長の値を取得*/
   weight=BASE.C104.text() /*入力された体重の値を取得*/
   tall=tall/100
   tall2=tall*tall
   bmi=weight/tall2
   f=pos('.',bmi)+1
   if f=1 then f=LENGTH(bmi)
   bmi=substr(bmi,1,f)
   bmi2='BMI値は、'bmi'です。'
   oldtext=BASE.C110.text(bmi2) /*計算結果を「複数行編集(MLE)」に表示*/

プッシュボタンに命令を入力

これで、メニューのToolsから下の赤丸で囲ったアイコン(以下、人型アイコン)を選択、又はF5キーを押して、run-time monitorを起動します。

run-time monitorを起動

run-time monitorが起動したら左下にある人型アイコンを押してソフトを起動して下さい。
数値を入力して実行すると、先のREXXと同じ結果が「複数行編集(MLE)」に表示されます。

プログラムの実行

 まだ、これから色々な機能を追加しないといけませんが、今回はこれまで。
かなり端折って説明していますが、流れが分かって頂ければ開発出来るようになるんじゃないでしょうか? 
 次回は、画像表示とメニューに関してとその他のヒント集みたいなのになるかも。


(第2回)
(第3回)

戻る