過去の桐井戸端BBS (桐ver.8)
11131 コマンドボタンからフォームを起動したいのですが pokopon 2001/05/11-01:52
初めての投稿です。おわかりになる方、ご教授下さい。
成績処理用のフォームを作っています。
各科目のファイルはそれぞれ別々に存在しています。(A.TBL,B.TBL・・・・)。
なお、全て同じ項目名、規格のファイルです。
初めにメニュー.wfmというファイルを作成し、そこで、処理すべき科目のファイルを選択させます。
この時、選択したファイルを変数(&科目ファイル)に代入させておきます。
さて、別に得点入力用のフォームを作成しました。
処理する科目のファイルが複数存在するので、参照表は適当にあてがいましたが、編集表は定義していません。
いわば入力用の雛型です。
そこで、メニュー.wfmのコマンドボタンから、この得点入力用フォームを、
変数に代入された表ファイルで開きたいのですが、どうもうまくいきません。

1.コマンドボタンの機能を使って
開く、フォームファイル名 では、得点入力フォームに編集表ファイルが定義されていないため、エラーとなる。
得点入力フォームの編集表の欄には変数名は定義できない。
2.イベント処理で
フォーム形式編集はイベントでは使えないコマンドです。
表 科目ファイル名 , 使用フォーム =
も、同様にイベントでは使用できないコマンドでした。
3.メソッドで
オブジェクト関数をつかっても、メニュー.wfmが開いていると、エラーが出るようです
(フォームに定義されたイベントからは実行できません・・・)

4.最初からコマンドファイル(CMD)で起動させ、フォームファイルを開くと、
今度はフォームに定義されているさまざまなイベントが実行できません(コマンドボタンが半透明となって利用不可能な状況です)。

一応、管理工学研究所のサポートに問い合わせてみましたが、解決には至っておりません。

どなたか上手い解決方法を知っていたら、教えて下さい。

11132 Re:コマンドボタンからフォームを起動したいのですが みうら 2001/05/11-05:10
記事番号11131へのコメント

ん〜
イベントにて変数&表名に表の名前を拾っておいて

表 &表名
編集表 #IS表
フォーム呼出し ”入力用フォーム名.wfm” ,編集表=する,終了状態=&終了

.....かな

*入力用フォーム名.wfmの定義で参照表及び編集対照表は空白ですヨ!

11133 Re:コマンドボタンからフォームを起動したいのですが 尾形 2001/05/11-08:25
記事番号11131へのコメント
pokoponさん、こんにちは
ここの過去ログの
http://www.fuku3.com/~habata/kbbs/kakov8/06127.htm
が参考になると思います。

11134 Re:コマンドボタンからフォームを起動したいのですが ONnoji 2001/05/11-09:40
記事番号11131へのコメント
pokoponさん、おはようございます。ONnojiです。

以下を参考にしてください。

<得点入力用のフォーム(.wfm)>

(1)フォームのオブジェクトの属性の[編集対象表]タブの[編集対象表]のファイル名は空っぽ(消してしまう)にします。
(2)[参照表]は省略できませんので任意の表(.tbl)を指定してください。
(3)フォームのオブジェクトの属性の[オプション]タブを選び、[タイトルバーの形式]で "フォーム表題" を選びます。

<得点入力用のフォームのイベント処理(.kev)>

名札 メイン
オブジェクト操作  @フォーム.編集対象表 = #変数("科目ファイル")
オブジェクト操作  @フォーム.フォーム表題 = #変数("科目ファイル")


注意:オブジェクト名の "フォーム" は半角カタカナです。オブジェクト名(フォーム)の前にはアットマーク記号(@)が、後にはドット(.)が必要です。
注意:&科目ファイルは文字列型の固有変数(または組み込み変数)でなければなりません。
注意:#変数( )関数を使うのは変数が宣言されていなくてもエラーにならないようにするためです。
注意:変数( )関数の引数に変数名にはアンパサンド(&)記号は付けないでください。

