過去の桐井戸端BBS (桐ver.8)
13910 桐の起動時に自動的にフォームを立ち上げたい 2001/11/09-17:47
みなさん、久しぶりにお世話になります。
今、コマンドボタンを使って、作業に応じて必要な表を開くメニュー画面(?)を作ろうとチャレンジしております。
このメニュー画面は、桐が起動した直後に自動的に開くようにしたいのですが、
どうも、自分が思っているような操作ができる代物までたどり着けません。
アドバイスの程よろしくお願いいたします。

今まで、やってみたことを順を追って書きますと以下のようになります。
 
@フォームにコマンドボタンをいくつか張り付け(ボタンによって開く表が違うので編集対象表を設定してないですけど、まずいでしょうか?)
Aコマンドボタンで表が開けるようなイベントファイルの作成(どのボタンでも表が開けることは確認済み)
B一括処理で、実行すると「メニュー画面を開く」事ができるようにし、
桐の[ツール]−[環境設定]−[一括]−[起動時の一括実行指定]に登録すればいいのではと考え、
Cそこで、一括処理にてフォーム呼出し "メニュー画面.wfm"と入力
(これだけでははっきり言って笑われてもしょうがない代物ですね。ハイ) 
Dここまでで、とりあえず可能だったことは、
a.起動時にメニュー画面.wfmが開く
b.メニュー画面.wfmのコマンドボタンを押すとボタンに応じた表が開く。
 
で、いざ、表のデータを更新しようとすると目的の表がアクティブになりません。
(メニュー画面がアクティブになったまま)
これを回避するにはどのように、一括処理なり、設定なりをどうつつけば良いのかよくわかりません。
(一括処理がこの1行で済む分けないよな〜、て気はしてるので、
いろいろやってみましたが、エラーだらけで、参ってます)
ながながとなりましたがおねがいいたします。

後過去ログで、一括処理を使わずにイベントのみで、起動時にメニュー画面を開くことができるだろうというのがあったのですが、.
kevも設定に組み込めるようになってるのでしょうか?
ご存じの方おられましたら何か情報お願いします。

13913 Re:起動時のフォーム立ち上げ 今村 誠 2001/11/09-19:48
記事番号13910へのコメント
北さんこんにちは、フォームからの一括はよくわからないので他の方から良いアドバイスがあると思いますが、わたしの試したことだけ書きます。

>このメニュー画面は、桐が起動した直後に自動的に開くようにしたいのですが、
>後過去ログで、一括処理を使わずにイベントのみで、起動時にメニュー画面を開
> くことができるだろうというのがあったのですが、.kevも設定に組み込めるよう
>になってるのでしょうか?。ご存じの方おられましたら何か情報お願いします。

起動時の一括処理を指定する環境設定の画面がありますが、ここに開きたいメニューフォームの名前を拡張子付きで書き込むと、
CMDでなくWFMが開いて、処理できます。
(一括処理を書く必要はありません。)
メニューWFMには、イベントファイル(KEV)を指定して、いろいろできます。
具体的なサンプルは、佐田守弘先生のページに解説付きでありますのでは如何でしょうか。
http://www.ne.jp/asahi/m.sada/kiri/GUIDE/GUIDE_TOP.html
ここの第7章が当てはまるように思います。
13914 Re:起動時のフォーム立ち上げ Ogo 2001/11/09-20:06
記事番号13913へのコメント

>>このメニュー画面は、桐が起動した直後に自動的に開くようにしたいのですが、
>>後過去ログで、一括処理を使わずにイベントのみで、起動時にメニュー画面を開
>> くことができるだろうというのがあったのですが、.kevも設定に組み込めるよう
>>になってるのでしょうか?。ご存じの方おられましたら何か情報お願いします。
>
> 起動時の一括処理を指定する環境設定の画面がありますが、ここに開きたい
>メニューフォームの名前を拡張子付きで書き込むと、CMDでなくWFMが
>開いて、処理できます。(一括処理を書く必要はありません。)

こんなことをしたら、単に桐のみを立ち上げたい場合などに困ることになると思うのですが……

どう考えても「起動時にメニュー画面」のフォーム( *.WFM )のショートカットを作成する――で済む程度の事のような……
(私なら、ついでにそのショートカットのプロパテイで最大化を指定しておきますけどね)

