DrDialogは、Warp V4に付属しているCD-ROMの内、J_Pocket2に含まれています。ここから任意の場所にインストールする事ができます。
まずCD-ROMをドライブにセットした後、CD-ROMのルートにあるinstall.cmdか、J_POCKETディレクトリにあるreadme.cmdを実行します。すると、J_Pocket2の紹介オンライン・ドキュメントがオープンします。ドキュメントからDrDialogを選択するとインストール方法を指示されるのでそれに従って下さい。
J_Pocketのドキュメントからは、インストール方法を指示されるだけで、自動ではインスト-ルしてくれませんが、インストール作業そのものは、単純にCD-ROM内のディレクトリ毎任意の場所にコピーし、コピ-先のDrDialogのディレクトリ内にあるinstall.cmdを実行するだけです。これでデスクトップにDrDialogフォルダが作成され、インスト-ル完了となります。インスト-ルされる内容は、以下の通りです。
- DrDialog本体
DrDialogのパッケージは、ダイアログをデザインするDrDialogと、REXX実行環境であるDrREXXで構成されます。- ツール
インストールするとDrDialog本体とDrDialogのREXX実行環境であるDrREXX以外に幾つかのツールのオブジェクトが登録されます。- サンプル
DrDialogの機能を使ったサンプルがSampleフォルダの中に入っています。サンプルは、DrDialogを使う上で重要なヒントとなるものです。また、DrDialogのディレクトリの直下にも幾つかのサンプルが存在します。なお、ツールとして登録されているプログラムの殆どもDrDialogを使ったプログラムです。SampleフォルダのRESファイルは何故かファイルタイプがテキストになっている為、ダブルクリックしただけでは実行できません。実行するためには、DrREXXのアイコンにドラッグ&ドロップしなければなりません。これは、マウスの右ボタンでファイルのプロパティを開いて、タイプの設定ページから現在のタイプをテキストからDrREXX.RESに変更する事によってダブルクリックで起動できるようになります。この方法以外にもDrREXXのプロパティを開いて、関連付けのページから現在の名前に*.RESを追加しても良いのですが、この方法だとDrREXXを使用しないファイルでも拡張子がRESであれば関連付けが行われてしまうので、コンパイラ等のDrDialog以外の環境でPMプログラムを行っている人には少々煩わしいと思います。DOS的には後者が馴染みですが、ここはOS/2の長所であるタイプによる分類を使った方が良いでしょう。
DrDialog DrDialog本体 DrRexx DrDialogのREXX実行環境 DrsAide DrRexxを使って書かれたDrDialog用のツールを統合する管理ツール RexxLib REXXプロシジャーのライブラリを管理するツール REVise ドラッグ&ドロップでDrRexxのRESファイルの一部分をカット&コピーするツール REView アウトライン形式でDrRexxのRESファイルを表示するツール REStoRXX DrRexxのRESファイルからREXXコードのソースリストを作成するツール REStoEXE DrRexxアプリケーションから標準のOS/2実行形式ファイルを作成するツール REStoPGM DrRexxアプリケーションからドラッグ&ドロップ可能なプログラム・オブジェクトを作成するツール DrDialog reference DrDialogのリファレンス・マニュアル DRSAIDE.RXL DrsAide用のREXXプロシジャーファイル DRSAIDET.RES DrsAideのテンプレート DRREXX.RES DrRexxアプリケーションのテンプレート DRDIALOG.RES DrDialogのテンプレート SAMPLE サンプル・プログラムのフォルダ
- File
New 新規作成 Open 既存ファイルを開く Save 現在のファイルを保管する save As 現在のファイルを別名で保管する
- Tools
Controls window コントロールの一覧表示用ウィンドウ。ここからコントロールを選択し、ダイアログに配置する。 DrRexx window コード入力用のDrREXXウィンドウ。コントロールの各イベント、およびグローバル・プロシジャーのコードを入力する。 Text window DrDialog環境のタイトルバー・テキスト等を変更するが、手持ちのWarpV4の環境では、 一旦設定してしまうとDrDialogを終了するまで再設定ができなくなってしまう。 Drop-down menu window ドロップダウン・メニューを作成する為のエディター・ウィンドウ Color window DrDialogのカラー設定を変更するウィンドウ。 Run-time window DrDialogのランタイム・モニタ用のウィンドウ。プログラムの実行開始や停止を指定する。デフォルトでのsay命令やエラーの出力先になっている。 Group window コントロールの位置や幅を調整する機能の一覧表示ウィンドウ。 The DrsAide tool Dr's Aideツールのメニュー・ウィンドウ。 Size window コントロールの位置とサイズの調整用ウィンドウ。 ID window コントロールのサイズやIDの表示を指定するウィンドウ。 Name window コントロールやグローバル・プロシジャーの名前一覧表示ウィンドウ。ここで選択を行うとDrREXXのコード編集画面にジャンプする。 Dialog select window 現在のプログラムに含まれているダイアログの一覧表示ウィンドウ。ここでの選択によってそれぞれのダイアログを最前面に移動する。NEWを選択すると新しいダイアログを生成する。 Grab tool 指定のコントロールをコピーするツール。 Dialog load tool 新しいRESファイルをオープンする。 Dialog save tool 現在のプログラムをセーブする。 View tool ツールの一覧表示ウィンドウ。 About tool 製品情報を表示する。 Help tool ヘルプファイルを開く。 Stop tool DrDialogを終了する。
- Controls
コントロールの一覧表示。ここからコントロールを選択し、ダイアログに配置する。
- Group
Left align controls 左端位置揃え Horizontally center controls 水平方向中央位置揃え Right align controls 右端位置揃え Top align controls 上端位置揃え Vertically center controls 垂直方向中央揃え Bottom align controls 下端位置揃え Equal width controls 等幅揃え Equal height controls 等高揃え Same style controls スタイル一致 Horizontally space controls 水平方向スペース調整 Vertically space controls 垂直方向スペース調整 Delete controls コントロールの削除 Hide controls コントロールの不可視指定 Show controls コントロールの可視指定
- Options
Options... DrDialog実行時のオプションを指定します。
DrDialogでは、一度に一個以上のダイアログの編集を行う事ができます。同時にスクリーン上にいくつかのダイアログを置くことができます。この内の一個のダイアログだけが編集対象となります。全てのDrDialogツールは、現在の編集ダイアログの上で操作します。
マウスの左右どちらかのボタンを非アクティブなダイアログの上でクリックする事によって、そのダイアログを編集できます。ダイアログ選択ツールを使って、全ての編集中のダイアログのリストから新しいダイアログを選択する事もできます。
- タブ・オーダー
DrDialogは、ダイアログに配置されたコントロールとコンテナ・コントロールに含まれているものの間で自動的にタブ・オーダーを決定します。コントロールの左下のコーナーが、コントロールのタブ・オーダーを決定するのに使われます。
- コンテナ・コントロールに含まれるコントロールのタブ・オーダーは、上から下、左から右です。
- コンテナ・コントロールに含まれていないコントロールでは、タブ・オーダーは、左から右、上から下です。
- コントロールの選択
全てのコントロールは、次の三つの状態のどれかになります:これらの三つの状態は、編集モード時のコントロール上で描かれるグラブ・ハンドルの表示によってDrDialog内に視覚的に示されます。
- 非アクティブ状態
- 選択状態
- アクティブ状態
ほとんどのDrDialogツールは、現在選択されているコントロールのセット上で動作します。選択は、マウスのボタン1を使って実行します。常に一個あるいは複数の選択されたコントロールがあり、選択されたコントロールの一つは、アクティブなステータスを付加されています。通常、アクティブなのは、選択行為を実施した時に選択された最初のコントロールです。
ボタン1でコントロールをダブルクリックすると、それがアクティブなコントロールとなり、コントロールに関連付けされたREXXイベントハンドラを見たり、編集したりできるようにDrRexxウィンドウが起動します。
- 一個のコントロールを選択する:
選択されるコントロール内のどこかでボタン1をクリックし、放します。以前選択されていた全てのコントロールは非アクティブ状態に戻り、クリックされたコントロールは、選択されてアクティブなコントロールになります。
- 幾つかのコントロールを選択する:
選択される全てのコントロール上でポインターをボタン1を押したままドラッグします。ボタン1を押すとすぐに、以前選択されていた全てのコントロールが、非アクティブ状態に戻ります。ポインターで触れた最初のコントロールがアクティブなコントロールとなり、それに続くコントロールは選択状態のコントロールになります。
- 現在のコントロールの選択を広げる:
マウスのボタン1を放したまま、以下のどちらかの方法で、選択されたコントロールのセットに加えられます。
- キーボードのCtrlかShiftキーを押します。そして上記の選択方法のどちらかで追加コントロールを選択します。(ボタン1でクリックするか、ドラッグ操作を実行する)
- 追加される最初の非アクティブなコントロールの左下のグラブハンドルの上にポインターを置きます。そしてボタン1でクリックするかドラッグ操作を行います。
- アクティブコントロールを変更する:
既に選択されているコントロールは、コントロールの左下のグラブ・ハンドルをボタン1でクリックする事によってアクティブにできます。以前アクティブだったコントロールは、選択状態に切り替わります。
- コントロールの移動
コントロールは、その上にポインターを置き、マウスのボタン2を使って新しい場所にコントロールをドラッグする事によってダイアログ内を移動させる事ができます。
もし移動されるコントロールが選択状態かアクティブな状態ならば、他の全ての選択状態/アクティブ状態のコントロールも移動します。この操作は、マウスのドラッグ中に現れるトラッキング・レクタングルのサイズによって視覚的に示されます。
また、移動されるコントロールの幾つかがコンテナ・コントロールであれば、そこに含まれるコントロールの全てが移動します。
- ダイアログ間のコントロールの移動
前のセクションの技法を使って、コントロールを現在の編集ダイアログ内で移動させる事ができます。もし望むなら、ダイアログ間でコントロールを移動する事が可能です。
これを行うには、まず、スクリーンに両方のダイアログが操作できるように起動されなければなりません。そして、移動するコントロールを含むダイアログは、現在の編集ダイアログです。それからキーボードのShiftキーを押し、前の方法を使って移動操作を実行します。これで移動されるコントロールは、ダイアログの何処にでもポイントできます。
Shiftキーを押すと現在の編集ダイアログ内の移動操作を維持したまま、その範囲を取り除き、スクリーン上の何処かにコントロールをドラッグするのを許可します。マウスのボタン2を放すと、DrDialogは編集ダイアログが直接ポインターの下にあるかどうかをチェックし、そのダイアログにコントロールを移動します。もしポインターが編集ダイアログ上になければ、DrDialogはエラーを示すビープを鳴らし、コントロールを移動しません。
- コントロールのコピー
コントロールは、コントロール上にポインターを置き、キーボードのCtrlキーを押し、マウスのボタン2を使って新しい場所にコントロールをドラッグする事によってコピーできます。
もし、コピーされるコントロールが選択状態かアクティブ状態ならば、他の全ての選択/アクティブ状態のコントロールもコピーされます。この操作は、マウスでドラッグ中に現れるトラッキング・レクタングルのサイズによって視覚的に示されます。
また、コピーされるコントロールの幾つかがコンテナ・コントロールならば、含まれる全てのコントロールもコピーされます。
- ダイアログ間のコントロールのコピー
前のセクションの方法を使って、コントロールを現在の編集ダイアログ内でコピーできます。また、ダイアログ間でコントロールをコピーする事も可能です。
これを行うには、まず、スクリーンに操作可能なように両方のダイアログが起動されなければなりません。そして、コピーされるコントロールを含むダイアログは、現在の編集ダイアログです。それから、キーボードのShiftキーを押し、前の方法でコピー操作を実行します。これでコピーされるコントロールは、ダイアログの何処にでもポイントできます。
Shiftキーを押すと、現在の編集ダイアログ内のコピー操作を維持したまま、その範囲を取り除き、スクリーン上の何処かにコントロールをドラッグするのを許可します。マウスのボタン2を放すと、DrDialogは編集ダイアログが直接ポインターの下にあるかどうかをチェックし、そのダイアログにコントロールをコピーします。もし、ポインターが編集ダイアログの上になければ、DrDialogはエラーを示すビープを鳴らし、コントロールをコピーしません。
- コントロールのサイズ変更
現在のアクティブなコントロールは、八個のグラブ・ハンドルの一つの上にマウス・ポインターを置くか、マウスのボタン2を使って好みの形にトラッキング・レクタングルをドラッグするかによってサイズ変更できます。グラブ・ハンドルの一つの上にマウスがあるという事は、リサイズ可能なコントロール方向を反映したマウス・ポインターの形状に変わる事で示されます。
もし、リサイズされるコントロールがコンテナ・コントロールならば、コンテナ自身がリサイズ操作によって影響されるだけです。しかしながら、もし、リサイズ操作の開始時にキーボードのCtrlキーが押されていれば、コンテナに含まれる全てのコントロールが比例してリサイズされます。
- コントロールのスタイル情報の編集
各々のコントロールは、コントロールの外観と動作に影響するスタイル情報と関連付けられています。 コントロールのスタイル情報は、コントロール上にマウスポインターがある間にボタン2をクリックした後表示されるポップアップ・メニューからStyle...オプションを選択する事で編集できます。
スタイル情報は、コントロールの外観にただちに反映されるポップアップ・ダイアログを使って変更できます。全ての変更が行われると、エンターキーを押すか、ダイアログの下端のOKボタンをクリックする事によって決定されます。他には、Cancelボタンをクリックする事によって以前のスタイル情報がリストアされます。どちらの場合も、ポップアップ・ダイアログはディスプレイから削除されます。
- コントロールのREXXコードの編集
各々のコントロールが任意に、コントロールで生じる様々なイベントの処理用のREXXコードと関連付けされています。コントロールのREXXコードは、DrRexxツール・ウィンドウを使って編集します。
DrDialogは、編集ダイアログのコントロールをダブルクリックする事によって、このツールにすばやく移行します。DrRexxツール・ウィンドウは、既に表示されているコントロール上でクリックされたイベントのセットを表示します。特定のイベントのREXXコードを選択するには、対応するページ・タブをクリックしてください。それによって、イベントに関連付けされたREXXコードが編集用に表示されます。
- ポップアップ・メニューを使ったコントロールの属性の編集
全てのコントロールの属性は、DrDialogの提供する様々なツールを使う事で編集できますが、DrDialogは、関連深いポップアップ・メニューを使ってほとんどのコントロールの属性をすばやく、簡単に修正できます。
ポップアップ・メニューを使うには、まず、変更される属性を持つコントロール上にポインターを置いて下さい。そして、マウスのボタン2をクリックします。
表示されるポップアップ・メニューのオプションは三つのカテゴリーに分類されます。ポップアップ・メニューのトップにあるグローバルオプションは、ポインターの置かれたコントロール固有のものではありません。
- グローバル
- コントロール
- グループ
Tools このサブメニューはDrDialogツール・ウィンドウのアイコンを含みます。アイコンを選択すると、該当するツール・ウィンドウを表示します。このサブメニューは、DrDialogメニュー・バーのツール・サブメニューに表示されるアイコンのセットと同じものを含みます。 Controls このサブメニューはDrDialogのコントロールのタイプのアイコンを含みます。アイコンを選択すると、ポップアップ・メニューが起動された時のポインターの位置に、該当するコントロールを作成します。このサブメニューは、DrDialogメニュー・バーのコントロール・サブメニューとコントロール・ウィンドウに表示されるアイコンのセットと同じものを含みます。
ポップアップ・メニューの中央のコントロールオプションは、ポップアップ・メニューが起動された時のポインターの位置のコントロールを操作します。コントロールオプションは、以下のモノです。
Remove このサブメニューは、二つのアイコンを含みます。片方のアイコンは、個別のコントロールを隠します。そのコントロールは、グループ・ウィンドウの表示ボタンか、ポップアップ・メニューオプションを使って、再び表示できます。もう片方のアイコンは、個別のコントロールを削除します。もし御別のコントロールがダイアログ自身ならば、ダイアログ全体を削除するかどうかを尋ねられます。 Events このサブメニューは、個別のコントロールに定義されている全てのDrRexxイベントをリストします。サブメニューからオプションを選択すると、既に表示されている個別のイベントのページを表すDrRexxウィンドウになります。 Hint 個別コントロールのヒント・テキストを変更できるポップアップダイアログを表示します。そのヒントテキストは、実行時に個別コントロール上にポインターがあれば、表示されます。 Text 個別コントロールのテキストを変更できるポップアップダイアログを表示します。 Style 個別コントロールのスタイルを変更できるポップアップダイアログを表示します。 Name 個別コントロールの名前を変更できるポップアップダイアログを表示します。 ID 個別コントロールのID番号を変更できるポップアップダイアログを表示します。 Color 個別コントロールの前景色と背景色を変更できるポップアップダイアログを表示します。 Font 個別コントロールのフォントを変更できるポップアップダイアログを表示します。 Adjust 個別コントロールの位置やサイズを1pel単位で変更できるポップアップダイアログを表示します。コントロールのサイズや位置は、ポップアップ・メニューが起動された時のポインターの位置によって調整されます。もし、ポインターがコントロールのグラブ・ハンドルの一つの上にあれば、コントロールのサイズが調整されます。もし、ポインターがコントロールのそれ以外の場所にあれば、コントロールの位置が調整されます。
ポップアップ・メニューのボタンのグループオプションは、現在選択状態のグループを操作します。もし、選択状態かアクティブなコントロールの上にポインターがあれば、それをイネーブルするだけです。グループオプションは、以下のモノがあります。
Group 整列、間隔、サイズ、非表示、表示、削除、そして選択状態のコントロールのグループのスタイル設定の為のアイコン・ボタンを含むポップアップ・ダイアログを表示します。これらは、グループ・ウィンドウで見つけられるものと同じボタンです。
ポップアップ・メニューのオプションを選択した結果現れるポップアップ・ダイアログは、他のDrDialogウィンドウにフォーカスが与えられるか、新しいポップアップ・メニューが要求されると自動的に削除されます。ダイアログのOK/Cancelボタンを明示的にクリックしても削除されます。
- 選択操作
Left arrow ポインターを左へ移動。 Right arrow ポインターを右へ移動。 Up arrow ポインターを上へ移動。 Down arrow ポインターを下へ移動。 Enter ポイントされたコントロールを選択。 Ctrl-Enter 現在の選択されたコントロールにポイントされたコントロールを追加。 Tab 現在のアクティブなコントロールとして同一コンテナ上の次のコントロールを選択する。新しく選択されたコントロールは、アクティブなコントロールとなり、以前選択されていたコントロールは、全て選択解除される。 Shift-Tab 現在のアクティブコントロールとして、同一コンテナ上の以前のコントロールを選択する。 Ctrl-Tab 選択された現在アクティブなコントロールとして同一コンテナ上の次のコントロールを追加し、それを新しいアクティブコントロールとする。 Ctrl-Shift-Tab 選択された現在アクティブなコントロールとして同一コンテナ上の以前のコントロールを追加し、それを新しいアクティブコントロールとする。 Home 現在のダイアログのフレームを選択する。 Page Up 現在アクティブなコントロールを含むコントロールを選択する。 Page Down 現在アクティブなコントロールに含まれる最初のコントロールを選択する。 Esc 現在選択されているコントロール全ての選択解除。
- 編集操作
Ctrl-LeftArrow ポイントされているコントロールを左へ移動。もし、コントロールが現在の選択範囲の一部分ならば、選択された全てのコントロールが移動します。もし、ポイントされているコントロールがダイアログのフレームならば、ダイアログ全体が移動します。 Ctrl-RightArrow ポイントされているコントロールを右へ移動。 Ctrl-UpArrow ポイントされているコントロールを上へ移動。 Ctrl-DownArrow ポイントされているコントロールを下へ移動。 Alt-LeftArrow 現在のアクティブコントロールと選択状態のコントロールを全て左揃えします。 Alt-RightArrow 現在のアクティブコントロールと選択状態のコントロールを全て右揃えします。 Alt-UpArrow 現在のアクティブコントロールと選択状態のコントロールを全て上端揃えします。 Alt-DownArrow 現在のアクティブコントロールと選択状態のコントロールを全て下端揃えします。 | 現在のアクティブコントロールと選択状態のコントロールを全て水平方向中央揃えします。 _(アンダースコア) 現在のアクティブコントロールと選択状態のコントロールを全て垂直方向中央揃えします。 H 現在のアクティブコントロールと選択状態のコントロールを全て水平方向に均等配置します。 V 現在のアクティブコントロールと選択状態のコントロールを全て垂直方向に均等配置します。 X 現在選択されているコントロール全てを現在のアクティブコントロールと同じ幅にします。 Y 現在選択されているコントロール全てを現在のアクティブコントロールと同じ高さにします。 \ 現在選択されているコントロール全てを現在のアクティブコントロールと同じスタイルにします。 = 現在選択されているコントロール全てを現在のアクティブコントロールと同じ高さ、幅、スタイルにします。 ? 編集されるコントロールに配置されるヒント・テキストを指定するポップアップ・ダイアログを表示します。 T 編集されるコントロールに配置されるテキストを指定するポップアップ・ダイアログを表示します。 N 編集されるコントロールに配置される名前を指定するポップアップ・ダイアログを表示します。 I 編集されるコントロールに配置されるID番号を指定するポップアップ・ダイアログを表示します。 C 編集されるコントロールに配置される前景色と背景色を指定するポップアップ・ダイアログを表示します。 F 編集されるコントロールに配置されるフォントを指定するポップアップ・ダイアログを表示します。 S 編集されるコントロールに配置されるスタイルを指定するポップアップ・ダイアログを表示します。 A 調整されるコントロールに配置される位置やサイズを指定するポップアップ・ダイアログを表示します。 G 現在選択されているコントロールグループで実行が許可されている操作のポップアップダイアログを表示します。 E ポイントされたコントロールに定義された全てのイベントのポップアップメニューを表示します。アイテムを選択すると、ポイントされたコントロールに該当するイベントハンドリングコードが表示されます。 Enter(テンキー) ポイントされたコントロールに定義された全てのイベントのポップアップメニューを表示します。アイテムを選択すると、ポイントされたコントロールに該当するイベントハンドリングコードが表示されます。 Space ポイントされたコントロールのコピーを作成し、それを選択します。コピーされたコントロールは、オリジナルのコントロールの上に現れます。 End DrDialogのポップアップメニューを表示します。 B 全てのDrDialogツールのポップアップメニューを表示します。メニューからアイテムを選択すると選択されたツールが起動します。 Ins 全てのコントロールのポップアップメニューを表示します。メニューからアイテムを選択するとポイントされた位置に選択タイプの新しいコントロールが挿入されます。 Ctrl-Ins ポイントされたコントロールとそれに含まれる全てのコントロールのコピーを作成します。コピーは、オリジナルのコントロールやダイアログの上に現れます。 Del 全ての選択されたコントロールを削除します。ポインターは、操作を実行する為に現在の選択範囲のコントロールの一つの上になければなりません。 - ポイントされたコントロールを隠します。 + 現在隠されているコントロールを全て見せる。
- ツール選択操作
Ctrl-F1 Tools windowを表示します。 Ctrl-F2 Controls windowを表示します。 Ctrl-F3 Group windowを表示します。 Ctrl-F4 Dialog select windowを表示します。 Ctrl-F5 Run-time windowを表示します。 Ctrl-F6 DrRexx windowを表示します。 Ctrl-F7 Menu windowを表示します。 Ctrl-F8 ID windowを表示します。 Ctrl-F9 Text windowを表示します。 Ctrl-F10 Color windowを表示します。 Ctrl-F11 Size windowを表示します。 Ctrl-F12 DrsAide windowを表示します。 F12 カレントの編集ダイアログを表示します。
- コントロールの作成
このセクションのキーのどれかが押された場合、指定タイプの新しいコントロールが現在のポインター位置に作成されます。基本的にコントロール名の大文字がコントロールの指定キーワードです。
Alt-A ペイント・コントロール(pAint) Alt-B ビルボード・コントロール(Billboard) Alt-C チェックボックス・コントロール(Check box) Alt-D コンボボックス・コントロール(combo-box) Alt-E シングルライン・エディット・コントロール(single-line Edit) Alt-F フレーム・コントロール(Frame) Alt-G グループボックス・コントロール(Group box) Alt-H キャンバス・コントロール(canvas) Alt-I アイコンボタン・コントロール(Icon button) Alt-J タートル・コントロール(turtle) Alt-K ビットマップ・コントロール(bitmap) Alt-L リストボックス・コントロール(List box) Alt-M マルチライン・エディット・コントロール(Multi-line edit) Alt-O コンテナ・コントロール(cOntainer) Alt-P プッシュボタン・コントロール(Push button) Alt-Q マーキー・コントロール(marQuee) Alt-R ラジオボタン・コントロール(Radio button) Alt-S スピンボタン・コントロール(Spin button) Alt-T テキスト・コントロール(Text) Alt-U ユーザー定義コントロール(User defined) Alt-V バリューセット・コントロール(Value set) Alt-W バッグボタン・コントロール(bagbutton) Alt-X 水平スクロールバー・コントロール(horizontal scroll bar) Alt-Y 垂直スクロールバー・コントロール(vertical scroll bar) Alt-Z スライダー・コントロール(slider) Alt-[ レクタングル・コントロール(rectangle)
- その他
F2 現在のダイアログ・セットをロードされたファイルにセーブします。 Alt-F2 現在のダイアログ・セットをファイル・プロンプト・ダイアログで選択したファイルにセーブします。 F3 現存するダイアログ・セットをファイル・プロンプト・ダイアログで選択したファイルからエディターにロードします。 F5 DrDialogの制御下で現在のDrRexxアプリケーションを実行します。Run-time windowが現れ、アプリケーションが自動的に実行を始めます。 q DrDialogを中止(終了)します。 / 現在の表示モードを編集モードと閲覧モードの間で切換えます。
DrDialogリソース・ファイルをDrRexxアプリケーションにするには、DrRexxツール・ウィンドウを使用します。このウィンドウは、DrDialogのToolsメニューからDrRexxアイコン・ボタンをクリックする事によって表示されます。
このDrRexxツール・ウィンドウは、次の三つのセクションから成るノートブックとして構成されています。
- イベント・セクション
DrRexxノートブックのイベント・セクションは、DrRexxアプリケーション内の各々のコントロールの発生する、様々なイベントをハンドルするREXXルーチンを定義できます。
イベント・セクションのカバー・ページは、name toolと呼ばれ、編集中のダイアログに定義されているコントロールの全てをリスト表示します。リストのエントリをダブルクリックすると、選択されたコントロールのイベント・ハンドルを定義するノートブックのサブ・セクションに切り替わります。ここから任意のイベントに対してREXXコードを定義します。現在選択されているコントロールの名前とID番号は、トップページの該当する入力フィールドを編集し、エンターキーを押す事によって変更できます。
DrRexxノートブックのイベントのサブ・セクションは、現在アクティブなコントロールに定義されている各々のイベントのページを持っています。イベントのタブを選択すれば、編集コントロールのイベントに関連付けられたREXXコードを表示でき、それを編集できます。また、編集中のダイアログ上で、コントロールのポップアップ・メニューのEventsサブメニューから目的のイベント・ネームを選択する事によって素早く特定のページを開く事もできます。
イベントに定義するハンドラのタイプは、コントロール別イベントハンドラとクラスイベントハンドラの二つがあり、必要に応じて使い分けます。
コントロール別イベントハンドラは、特定のコントロールの特定のイベントのハンドラです。(特定のプッシュボタンがクリックされた時等に実行されます)これは、通常タイプのイベント・ハンドラです。
それに対して、クラスイベントハンドラは、コントロールのクラス全体のイベントのハンドラです。(そのダイアログのどのプッシュボタンがクリックされた場合でも実行されます)
コントロールでイベントが発生すると、DrRexxランタイム環境は、コントロール別、クラス、ダイアログのイベントハンドラの順に実行しようとし、どれかのイベントハンドラを実行すると、次のイベント待ちになります。
現在編集されているハンドラのタイプは、イベントページの右下コーナーにあるスピンボタンの表示で決定されます。もし、スピンボタンがControlを選択していれば、コントロールの特定のハンドラが編集されています。もし、スピンボタンがClassを選択していれば、クラスハンドラが編集されています。
DrRexxノートブックの各イベントのページ・タブは、特定文字によって、ハンドラのタイプを示しています。もし、イベント名に'*'が付加されていれば、そのイベントにはコントロール別イベントハンドラがハンドルされています。イベント名に'-'が付加されていれば、そのイベントにはクラス・イベント・ハンドラがハンドルされています。もし、ページタブに'*'も'-'もない場合は、イベント・ハンドラが定義されているコントロールやクラス・イベント・ハンドラはありません。
- グローバル・プロシジャー・セクション
DrRexxノートブックのグローバル・プロシジャー・セクションは、DrRexxアプリケーションの各部分からコールされるREXXプロシジャーを定義する事ができます。このプロシジャーは、グローバルなもので、現在のリソース・ファイル内のどのダイアログからでもコールできます。
グローバル・プロシジャー・セクションのカバー・ページは、現在定義されている全てのプロシジャーのリストを表示します。リストのエントリをダブルクリックすると、プロシジャーを定義し、編集する事のできるノートブックのページに切り替わります。
新しいプロシジャーは、ページの上端の入力フィールドに名前をタイプし、エンターキーを押す事によって追加されます。その名前での新しい空のページは、ノートブックのセクションに追加され、新しいプロシジャーのコードを入力できるように自動的に選択されます。逆に削除する場合は、ページ内の全てのコードを削除します。プロシジャーが定義されたページは、他のページが選択されると、ノートブックから自動的に削除されます。
グローバル・プロシジャー・セクションは、現在定義されている全グローバル・プロシジャーのページを持っています。プロシジャーのタブを選択すると、REXXコードを表示し、編集する事ができます。
- ノートパッド・セクション
DrRexxノートブックのノートパッドセクションは、REXXコードの断片やちょっとした情報を保持する事ができます。例えば、多くのREXXプログラムは、標準的なRexxUtilのファンクションをを使って作られますが、プログラムの何処かで以下のREXXコードを含めなければなりません。DrRexxノートパッドを使えば、このコードの断片に名前を割り当てて、DrRexxアプリケーションに素早く付加する事が可能になります。CALL RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs' CALL SysLoadFuncs
ノートパッドセクションのカバー・ページは、現在割り当て済みの全ての名前のリストを表示します。リストのエントリをダブルクリックすると、メモの定義されたノートブックページに切り替わり、それを編集する事ができます。
新しいメモは、ページの上端の入力フィールドに名前をタイプし、エンターキーを押す事によって追加されます。入力された名前の新しい空のページは、セクションに追加され、メモのテキストが入力できるように自動的に選択されます。
メモは、ページ内の全てのテキストを削除する事によって削除されます。メモの定義されたページは、他のページが選択されると、自動的にノートブックから削除されます。
DrRexxノートブックのページで編集されるテキストは、全て同一の編集機能の元におかれます。それによって、以下のような機能を使う事が出来ます。
- 編集ページの下には、Find ->とラベルの付いたボタンと入力フィールドがあります。この入力フィールドに文字列を入力し、Findボタンをクリックする事によって、編集中のテキスト内から指定文字列を検索する事ができます。検索は常に現在のカーソル位置から開始します。
- 入力フィールドのもう一方にある<- Switchとラベルの付いたボタンは、OS/2プレゼンテーション・マネージャーのウィンドウ・リストに現在リストされているアプリケーションを切り替える事ができます。ウィンドウ・リストに現れるアプリケーションの名前の最初の数文字を入力フィールドに入力して<- Switchボタンをクリックすると、アプリケーションが実行中ならば、自動的に前面に持って来られます。
- 編集コントロールの左側には、以下の機能を持つボタンの列があります。
a.現在選択されているテキストを削除し、クリップボードにコピーする。
b.現在選択されているテキストを削除せずに、クリップボードにコピーする。
c.現在選択されているテキストをクリップボードの内容に置き換える。
d.編集中のテキストを全てセーブする。
DrDialogでは、ユーザーが通常使用しているエディターを使ってアプリケーションのREXXコードを編集する事もできます。この場合、編集後のREXXコードは、自動的にDrRexxアプリケーションにインポートされます。
DrDialogのこの機能を使うには、DrRexxアプリケーションの名前がdrive:\path\filename.RESならば、REXXコードを含むファイルの名前をdrive:\path\filename.REXにします。
DrDialogがセーブやRESファイルの実行を行う時には、該当するREXファイルの存在をチェックします。もし、ファイルがあれば、その内容をスペシャル・リソース・タイプとしてRESファイルに自動的に付加します。アプリケーションの実行時には、このスペシャル・リソースは、DrRexxが作成するREXXプログラムの最後に追加されます。
DrRexxアプリケーションの一部が外部のREXファイルに格納されているならば、DrRexxエディターを使ってREXコード内のイベントハンドラの場所を指定しなければなりません。DrDialogは、以下のようにこのリンク操作を補助します。
DrRexxノートブックのイベント・セクション内のマルチライン・エディット・コントロールが空の状態で、コピーボタンをクリックすると、DrDialogは、イベントハンドラを呼ぶ為のテキストを挿入します。(CALL dialog.control.event)。さらに、REXファイル用のラベル(dialog.control.event:)をシステムのクリップボードにコピーします。エディターをユーザ自身のものに切換え、REXファイルにDrDialogが作成したラベルをペーストします。そのラベルに対してイベントをハンドルする為に必要なREXXコードをユーザー自身が追加する事によって完成です。
但し、REXXコードをコールするのに、必ずしもこの機能を使う必要はありません。ルーチンの名前は、ユーザーが自由に選択できます。
外部ファイルにREXXコードを格納する際の注意点は以下の通りです。
- REXXコードは、RESファイルと同じ名前で拡張子REXとしてファイルに格納しなければなりません。
- REXコードは、DrDialogのセーブ時か、RESファイルの実行時に自動的に付加されますが、その対象は、ディスクにセーブされたモノです。そのため、DrDialogでRESファイルをセーブや実行する前にユーザー自身のエディターでREXファイルをセーブしなければなりません。
- RETURNかSIGNAL RETURNステートメントでREXファイルのイベントハンドラルーチンを終了する必要があります。
- DrDialogでRESファイルをセーブするとREXファイルは、RESファイルの一部となります。そのため、他のユーザーにアプリケーションを配布する場合にそれを付加する必要はありません。
REXX環境では変数の宣言は必要ありません。特に型の指定もありません。しかし、その為に注意しなければならない事があります。それは、数字を扱うつもりで用意してあっても代入が行われていないと文字列として扱われてしまうという事です。以下に例を示します。
/* 変数Xを表示(sayは表示命令) */
say X /* 1回目 (代入前) */
X = 1
say X /* 2回目 (代入後) */
drop X
say X /* 3回目 (代入取り消し後) */
この例では、1回目での表示結果は"X"、2回目の表示結果は"1"、3回目の表示結果は"X"となります。
通常は全ての変数はグローバルですが、procedureキーワードを使ったプロシジャー内はローカル環境として扱われます。
REXXではステムと呼ばれる配列を使用します。これは変数名に続けてピリオドを書き、それに続けて配列の添え字を指定するという書式のものですが、他言語の配列と異なり、添え字は数字でも文字でも良く、内容の型も決まっていません。
例
Array.0 = 3
Array.1 = 1
Arrey.2 = "A"
(通常0には配列の数をセットする)
Number.one = 1
Number.two = 2
Number.three = "A"
CALL 定義したプロシジャーを呼び出す。 PROCEDURE これを指定する事で関数内の変数がローカルとして扱われる。共通変数を使用したい場合はEXPOSEを使用する。 EXPOSE これに続けて共通変数を列記するとPROCEDURE指定をしていてもプロシジャーの内外で共通の変数として扱われる。 ARG 関数に引数を与えたい場合に使用する。 RETURN PROCEDUREを指定した場合等にプロシジャーのリターン値を設定したい場合に使用する。DrDialogでは、プログラムを終了させずにプロシジャーから戻るには、SIGNAL RETURNを使用する。 SIGNAL 例外ハンドラの使用を定義する。
しかし、この記述方法では、ダイアログとコントロールは固定のモノとなり、処理の内容によってコントロールを切り替える事が出来ません。CALL dialog.control.function arg rc = dialog.control.function(arg)
ウィンドウ・ファンクションにForキーワードを付けて、引数としてダイアログ名とコントロール名を与えます。これにより、コントロールを選択的に使用する事ができます。rc = functionFor( 'dialog', 'control', arg )