<メニュー.wfmのコマンドボタン>

機能名   機能パラメータリスト
[1]なし   #代入(&科目ファイル,"数学.tbl")
[2]開く   "得点入力用のフォーム.wfm"
[3]なし
[4]なし

この例は数学.tblを編集対象表にして得点入力用のフォーム.wfmを開きます。
得点入力用のフォームのタイトルバーには数学.tblと表示されます。
11135 Re:コマンドボタンからフォームを起動したいのですが ONnoji 2001/05/11-10:52
記事番号11134へのコメント
No.11134の訂正です。

語句の抜け、助詞に誤りがありました。以下のように訂正いたします。

<訂正前>
注意:&科目ファイルは文字列型の固有変数(または組み込み変数)でなければなりません。

<訂正後>
注意:&科目ファイルは文字列型の固有変数(または共通変数、組み込み変数)でなければなりません。

<訂正前>
注意:変数( )関数の引数に変数名にはアンパサンド(&)記号は付けないでください。

<訂正後>
注意:#変数( )関数の引数の変数名にはアンパサンド(&)記号は付けないでください。

11136 Re:コマンドボタンからフォームを起動したいのですが pokopon 2001/05/11-11:44
記事番号11134へのコメント

>(1)フォームのオブジェクトの属性の[編集対象表]タブの[編集対象表]のファイル名は空
>っぽ(消してしまう)にします。
>(2)[参照表]は省略できませんので任意の表(.tbl)を指定してください。
>(3)フォームのオブジェクトの属性の[オプション]タブを選び、[タイトルバーの形式]
>で "フォーム表題" を選びます。
>
><得点入力用のフォームのイベント処理(.kev)>
>
>名札 メイン
>オブジェクト操作  @フォーム.編集対象表 = #変数("科目ファイル")
>オブジェクト操作  @フォーム.フォーム表題 = #変数("科目ファイル")
>*
>
>注意:オブジェクト名の "フォーム" は半角カタカナです。オブジェクト名(フォーム)の前にはアッ
>トマーク記号(@)が、後にはドット(.)が必要です。
>注意:&科目ファイルは文字列型の固有変数(または組み込み変数)でなければなりません。
>注意:#変数( )関数を使うのは変数が宣言されていなくてもエラーにならないようにするた
>めです。
>注意:変数( )関数の引数に変数名にはアンパサンド(&)記号は付けないでください。
>
><メニュー.wfmのコマンドボタン>
>
>機能名   機能パラメータリスト
>[1]なし   #代入(&科目ファイル,"数学.tbl")
>[2]開く   "得点入力用のフォーム.wfm"
>[3]なし
>[4]なし
>
>この例は数学.tblを編集対象表にして得点入力用のフォーム.wfmを開きます。
>得点入力用のフォームのタイトルバーには数学.tblと表示されます。


どうもありがとうございました。無事目的が達成されました。

それにしても、HELPをいろいろ探して、使えそうなコマンドを探しつづけたこと3日間、解決する方法は
オブジェクト操作  @フォーム.編集対象表 = #変数("科目ファイル")
とは....。
管理工学研究所サポートも教えてくれませんでした。

本当にありがとうございました。

P.S.それにしても、このBBS、レスが早いですね。
昨晩、悪戦苦闘して、こりゃ駄目だと思い、わらにもすがる思いでここに書き込みをしたのが夜中の2時、
それなのに、午前中にはすぐにレスがついていました。
それだけみんなで「悩みを抱えながら」このBBSを利用しているということですね。
これからもよろしくお願いします。



11137 解決しました pokopon 2001/05/11-17:07
記事番号11132へのコメント
>ん〜
>イベントにて変数&表名に表の名前を拾っておいて
>
> 表 &表名
> 編集表 #IS表
> フォーム呼出し ”入力用フォーム名.wfm” ,編集表=する,終了状態=&終了
>
>.....かな
>
>*入力用フォーム名.wfmの定義で参照表及び編集対照表は空白ですヨ!
>