13915 Re:フォームから開いた表をアクティブにするげ Ogo 2001/11/09-20:11
記事番号13910へのコメント

>で、いざ、表のデータを更新しようとすると目的の表がアクティブになりませ 
>ん。(メニュー画面がアクティブになったまま)

これについて助言を受けたいなら、せめて、

>Aコマンドボタンで表が開けるようなイベントファイルの作成(どのボタンでも
> 表が開けることは確認済み)

自分が何をやっているかを明示する必要が有るとは思いませんか?


13916 Re:起動時のフォーム立ち上げ 今村 誠 2001/11/09-20:57
記事番号13914へのコメント
Ogoさんこんにちは
>こんなことをしたら、単に桐のみを立ち上げたい場合などに
>困ることになると思うのですが……
>
>どう考えても「起動時にメニュー画面」のフォーム( *.WFM )
>のショートカットを作成する――で済む程度の事のような……
>(私なら、ついでにそのショートカットのプロパテイで最大化
>を指定しておきますけどね)

 わたしもデスクトップにはいくつかのWFMがあります。
起動時の一括にWFMを指定しても、終了のコマンドボタンの作り方で、対処できるのではないでしょうか。
 終了に 終了 桐 を指定すれば、ふつうの方法では入れませんが、終了 とだけすれば、桐のウィンドも残るし、
エクスプローラーからは自由に入れるわけですから、問題があるとは思いません。
 入るのが、一括からか、フォームからかの違いではないのですか、
検証したわけではないので、断定できませんが、フォームからの一括ではショートカットからだけとは限らないと思いますが。
13917 Re:起動時のフォーム立ち上げ 【多遊】 2001/11/09-21:49
記事番号13910へのコメント
>いざ、表のデータを更新しようとすると目的の表がアクティブになりませ 
>ん。(メニュー画面がアクティブになったまま)
>これを回避するにはどのように、一括処理なり、設定なりをどうつつけば良いの
>かよくわかりません。

メニューフォームの、オブジェクト属性で、
フォームタブ→ウインドウの形式はどうなってますか?
「ポップアップまたは、オーバラップ」になってる場合はチャイルドで、お試しください。
違ってましたらまた、書き込んでくださいね。

また、起動方法は、現在桐はどのようにして起動されてますか?
デスクトップのショートカット・メニューランチ等あると思いますが
その隣に、起動用フォームを置くのも一つの方法です。
いろいろお試しください。

13918 取り急ぎお礼を... 2001/11/09-23:15
記事番号13917へのコメント
【多遊】さん、Ogoさん、今村さん早速のアドバイスありがとうございます。
今自宅でこのbbsを見ているため、すぐに実行とは行かないのですが、
会社に行き次第みなさんのアドバイス試します。
 ・起動時の一括実行に、.wfmを使えるとは知りませんでした。
 ・ショートカットは全く思いつきませんでした(何年パソコン使ってるのやら・・・)
 ・言い訳になりますが、Ogoさんに指摘された、メニュー画面用の.kevはせめて一部でも乗せるべきでした。
以後気をつけます。

 実は元のコメントがだらだら長くなるので、あえて書かなかったのですが、できればもう一つ私の疑問に答えていただけないでしょうか。
  
環境設定の一括のタグに、実行プログラムの指定云々というのがありますが(正確にはどう記述されていたか忘れました。)
 これはどのようなときに使うものなのでしょうか。
ユーザーマニュアルを見てもあまり詳しくは書いていなかったような記憶があるのですが・・
(よく理解できなかったという方が正解かも)


13919 取り急ぎお礼の前に(^^;) 悲しげ 2001/11/10-00:11
記事番号13918へのコメント
[ツール]−[環境設定]−[一括]−[起動時の一括実行指定]に、或るcmd(あるいは場合によってはwfm)を登録すると、
桐を起動する度に、必ずその処理を実行させることが可能です。
逆に云えば、その処理を実行させたくない時でも、
桐を一般的に起動した際には強制的に実行されてしまうことにもなります。

さて、#13910の北さんのご発言である

>このメニュー画面は、桐が起動した直後に自動的に開くようにしたいのですが、

については、その後に北さんが続けた記述の関連を含めて、
今村さんは、桐を起動した時に「必ず」実行される定型処理と解釈なさったのだと思います。

