過去の桐井戸端BBS (桐ver.9)
20248 cmdで処理を分岐させるためのメニューを作りたい 沼田政治 2003/05/08-12:18
桐V9を初めて使おうと思っています。
今までは桐V5ばかりを使っていましたので、その時の"癖"が抜けずに困っています。
初歩的なことだとは思いますが、過去ログでも見つけだせなかったのでよろしくお願いします。

一括処理で処理を分岐させるためのメニュー作成から始めたいと思っています。
V5世代の[メニュー]コマンドは「一括実行ウィンドウ有りの時有効」とありますから、
いわゆる昔のDOSウィンドウの時には使えるということだと理解しています。
となると、一般的にV9ではどのようにメニューを作るのでしょうか。
メニュー用のフォームを作り、そこにコマンドボタンを置き、オブジェクトの機能を「一括処理に戻る」とする、
という作業になるのではないかと思っています。

この場合、一括処理で戻ってくるパラメーターはオブジェクト名の文字列だと思いますから、
V5のように数字キー1つで選択することができません。
マウスでコマンドボタンをクリックするか、矢印キーでフォーカスを移動するしかないように思いますが、
それで正しいのでしょうか。
また、V5では[ESC]キーの入力などを検知することができていましたが、V9では出来ないのでしょうか。
20257 Re:cmdで処理を分岐させるためメニューを作りたい KH 2003/05/08-21:04
記事番号20248へのコメント
>となると、一般的にV9ではどのようにメニューを作るのでしょうか。
>メニュー用のフォームを作り、そこにコマンドボタンを置き、オブジェクトの機能
>を「一括処理に戻る」とする、という作業になるのではないかと思っています。
>この場合、一括処理で戻ってくるパラメーターはオブジェクト名の文字列だと思い
>ますから、V5のように数字キー1つで選択することができません。マウスでコマン
>ドボタンをクリックするか、矢印キーでフォーカスを移動するしかないように思い
>ますが、それで正しいのでしょうか。

通常、ウィンドウ作成・繰り返し・ウィンドウ会話コマンドで処理した場合その通りですが、
イベントを使用すると、1文字で選択実行は可能のようです。過去ログで調べて見てください。

>また、V5では[ESC]キーの入力などを検知することができていましたが、V9では出
>来ないのでしょうか。

 ESCの検知は出来ます。ウィンドウ会話コマンドの中(メニュー画面)でもESCキーを取得して終了させるなど出来ます。
勿論コマンドボタンで終了をすることも出来ます。

20263 桐でメニューの作り方 佐田 守弘 2003/05/08-22:18
記事番号20248へのコメント
沼田政治さん
桐でメニューを作るには、いくつかの方法があります。
この件は何回も書いておりますので、過去ログでたくさん見つけられるはずですが、
改めて簡単に書きます。

@一括処理で動かす方法
イベントが使えなかった桐ver.7時代の方法です。コマンドボタンに「一括処理に戻る」
を設定しておけば、コマンドボタンのオブジェクト名を拾って一括処理に戻ります。
従って、ケースコマンドでオブジェクト名に応じて分岐させれば目的が達せられます。

Aイベントで処理する方法
この方法が現在の桐で標準的に推奨されている方法です。
但し、桐ver.5の一括処理とは考え方が大きく変わります。
一括処理からフォームを開くのではなく、単にメニューのフォームを直接開きます。
メニューのコマンドボタンから次の処理は、次の様にして行います。

a)機能名で実行する
「開く」機能を使って、次に開きたいフォームを開いたり、一括処理ファイルを開きます。

b)手続を実行する
メニューのフォームにイベント処理ファイルを作っておきます。機能名に「手続き実行」パラメータに
その手続名を設定しておけば、イベント処理ファイルの中のその手続がちょうどサブルーチン的に実行されます。

なお上記のa)とb)は併用でき、混在も可能です。しかし、@で開いたメニューのフォームから、
Aの方法を行うのは、できない事はないのかも知れませんが、
まぎらわしくなると思いますので、@かAかどちらかにした方が良いでしょう。

佐田守弘(KS-00119)
20269 Re:cmdで処理を分岐させるためメニューを作りたい 沼田政治 2003/05/09-09:59
記事番号20257へのコメント
KHさん、ありがとうございます。
基本的に新しいプログラムは"改善"されていないと意味ないですからね。
前バージョンで出来ていたことが新バージョンで出来なくなるためには、相応の不都合がなければならないことですから、
質問の内容も"できないはずがない"と感じたからでした。
V9の過去ログだけでなく、V7以降の過去ログから探すべきなんでしょうね。
今から少し試してみようと思います。ありがとうございました。
20270 Re:桐でメニューの作り方 沼田政治 2003/05/09-10:24
記事番号20263へのコメント
佐田さん、ありがとうございます。
V7以降に導入された"イベント"という概念が理解できずにいることが、最大の障害のようです。
もっとも、たぶんこれはEXCELなどの他のWindowsソフトにも取り入れられているVB系統の考え方じゃないかなと感じています。
使う人間がキーから何かを入力して変数にでも入れておかないとコンピュータは作業をしてくれないというのが昔人間の理解ですが、
その人間の理解以上に多様なイベントが発生しているようですね。
それをうまく使っていこうとするのがWindowsソフトのイベント処理と言えるのかもしれないですね。
聞き慣れない「イベント」という単語がハードルを高くしているようですが、
基本的にこれを使いこなすことがV9を使いこなすことかもしれないと思い始めています。
過去ログでも、ざっと見ただけですが、「メニュー」という項目で括られているわけではなく、
「イベント」という項目の中にあるようです。以前の「メニュー」の意識から抜け出せていない現状では
「イベントとメニューって関係あるの?」程度の理解レベルなんです。
これは困ったことだと、自分でもあきれています。
これから佐田さんのアドバイスに従って、まずイベント処理でメニュー選択の目的を実現する手段を探してみようと思います。
ありがとうございました。

戻る