ありがとうございました。この方法でもうまくいきました。

ただ、
> 編集表 #IS表
は必要なかったみたいです。

(おかし〜な〜、この方法も試したつもりだったのですが、エラーが出ていたような・・・・、でも、今はうまくいきます。
あちこちいじっていたから、この方法でも別の部分が原因でエラーが出ていたのかも?
まずはめでたし、めでたしです)


11138 2つの方法の動作上の違い(報告) pokopon 2001/05/11-17:22
記事番号11131へのコメント
今回のことで、いかにこのようなBBSが重要であるか思い知らされました。
桐仲間万歳です。本当に勉強になります。

さて、みうらさん、ONnojiさんから、別々の方法が提案されました。どちらも同じ結果を生みましたが、
動作状況がちょっと違いましたので、レポートします。

みうらさんの方法
>イベントにて変数&表名に表の名前を拾っておいて
>表 &表名
>フォーム呼出し ”入力用フォーム名.wfm” ,編集表=する,終了状態=&終了
この方法だと、元のフォームファイルにおいて、何もコマンドを受け付けなくなります。
メニュー画面は残っていますが、どこをクリックしても拒否されます。
これは、メニュー画面からモルダフォームで別のフォームを起動したのと同じように動作しま
す。

ONnojiさんの方法
><得点入力用のフォーム(.wfm)>
>(1)フォームのオブジェクトの属性の[編集対象表]タブの[編集対象表]のファイル名は
空っぽ(消してしまう)にします。
>(2)[参照表]は省略できませんので任意の表(.tbl)を指定してください。
>(3)フォームのオブジェクトの属性の[オプション]タブを選び、[タイトルバーの形式]
で "フォーム表題" を選びます。
><得点入力用のフォームのイベント処理(.kev)>
>名札 メイン
>オブジェクト操作  @フォーム.編集対象表 = #変数("科目ファイル")
>オブジェクト操作  @フォーム.フォーム表題 = #変数("科目ファイル")
>*
><メニュー.wfmのコマンドボタン>

>機能名   機能パラメータリスト
>[1]なし   #代入(&科目ファイル,"数学.tbl")
>[2]開く   "得点入力用のフォーム.wfm"
>[3]なし
>[4]なし

この方法でもメニュー画面は残っています。こちらは、もとのフォームの状態で、キーを受け付けます。
ボタンのクリックも可能です。


という動作上の違いを報告します。
どちらが良いのかは、元のフォームをどう使わせるかによって選べばよさそうです。
前者では、メニューフォームは「ロックされた状態」と同じですから。

みなさん、ご教授ありがとうございました。

11140 Re:2つの方法の動作上の違い(報告) ONnoji 2001/05/11-18:48
記事番号11138へのコメント
pokoponさんは No.11138「2つの方法の動作上の違い(報告)」で書きました。
>今回のことで、いかにこのようなBBSが重要であるか思い知らされました。
>桐仲間万歳です。本当に勉強になります。
>
>さて、みうらさん、ONnojiさんから、別々の方法が提案されました。どちらも同じ結果を生み
>ましたが、動作状況がちょっと違いましたので、レポートします。
>
>みうらさんの方法
>この方法だと、元のフォームファイルにおいて、何もコマンドを受け付けなくなります。
>メニュー画面は残っていますが、どこをクリックしても拒否されます。
>これは、メニュー画面からモルダフォームで別のフォームを起動したのと同じように動作しま
>す。
>
>ONnojiさんの方法
>この方法でもメニュー画面は残っています。こちらは、もとのフォームの状態で、キーを受け付
>けます。ボタンのクリックも可能です。
>
>という動作上の違いを報告します。
>どちらが良いのかは、元のフォームをどう使わせるかによって選べばよさそうです。
>前者では、メニューフォームは「ロックされた状態」と同じですから。

pokoponさん、こんばんは。ONnojiです。

<メニューフォームは「ロックされた状態」と同じですからに関して>