片やOgoさんはここの解釈として、その時々に実行させたい「任意の」処理を、
桐を起動した後でファイルパレットなりで個々にcmdやwfmを指定するのは面倒だから
(起動直後と云うよりは)起動前に指定する方法として受け止められたのだと思います。

北さんは、取り急ぎのお礼と別質問の前に(^^;)、このどちらを質問したのかを、
先ずは明確にした方がいいでしょう。

13920 すみませぬ・・・ 2001/11/10-19:09
記事番号13919へのコメント
悲しげさんコメントありがとうございます。
まったくもって、質問する方が自分のやりたいことをよく把握できていない状態になってました。
どうもごめんなさい。
>
>>このメニュー画面は、桐が起動した直後に自動的に開くようにしたいのですが、
>
>については、その後に北さんが続けた記述の関連を含めて、今村さんは、桐を起
>動した時に「必ず」実行される定型処理と解釈なさったのだと思います。
>
>片やOgoさんはここの解釈として、その時々に実行させたい「任意の」処理を、
>桐を起動した後でファイルパレットなりで個々にcmdやwfmを指定するのは面倒だ
>から(起動直後と云うよりは)起動前に指定する方法として受け止められたのだ
>と思います。
>

 最初に考えていた自分のイメージは今村さんのアドバイスの方です。
 こっから下はこうなった理由です。
 元はと言えば、4つのCSVファイルのデータを桐の表(これまた4つ)に読み込む際、
「たびたび、表を4つ立ち上げるのはめんどくさいなー」と思い、
せめて、起動時にこの4つのファイルを開くようにしようと考えたわけです。
 が、一括処理を作って、環境設定に登録してしまうと、それまで作ってきた履歴が使えず、
かといって、一括処理が終わっても、表を開いたままの状態にする状態もわからずとなり、
さらに、検索だけに共有している人からすれば、「余分な表が開いたままだ」、
「ほしい表は結局自分で開かないとダメじゃん」、というわけです。
 (結局は、使い方がかなりパターン化し、使う表の数も限られてるのですけどね。)
 そりゃ、メニュー画面を作る方がいいな、と思い、メニュー画面を起動時に開くようになればいいなと思ったわけで、
その後の顛末は最初の投稿のとおりです。
 (これを読んだ諸先輩方は「いちいち、読み込みするのにそれぞれの表立ち上げてるの?
アホな」と思われるでしょう。それこそ.kevや.cmdで作りたいんですが
それを作りきる時間もなければ、テクもないと言う状態ですので、つっこまないでください。
これから、ちょっとづつ、ちょっとづつ・・・(CSVを作るためのエクセル・マクロもつつく必要があるんですわ。))
13927 桐のメニューフォームの立上げ 佐田 守弘 2001/11/12-00:21
記事番号13910へのコメント
北さん
多数の方々が有用なアドバイスをされております。私もその通りだと思います。
重複する内容になりますが、私からもコメントさせて頂きます。

北さんがやろうとされている、桐のメニューフォームから各種の表を開く方法は
桐の機能として一般的に使われる方法です。

●桐を起動してメニューフォームを開く方法
MS-DOS版の桐と違い、Windows版の桐では、
「桐を起動してメニューフォームを開く」
ではなく、
「メニューフォームを開く事により、桐を起動する」
が正解です。
つまり、皆様のコメントに書かれている通り、桐を起動するのではなくて、
メニューフォームのショートカットを作成し、これを実行するようにします。
後は勝手に桐が起動します。

メニューフォームからは、コマンドボタンの「開く」「閉じる」の2つの機能だけを使えば、
取りあえずは目的を達成するメニューフォームが作れます。
もちろん、イベントを使うことも可能ですが、イベントを使わなくても、
メニュー程度のものは作れます。

●一括処理を起動した場合
この方法も可能ですが、一括処理から起動する場合には、「ウインドウ作成」
「ウインドウ会話」コマンドを使って、目的フォームなり表を開きます。
目的の表がアクティブにならないのは、このコマンドの使い方にエラーがあるのではないかと思います。
どこにエラーがあるかは、詳しい事を書かれていないので、判断できません。

なお、一括処理を使う方法は、1つの方法(古典的な方法)ではあり、
それなりに使用目的はあるのですが、おそらく北さんが望む目的には
必ずしも必要かどうかは分かりません。

