DrDialogを使ってみよう(第2回)
さて今回は、ビルボードに画像を表示する方法から始めます。
rc=BASE.C107.text('***.bmp')
こんな感じで画像を指定します。
残念な事にビルボードはjpgを扱えませんのでbmpを使います。但し、DrDialogに別途DrDialog Control V0.1.5を追加すればDrDialogでもjpgを扱えるようになります。
次に複数の画像をDLLファイルにして、それを表示する方法です。
DLLファイルの作成は、DrDialogをインストールしたディレクトリにBMPTODLL.CMDというツールがありますので、これを使います。BMPTODLL.CMD BMIDR2.DLL BMIDR*.bmp
この様に作りたいDLLのファイル名と登録したい画像ファイル(例えばBMIDR1.bmpからBMIDR6.bmpと番号を付けます。)を指定して実行して下さい。
尚、DLLファイル名は、8文字(以下)+.DLLにして下さい。
作成したDLLファイルをリネームして8文字制限を超えた場合も、上記同様、画像を呼び出せませんので注意して下さい。(2016.8.27追加)BMIDR2用のBMPファイル集を上げましたので、DLLの作成のテストに使ったり画像の差し替えに使って下さい。
これで、絵が気に入らないという劣等感から少し解放されます(苦笑)。
では、これをビルボードに表示するには、次のようにします。rc=base.C107.text('BMIDR2:#'n) nは、数字をn=2の様に割り当てます。直接なら rc=base.C107.text('BMIDR2:#2') です。
これで画像を表示できます。で、今回は、これをプッシュボタンの命令として、前回の分に書き加えるわけです。
次に、メニューを追加しましょう。メニューがあると本格的なソフトのように見えますからね(笑)。下のようにToolsを開いて、下の赤丸で囲んだアイコンを選択します。そうすると下のようなツールが表示されます。けど、ソフト本体にはメニューが出ませんね。さあ、どうしましょう。
よく見てください。このツールのメニューが、実は、作っているソフトのメニューなんです。ここでメニューを登録しておくと、run-time monitorからプログラムを実行すればちゃんと表示されます。
で、これもプッシュボタンと一緒だと考えてもらえればいいです。
Action欄に処理したい命令を書き込んでいきます。
上の場合は、計算したBMI値を日付と体重と一緒にBMIDR2.txtってファイルに書き込む処理を書いているところです。
内容は、下記のとおり。i=DATE('O') /*日付の取得*/
call LINEOUT 'BMIDR2.txt',i' 'weight'kg BMI値'bmi /*データの書き込み*/
call LINEOUT 'BMIDR2.txt' /*BMIDR2.txtの解放*/ちなみにメニューにも色を割り当てられます。下のソースをBASE(ダイアログ)のinitに書き込みます。
oldcolor=BASE.color('M-',255 255 255) /*メニューの背景色*/
oldcolor=BASE.color('M+',0 0 0)/*メニューの文字色*/余談ですが、私がメニューやソフトに色を付けるのは、OS/2のソフトってCUIや灰色のウインドウばかりで、陰気臭いから。WPSのあか抜けていないのと合わさって、使っていると気が滅入ってくるんですよね(自分の配色のセンスは、どうかと思うけど)。
次は、実行ファイルを作ります。ソフトが完成しても、DrDialogのある環境でしか使えないっていうのじゃ駄目ですからね。
これは、ものすごく簡単。
デスクトップに登録されているDrDialogのフォルダーを開いて下さい。その中のREStoEXEってアイコンに保存したプログラムの***.RESファイルをドラッグ&ドロップするだけです。
ソースのあるディレクトリに、実行形式の***.exeが出来ます。
また、デスクトップには、***ってプログラムアイコンが登録されます。
さて、最後は、インストーラーを作ってみましょう。って言っても、私のソフトに同封しているINSTALL.CMDを開いて、下の赤字部分を書き換えて頂ければ終わりです。
あと、青字のPMは、PMアプリの意味ですので、CMDファイル等は、WINDOWABLEVIOとします。(省略)
APP_EXE = APP_PATH || "BMIDR2.EXE"Location = "<WP_DESKTOP>"
Title = "BMIドクター/2"
Class = "WPProgram"
objmode = "REPLACE"
SetupString = "NOPRINT=YES;"
SetupString = SetupString || "PROGTYPE=PM;"
SetupString = SetupString || "EXENAME=" || APP_EXE || ";"
SetupString = SetupString || "ICONFILE=" || APP_PATH || "BMIDR2.ICO;"
(省略)
これで、入力した数値を元にBMI値を計算し、計算結果と画像を表示するソフトとそのインストーラーができました。どうも、お疲れ様でした。
これに細かい修正や条件を付けていきますと、より完成度の高いソフトが出来るわけです。
取りあえず、これからどんな追加が出来るのか、よろしければ、私の完成品をダウンロードして比べてみて下さい。
あと、使ってみて気に入ったのなら感想を頂ければ幸いです。解説で足らないところや細かい処理方法は、DrDialogのフォルダーにあるinfファイルと「DrDialog解説 第1版 日本語」を参考にして下さい。
Rexxに関しては、サイエンス社「REXX自由自在(関孝則様著)」がまだ入手出来るようです(絶版)。関数が一覧になって出ていますので処理にどの関数を使ったらいいのかが探しやすく大変お勧めです。
また、私は、この本でプログラミングを覚えました。
OS/2でプログラミングを覚えた人って珍しいのでは?2回に分けて解説しましたが、少しは興味を持って頂けたでしょうか?
OS/2の雑誌上で片手落ちになっていたと思う、入力したデータの取得とその処理という流れを取り上げたつもりです。
ボタンを押すとHelloと表示するなんて解説されても興味無いでしょ?
その点「DrDialogをしゃぶろう」の解説は、制作意欲をかき立てる上に分かりやすかったです。
DrDialogを使ってソフトを作っていくと、コントロールの配置やサイズ、フォントの指定、リストボックスからデータの取得方法等多くの疑問が生じるはずです。
次回は、それらのFAQみたいなのが出来ればいいと思っています。
それから、(Rexx使いの卵)織さんの白龍BBSで質問すれば答えてもらえるかも知れません。また、私がDrDialogとタイトルを付けて質問している書き込みが複数ありますので質問する前に確認してみて下さい。(BBS提供サイトのサービスが終了してしまいました)