[モーダルフォームとは]
通常二つ以上のウインドウが現れている時、どちらのウインドウにもフォーカスが切り替えられます。
これをモードレスウインドウと呼びます。
それに対して現在のウインドウから別のウインドウへフォーカスが切り替えられないウインドウも作れます。
これをモーダルウインドウと呼びます。
モーダルフォームとはモーダルウインドウのフォーム(.wfm)のことです。

モーダルフォームの使い道としては、
(1)モーダルフォームの操作結果を取得したい時
*重要なのはコマンドボタンの機能も呼び出し側のイベントのシーケンスも一時停止することです。
(2)他のフォームを操作された場合に矛盾や破綻が生じる時
(3)操作の流れを固定したい時
だと思います。

モーダルフォームを開く方法は2つあります。
(1)コマンドボタンの機能名で[モーダルフォーム]を指定する。
(2)イベント処理(.kev)で[フォーム呼び出し]コマンドを実行する。
どちらもモーダルなフォームが開きます。

一方モードレスなフォームを開く方法も2つあります。
(1)コマンドボタンの機能名で[開く]を指定する。
(2)イベント処理(.kev)で[ウィンドウ作成]コマンドを実行する。
どちらもモードレスなフォームが開きます。

<メニュー画面は残っていますに関して>
メニューフォームを閉じることは可能です。
*ただし、モーダルフォームを開いた時は不可能です。

>機能名   機能パラメータリスト
>[1]なし   #代入(&科目ファイル,"数学.tbl")
>[2]開く   "得点入力用のフォーム.wfm"
>[3]閉じる
>[4]なし

機能名[3]に 閉じる を追加すればいいです。

まず他のフォームを開き、次に自分を閉じるというやり方です。
私は[開く閉じる]型と勝手に命名しています。
(この方法は桐のサンプルファイルでよく見かけます。)

得点入力用のフォームを閉じて、メニューフォームを開くには、
得点入力用のフォームの[閉じる]コマンドボタンに次の指定をします。

機能名   機能パラメータリスト
[1]表示
[2]開く   "メニューフォーム.wfm"
[3]閉じる
[4]なし

モーダルフォームは使い方で次第で便利だったり不便だったりします。

さらにモーダルフォーム特有の落とし穴もあります。
<モーダルフォームの注意点>
モーダルフォームは他のウインドウへフォーカスが切り替えられないので、
必ず自分自身を閉じるためのボタンや仕掛けが用意されていなければなりません。
例えば、フォームのオブジェクトの属性で[タイトルバー]をOFFにするとタイトルバーの[×]ボタンが無くなりますが、
これではモーダルフォームを閉じる手段が無くなります。
必ず[タイトルバー]はONにするようにしてください。
そしてモーダルフォームを閉じるためのコマンドボタンもフォーム上に作成してください。

以上参考になれば嬉しいです。
11142 Re:2つの方法の動作上の違い(報告) 悲しげ 2001/05/11-22:15
記事番号11140へのコメント
どもっ、ONnojiさん

>モーダルフォームは使い方で次第で便利だったり不便だったりします。

この点は、結果的に「モーダル命」で走ることになってしまった私としては、
この間痛感しまくってきたところです。(^^;)
しかし逆に、モードレスフォームもまた、使い方によっては便利だったり不便だったりしまして、
私の使い方からすると、総じてモーダルの方の便利さが不便さよりも勝っているとの印象を今も持っています。
逆に云うと、モードレスの方の不便さが便利さよりも(実は大きく)上回っていた印象が焼き付いています。
V9で「アクティブウィンドウ」の扱いがどうなるのか判りませんが、
当面V8では実務上「モーダル命」で走り、「モードレス」については
私はV9になってから改めて挑戦してみようと思っています。(^^;)

ってことは実は余談でして、次の記述は誤読を誘いそうなので、少し補足させていただきます。(こっちが本論)