むしろ、桐ver.8では一括処理の事などきれいさっぱり忘れてしまいましょう。

更に参考までに言えば、
(1)古典的な方法
一括処理コマンドから桐を起動し、一括処理でその後の機能を全て制御します。
一括処理で記述している事以外の処理は不可能とする時に有効です。
逆に言えば、想定される処理は全て一括処理の中に記述しておく事が必要です。
ガチガチに機能制限したシステムを構築する時には有効になります。
これは、エンドユーザには使いにくい事極りないが、システム管理者としては、
予測外の事を禁止する時には致って有効な方法になります。

(2)イベントを使う新しい方法
イベントは一括処理と似ている様でいて非なるののです。
イベントの基本は、会話処理です。つまり、ユーザが会話風に様々な処理を
行う事をバックでサポートする機能として、イベント処理が使われます。
イベントは、元来は、ユーザに操作を任せ、その裏で便利機能を行うものです。
上記に書いた様な機能制限を目的としないのであれば、イベント主体のシステム構築を考えるのが基本でしょう。

そして、その前にコマンドボタンの機能をうまく使って下さい。

佐田守弘(KS-00119)
13928 実行プログラムとは 佐田 守弘 2001/11/12-00:30
記事番号13918へのコメント
北さん
実行プログラムの設定は、MS-DOS版の桐ver.5の互換機能と理解して下さい。
桐ver.5にあった、システムメニューで登録しておいたプログラムを桐から呼び出す機能です。
Windows版桐では特に使う必要はないと思います。
私も桐ver.5ではこの機能を多用して来ましたが、Windows版になり、頭が切り替わってから、
この機能は一切使っておりません。

なお、桐起動時の一括実行して異は、上記とは関係無く、桐を実行した時に、自動的に実行させる一括処理です。
これを設定する事によって、一括処理で記述した特定目的の専用桐になります。
裏返して言えば、特定目的以外の操作が全て禁止できます。

これも、特定目的にカスタマイズするための機能と解釈しましょう。

佐田守弘(KS-00119)
13931 思っているようなメニューになりました 2001/11/12-14:36
記事番号13927へのコメント
  かなり、言葉足らずな投稿をしてしまい、大変ご迷惑おかけしました。

●まず、最初に作っていたメニュー画面及び.kevの構成はこのような物です。
・メニューフォーム
 ├コマンドボタン1
├コマンドボタン2


.kevは
手続き定義開始 
コマンドボタン1::マウス左クリック(長整数 &マウス位置[2],長整数 &明細番号,長整数 &フラグ,参照 長整数 &処理中止)
データパス名 "D:¥データ",固定=する
変数宣言 整数{&表}

表 "A.tbl",モード=専有
条件(.NOT #行集計状態 .AND .NOT #絞り込み状態 .AND #整列状態) 整列解除
ウィンドウ作成 表,位置=(75, 75),サイズ=(900, 450),ハンドル=&表,オプション=通常
絞り込み 条件名=**1
並べ替え 条件名=**2
手続き定義終了

 コマンドボタンによって開く表の数とファイル名が違うだけで、コマンドボタンの数だけ、上記のようなイベントを書いています。
 基本的にコマンドボタンで開かれる表を対象にした一括処理等はございません
(というより、V8になってから一括処理は使ってないのですが)

●で、結局どのように落ち着いたかといいますと・・・
 今村さんOgoさんお二方の方法どちらとも試してみました。どちらの方法でも、
 メニュー画面開く→コマンドボタン押す→表がぱたぱた開く→履歴も使える。
 (その他諸々の機能)が、できるようになりました。
 元々「桐」自体をデスクトップにショートカットを置いて使用していましたので、
「メニュー画面.wfm」のショートカットに置き替えて使うことにしました。
 とりあえず、佐田さんのおっしゃるように、アドバイス以降、この件については、
一括処理のことは考えませんでした。

(その後履歴は、メニュー画面にコマンドボタンの追加、イベントの改善で、同様の
 機能が実行できるようにつつきました。)

 最後に、勉強不足で至らないところが多くあったと思います。
今村さん、Ogoさん、多遊さん、悲しげさん、佐田さん親切なアドバイスありがとうございました。
これからもがんばって改善していこうと思ってます。

戻る