>さらにモーダルフォーム特有の落とし穴もあります。
><モーダルフォームの注意点>
>モーダルフォームは他のウインドウへフォーカスが切り替えられないので、
>必ず自分自身を閉じるためのボタンや仕掛けが用意されていなければなりません。
>例えば、フォームのオブジェクトの属性で[タイトルバー]をOFFにするとタイ
>トルバーの[×]ボタンが無くなりますが、
>これではモーダルフォームを閉じる手段が無くなります。
>必ず[タイトルバー]はONにするようにしてください。
>そしてモーダルフォームを閉じるためのコマンドボタンもフォーム上に作成してく
>ださい。

私はしばしば「タイトルバー」無しのモーダルフォームを使って閉じています。
方法のひとつに、スラッシュメニューを活かしておいて、[/]+[Q]を使えば、
モーダルフォームとて閉じることは可能です。
が、最も多く使っているのは、機能が「閉じる」であるボタンをひとつ
(フォーム内、あるいは必要によりフォーム外のワークスペースに)設定しておいて、
それをクリック、または「メソッド呼出し」で「実行」させています。
これがごく普通のやり方のように私は思って来ましたから、「落とし穴」あるいは
「モーダルフォームを閉じる手段が無くなります」と云うほど仰々しいものでもないような……。(^^;)
11144 Re:フォームを「閉じる」について pokopon 2001/05/12-00:11
記事番号11140へのコメント
ONnojiさん またまた詳しく教えていただいてありがとうございました。
とても参考になります。

そこで、次の内容に関して.....
>メニューフォームを閉じることは可能です。
>*ただし、モーダルフォームを開いた時は不可能です。
>
>>機能名   機能パラメータリスト
>>[1]なし   #代入(&科目ファイル,"数学.tbl")
>>[2]開く   "得点入力用のフォーム.wfm"
>>[3]閉じる
>>[4]なし
>
>機能名[3]に 閉じる を追加すればいいです。

この件ですが、実は既に試していたのですが、「閉じる」にするともとのメニューが閉じるばかりではなく、
新しく開いたファオームまで閉じてしまいました。
加えて、開いた新しい「得点入力用フォーム」に移った際、「表編集」ができなかった(メニュ選択で薄い文字となり、
実行不可能な状態)のです。
ず〜と不思議でした。というか、新しく開いたフォームではできないと思っていました。
他の例を見るとできるのに、自分のファオームではできない!!
ということで、いろいろ試行錯誤した結果、メニューフォームにおいてウインドウの形式において「ポップアップ」で作っていたからです。
チャイルド&オーバーラップなら、上記のことが可能でした。

これって、常識? 知らなかったのは私だけ? (ちょっと寂しいです)

ユーザーに余り「桐」そのものを意識させたくないと(別に深い意味はありませんが、先生方に得点入力以外に余計な
操作をさせたくないので)あえてポップアップにしていました。それがあだとなったようです。

ともあれ、いまでは快適に動いております。 もう少しで完成となります。
本当にありがとうございました。

11147 Re:2つの方法の動作上の違い(報告) ONnoji 2001/05/12-00:38
記事番号11142へのコメント
こんばんは、悲しげさん。

>>モーダルフォームは使い方で次第で便利だったり不便だったりします。

>次の記述は誤読を誘いそうなので、少し補足させていただきます。

>>さらにモーダルフォーム特有の落とし穴もあります。
>><モーダルフォームの注意点>
>>モーダルフォームは他のウインドウへフォーカスが切り替えられないので、
>>必ず自分自身を閉じるためのボタンや仕掛けが用意されていなければなりません。
>>例えば、フォームのオブジェクトの属性で[タイトルバー]をOFFにするとタイ
>>トルバーの[×]ボタンが無くなりますが、
悲しげさん、補足ありがとうございます。

>>これではモーダルフォームを閉じる手段が無くなります。
>>必ず[タイトルバー]はONにするようにしてください。
>>そしてモーダルフォームを閉じるためのコマンドボタンもフォーム上に作成してく
>>ださい。

>私はしばしば「タイトルバー」無しのモーダルフォームを使って閉じています。
>方法のひとつに、スラッシュメニューを活かしておいて、[/]+[Q]を使えば、
>モーダルフォームとて閉じることは可能です。

スラシュ(/)メニューを使ってモーダルフォームを閉じるにはいいと思います。
説明が充分でなかったかかもしれませんが、
これも自分自身を閉じるための仕掛けのひとつだと思っています。

>最も多く使っているのは、機能が「閉じる」であるボタンをひとつ(フォ
>ーム内、あるいは必要によりフォーム外のワークスペースに)設定しておいて、
>それをクリック、または「メソッド呼出し」で「実行」させています。
>これがごく普通のやり方のように私は思って来ましたから、「落とし穴」ある
>いは「モーダルフォームを閉じる手段が無くなります」と云うほど仰々しいも
>のでもないような……。(^^;)

なるほど、ちょっと表現がオーバーだったと思っています。
落とし穴というほども仰々しいものでもないといわれればその通りです。

しかし、私としては閉じる手段が無いモーダルフォームを作らないように気を付けてください!
といういう事をこの場で申し上げた次第です。
私としては、うっかりでCtrl+Alt+Deleteで桐のタスクを終了するようなことになって欲しくはないのです。

悲しげさん、補足ありがとうございます。
11150 Re:2つの方法の動作上の違い(報告) hidetake 2001/05/12-06:39
記事番号11147へのコメント
>しかし、私としては閉じる手段が無いモーダルフォームを作らないように気を付けてくださ
>い!
>といういう事をこの場で申し上げた次第です。
>私としては、うっかりでCtrl+Alt+Deleteで桐のタスクを終了するようなことになって欲しく
>はないのです。

Windows の基本として Alt + F4 と言う操作もあると言うことを覚えておいた方が良いのかも知れませんね?

11152 先入観による突込み不足でお手つき発言をしました。 ONnoji 2001/05/12-11:23
記事番号11150へのコメント
hidetakeさん、悲しげさんへ

>>しかし、私としては閉じる手段が無いモーダルフォームを作らないように気を付けてくださ
>>い!
>>といういう事をこの場で申し上げた次第です。
>>私としては、うっかりでCtrl+Alt+Deleteで桐のタスクを終了するようなことになって欲しく
>>はないのです。
>
>Windows の基本として Alt + F4 と言う操作も
>あると言うことを覚えておいた方が良いのかも
>知れませんね?

hidetakeさん、こんにちは。ONnojiです。

ご指摘ありがとうございます。

かなり以前に桐のどのバージョンだったか忘れましたが、
どのような方法でモーダルフォームを開いたかも忘れましたが、
Alt + F4 でモーダルフォームが閉じないかったという経験がありました。
どうも記憶があいまいで一括の[ウィンドウ作成]だったか...
ファンクションバーが関係していたときだったか...
いずれにしてもAlt + F4が効かなかった時の条件が思い出せません(すいません)。
今考えてみると、この時の苦い経験が脳裏にずっとこびりついていたんですね。

確かに桐V8では Alt + F4 が効かなくなることはありませんね。
先入観による突込み不足でお手つき発言をしました。
誠にお恥ずかしいかぎりです。

hidetakeさん、どうもありがとうございました。

悲しげさんは No.11142「Re:2つの方法の動作上の違い(報告)」で書きました。
>どもっ、ONnojiさん
>>さらにモーダルフォーム特有の落とし穴もあります。
>><モーダルフォームの注意点>
>>モーダルフォームは他のウインドウへフォーカスが切り替えられないので、
>>必ず自分自身を閉じるためのボタンや仕掛けが用意されていなければなりません。
>>例えば、フォームのオブジェクトの属性で[タイトルバー]をOFFにするとタイ
>>トルバーの[×]ボタンが無くなりますが、
>>これではモーダルフォームを閉じる手段が無くなります。
>>必ず[タイトルバー]はONにするようにしてください。
>>そしてモーダルフォームを閉じるためのコマンドボタンもフォーム上に作成してく
>>ださい。
>「落とし穴」ある>いは「モーダルフォームを閉じる手段が無くなります」と云うほど仰々しいも
>のでもないような……。(^^;)

悲しげさん、こんにちは。ONnojiです。

hidetakeさんへで書いた通りでして、
強い先入観による突込み不足でお手つき発言をしてました。
誠にお恥ずかしいかぎりです。

悲しげさん、どうもありがとうございました。

11177 Re:2つの方法の動作上の違い(報告) 悲しげ 2001/05/14-18:04
記事番号11147へのコメント
どもっ、ONnojiさん、
既にhidetakeさんからのコメントで、[Alt]+[f・4]も利く(サスガhidetakeさん、
私はそこまで頭が回らなかった)と云う事で解決済みなのではありますが、
それ以外にも腑に落ちない部分があるので、コメントを続けます。(^^;)

>しかし、私としては閉じる手段が無いモーダルフォームを作らないように
>気を付けてください!
>といういう事をこの場で申し上げた次第です。

そうであることは承知で、他の方が誤読しないようにコメントした訳ですが、
でも改めて考えてみると、この点はモーダルフォーム・モードレスフォーム
の双方に云えることなのではないでしょうか?

今回の[Alt]+[f・4]やスラッシュメニューの[/]+[Q]を別として、フォームを閉じる手段は、
タイトルバーにおける[×]ボタンのクリック、「閉じる」機能を有するコマンドボタンの
クリック、cmd・kevの記述では「メソッド呼出し」によるコマンドボタンの
「実行」と「ウィンドウ終了」コマンドだったと思います。
この内、(原則として)モーダルで使えずモードレスだけで有効なのは「ウィンドウ終了」コマンドだけではなかったかと思います。
とすれば、結果的には、モードレスフォームでも同様のことが起こり得るのではないか、と云うことです。
「モードレスフォーム」として使うことを意図して、仮りに「閉じる手段が無いフォーム」を作ったとします。
つまり、[×]ボタン付きのタイトルバーが無い、「閉じる」機能を有するコマンドボタンもフォーム上に存在しない、
ついでに云えばkevも無いとします。
後から開くフォームが、背面のフォームよりも相対的に大きい場合、
(意図的にそうする場合と、意に反してそうなってしまう場合があるが)手前のフォームが背面のフォームを完全に隠してしまうことが、しばしばあります。
このような場合、いかにモードレスで開いたフォームと云えども、
挙動としては「疑似モーダル」的になってしまう(あるいは意図的にそうする)のではないでしょうか?
とすれば、[Alt]+[f・4]や[/]+[Q]のお世話になる以外には、当該モードレスウィンドを閉じることはできません。
(厳密には、ウィンドウ形式の「チャイルド」「ポップアップ」「オーバラップ」による違いがあるかもしれないが)
ですから、「モードレスフォームなら閉じる機能が無くても構わない」とはならない訳で、一般論としては、
--------------------------------------------------------------------
使用方法がモーダルか、モードレスかに拘わらず、フォームには必ず閉じる
手段を設定しておく方が無難です。
--------------------------------------------------------------------
辺りが妥当ではないでしょうか?
11186 Re:2つの方法の動作上の違い(報告) ONnoji 2001/05/15-10:48
記事番号11177へのコメント
悲しげさんは No.11177「Re:2つの方法の動作上の違い(報告)」で書きました。

>一般論としては、
>--------------------------------------------------------------------
>使用方法がモーダルか、モードレスかに拘わらず、フォームには必ず閉じる
>手段を設定しておく方が無難です。
>--------------------------------------------------------------------
>辺りが妥当ではないでしょうか?

悲しげさん、こんにちは。ONnojiです。

展開された考察を興味深く読ませていただきました。
私も悲しげさんのご意見に賛成です。
こういう事を一般的なガイドライン(指針)と呼ぶといいかもしれませんね。

戻る