過去の桐井戸端BBS (桐ver.8) |
17627 | 一括処理でフォームを桐の枠から出して複数のフォームを表示したい | 田島 | 2002/10/17-18:47 |
一括処理にてフォームのみを「桐の枠」から出すことはできるようになりましたが、 その時にフォームを複数表示することはできないのでしょうか。 「フォーム呼び出し」コマンドを使うと、次のフォームを開いたときに前のフォームは消えてしまいますよね。 これを何とかクリアしたいのです。 つまり1つのフォームを表示しながら、 例えば必要に応じてそのフォームの説明文である「ヘルプ画面」等も同時に表示できるようにしたいのです。 私だけが使うのなら、その必要は全くないのですが、 他の者も使うことを前提に一括処理を作成している都合上、 何とかユーザーサイドにたったものに仕上げたいのです。 桐はVER8SP6を利用しております。 どなたかご指導いただければ幸いです。 | |||
17628 | Re:フォーム2画面の同時表示 他 | KH | 2002/10/17-20:23 |
記事番号17627へのコメント >「フォーム呼び出し」コマンドを使うと、次のフォームを開いたときに >前のフォームは消えてしまいますよね。 >これを何とかクリアしたいのです。 ウィンドウ作成コマンドなら2フォーム表示できると思います。 フォーム呼び出しコマンドではモーダルフォームになってしましますので複数は無理だったと思います。 | |||
17632 | Re:フォーム2画面の同時表示 他 | 悲しげ | 2002/10/17-23:26 |
記事番号17628へのコメント え〜、補足します。(^^;) >>「フォーム呼び出し」コマンドを使うと、次のフォームを開いたときに >>前のフォームは消えてしまいますよね。 >>これを何とかクリアしたいのです。 > >ウィンドウ作成コマンドなら2フォーム表示できると思います。フォーム >呼び出しコマンドではモーダルフォームになってしましますので複数は無 >理だったと思います。 「フォーム呼び出し」=「モーダルフォーム」では、「前のフォームが消えてしまう」訳ではありませんし、 表示の「複数は無理」と云う訳でもありません。 正確に云えば、前のフォームは健在なままで、そこから次のフォームを呼び出している訳で、 結果的に手前のフォームにしかアクセスできない状態となり、 この時に手前のフォームのサイズ・位置いかんでは、背面のフォームを覆い隠してしまうことがあり得ると云うことに過ぎません。 ですから、もし「フォーム呼び出し」=「モーダルフォーム」を使う場合でも 前後のフォームのサイズや表示位置を工夫すれば、 ふたつを表示させることは可能です(ただし、フォームへのアクセスは手前のやつのみ可能)。 「ウィンドウ作成」コマンドまたはコマンドボタンからの「開く」を使う場合でも、 ふたつのフォームを表示させるに際しての考え方は、同様になろうかと思います。 つまり、ふたつのフォームのサイズや表示位置をうまく設定しないと、 片方がもう一方を隠してしまうとか云った具合に、 両方を一度に見せることはできないことになりかねません (ただし、この場合は、ふたつのフォームへの交互のアクセスは可能で、両者に前後関係はなく対等です)。 | |||
17636 | Re:フォーム2画面の同時表示 他 | 田島 | 2002/10/19-02:52 |
記事番号17632へのコメント KH様、悲しげ様 遅くなりましたが、ご指導有り難うございます。 >ですから、もし「フォーム呼び出し」=「モーダルフォーム」を使う場合で >も前後のフォームのサイズや表示位置を工夫すれば、ふたつを表示させるこ >とは可能です(ただし、フォームへのアクセスは手前のやつのみ可能)。 ということは「フォーム呼び出し」からでも2つのフォームを同時に表示することは可能な訳ですね。 ・・・しかし、色々やってみたもののうまくいきませんでした。 他の方からもご指導いただいたのですが、 一括処理でフォームを「桐」の枠から追い出し、 あたかも全く違うアプリのようにしたいのです。 他のところで質問したことと重複しますが、 現在会社にて利用しているモニタの解像度が低く、 「桐」の中でフォームを開くと「桐」の枠がかなりの幅をとってしまい、 フォームがかなりはみ出して(隠れて)しまうのです。 これを避けるために「フォーム呼び出し」のことを教わったわけです。 あれから試行錯誤しておりますが、一向に2画面を表示させることができません。 具体的にどのような構文を書けばよいのか、 もしよろしかったらご指導願えないでしょうか。 よろしくお願いいたします。 | |||
17637 | Re:フォーム2画面の同時表示 他 | KH | 2002/10/19-06:14 |
記事番号17632へのコメント 悲しげさん、おはようございます。ご無沙汰しておりまました。 お世話になりぱなしのKHです。 いやーまた私の記憶違いでしたか。恥ずかしい・・・。 オーバーラップでフォーム呼び出しコマンドで表示している場合、 モーダル状態ですが、そこでヘルプのような目的でフォームを表示した場合、 フォーム呼び出しで表示したモーダルフォームは残らないと記憶していましたが・・・。 それで、質問者のこういった場合フォーム呼び出しコマンドは使えないと思っていました。 私も嘗て同じような事を考えやろうとして断念しました。 結局、オーバーラップは諦め、ウィンドウ作成コマンドにした訳です。 V9では一括でもオーバーラップが使えるようですが、β版で試しましたが、 その後の制約が多く、あちこちで止りましたのでかなり修正箇所が多く諦めた次第でした。 嘗ての記憶を頼り、確かめずにコメントして済みません。 | |||
17638 | Re:フォーム2画面の同時表示 他 | 悲しげ | 2002/10/19-14:41 |
記事番号17632へのコメント 私が17632で主に云いたかったことは、 >「フォーム呼び出し」=「モーダルフォーム」では、「前のフォームが消え >てしまう」訳ではありませんし、表示の「複数は無理」と云う訳でもありま >せん。 と云う一般論的な事実誤認の指摘(補足)でありまして、個々の前提はあまり考慮しておりませんのです。 さて、KHさんは「オーバーラップフォームでは」と云う、前回には書かれていなかった前提の上での話のようですし、 田島さんの場合は(桐自体の枠を表示したくないために)「一括処理からフォーム呼び出しを行った場合」と云う、 一寸特殊な前提−−「フォームウィンドウの形式」がチャイルドなのかポップアップなのかは不明ですが多分後者でしょう −−の上での話のようですね。(^^;) う〜ん、桐自体の枠を表示させない方法は、ご承知のとおり幾つか既出な中で、 田島さんが選んだ「一括処理からのフォーム呼び出し」については、 私は一度も使ったことがないのでよくは判りません。 が、推測してみるに、田島さんは先ずa.wfmをフォーム呼び出しして、 次にこのa.wfmを閉じてからb.wfmをフォーム呼び出ししているのではないでしょうか? とすれば、「前のフォームが消えてしまう」のではなく「前のフォームを消して」から 次のフォームを開いている訳ですね。これだと確かに複数を表示させることはできません (つーか、わざとひとつしか表示させないようにしていると云うべきか)。(^^;) ただ、本件の発端である >例えば必要に応じてそのフォームの説明文である「ヘルプ画面」等も >同時に表示できるようにしたいのです。 程度のことなら、ことは簡単に対処できます。 まず、「次のフォーム」(仮称b.wfm)の水平垂直位置を左右・上下のいずれかの端に寄せるような設定をしてきます。 その上で「前のフォーム」(仮称a.wfm)にコマンドボタンをひとつ設定します (kevで設定する方法もありますが、牡丹の方が簡単なので)。 以下にその牡丹のオブジェクト属性の例を挙げておきます。 -------------------------------------- 標題 ヘルプ 機能名 モーダルフォーム ←「機能名の選択」の「その他」に在る 機能パラメタリスト "b.wfm" 一括起動時有効 チェックを入れる -------------------------------------- 以上、お試し下さい。 補足するに、この場合はまずa.wfmがフォーム呼び出しされていて、 次にこのa.wfmを閉じないまま、このa.wfmからb.wfmをフォーム呼び出ししている訳です。 そして呼び出されたb.wfmを閉じることによって、呼び出し元のa.wfmに戻ることになります。 この過程で、例えばa.wfmが上寄せ・左付けであって、 b.wfmが下寄せ・右寄せだったとしたら、十分にふたつのフォームを見ることが可能です。 b.wfmがヘルプ表示であれば、手前に表示されている方がむしろリーズナブルでしょう。 大元のフォームが「フォーム呼び出し」されているなら、後は基本的には そのフォームからの「フォーム呼び出し」または「モーダルフォーム」で走るのがスジでしょう。 若干の制約はありますが、DOS的な一括処理の発想法からだと、 むしろこのモーダルフォーム方式の方が(DOS的で)理解しやすいのではないかと私は思っていたりします、 特にV8では。 | |||
17639 | Re:フォーム2画面の同時表示 他 | 悲しげ | 2002/10/19-16:38 |
記事番号17637へのコメント > オーバーラップでフォーム呼び出しコマンドで表示している場合、モーダル >状態ですが、そこでヘルプのような目的でフォームを表示した場合、フォーム >呼び出しで表示したモーダルフォームは残らないと記憶していましたが・・・。 う〜ん、おっしゃる意味が判らない。(?_?) オーバーラップか否かにかかわらず「フォーム呼び出し」コマンドで呼び出したフォームは 全てモーダルフォームの筈です。 で、そのことと後に続く記述がどう関係してくるのか? 「モーダルフォームは残らない」とはどのような現象を指すのか? 「ヘルプのような目的で」ないフォームだと残るのか? etc.あるいは、ここで仰りたかったことはオーバーラップとポップアップ・チャイルドウィンドウの 挙動の違いについてなのでしょうか? | |||
17640 | Re:フォーム2画面の同時表示 他 | KH | 2002/10/19-17:32 |
記事番号17639へのコメント >オーバーラップか否かにかかわらず「フォーム呼び出し」コマンドで呼び出し >たフォームは全てモーダルフォームの筈です。で、そのことと後に続く記述が >どう関係してくるのか? 「モーダルフォームは残らない」とはどのような現 >象を指すのか? 「ヘルプのような目的で」ないフォームだと残るのか?etc. >あるいは、ここで仰りたかったことはオーバーラップとポップアップ・チャイ >ルドウィンドウの挙動の違いについてなのでしょうか? 意味不明でしません。 桐の画面を隠すという文面からオーバーラップであると考えた事が違っていましたか。 細かい言葉の使い方は相当間違っているかもしれませんが、言いたかった事は オーバーラップのAフォームを表示するのはフォーム呼び出しコマンドしか 一括では使えない筈だったと思います。 で、フォーム呼び出しコマンドでオーバーラップのAフォームを開くとモーダル状態です。 そこから別ウインド(この場合ヘルプの目的のような説明のコメントを表示するフォームだと思われます) 開くと大きい小さいに関係なく新しいBフォームが表示され、 開いているオーバーラップのAフォームは消えてしまってAとB2画面は出来ない状態だったと思います。 が言いたかった事はお分かりでしょうか。 | |||
17642 | Re:フォーム2画面の同時表示 他 | 悲しげ | 2002/10/19-21:38 |
記事番号17640へのコメント この話題をこんなに引き摺っていていいのだろうか、との気兼ねが少しありつつも(^^;)、もう少し続けてみますか? まず、オーバーラップ・ポップアップ・チャイルドの意味(定義)が違っているのではないか? との疑念がひとつ。(^^;) ※これらについては、フォームのオブジェクト属性で「ウィンドウの形式」のところに マウスで[?]牡丹を持ってくると簡単な説明がでます。 これから推すに、「フォーム呼び出し」したものは、フォーム定義の如何 にかかわらず、全て「ポップアップ」ウィンドウになりそうな……。 KHさんの仰る「オーバーラップ」は、むしろ「ポップアップ」ウィンドウに近いような気がします。 フォームで「オーバーラップ」として定義したものが「オーバーラップ」ウィンドウとして挙動するのは、 そのフォームを一番最初に開いた時だけだったような記憶があります。 >で、フォーム呼び出しコマンドでオーバーラップのAフォームを開くとモーダル >状態です。 ここは多分「ポップアップ」ウィンドウだと思いますが、ともかくモーダル状態ではあります。 >そこから別ウインド(この場合ヘルプの目的のような説明のコメント >を表示するフォームだと思われます)開くと 「開く」ですか? この場合はどうやって「開く」のでしょう? 「モーダルフォーム」ならよく判るのですが、コマンドボタン「開く」はをやろうとしても どうしても使用不可状態なのです(それもそもはず、Aフォームがモーダルウィンドウだから)。 が、(未検証ながら)例えば「ウィンドウ作成」コマンドを使って開いたとしても >大きい小さいに関係なく新しいBフォームが表示され、開いているオーバ >ーラップのAフォームは消えてしまって 新しいBフォームは、むしろ逆に、モーダルウィンドウたるAフォームの後ろにしか表示されない (見えない)のではないでしょうか? なぜならAフォームがモーダルで、Bフォームはこの場合モードレスだから(ただし未検証)。 Aフォームを閉じてからBフォームを「フォーム呼び出し」している訳ではありませんよね? う〜ん、多分お互いに全然別なことを云ってるんでしょうね。(^^;) 第三者の通訳が必要かもしれません。(^^;)(^^;) | |||
17643 | Re:フォーム2画面の同時表示 他 | KH | 2002/10/19-22:29 |
記事番号17642へのコメント >「開く」ですか? この場合はどうやって「開く」のでしょう? >「モーダルフォーム」ならよく判るのですが、コマンドボタン「開く」は >をやろうとしてもどうしても使用不可状態なのです(それもそもはず、A >フォームがモーダルウィンドウだから)。 >が、(未検証ながら)例えば「ウィンドウ作成」コマンドを使って開いた >としても 日本語が正しく使えなくて済みません。 「Bフォームを表示する」ボタンををクリックするを開く略して間違えた表現をしてしまいました。 私が勝手にAフォームについては、桐を隠すためのオーバーラップのメインメニューに当るフォームであろうと 推測していましたがそこから違ってましたか? 私の勘違いでしたらゴメンなさい。コマンドの挙動については、 フォーム呼び出しコマンド ≒ メニュー2コマンド と感じていましたが・・・。つまり、コマンドボタンを何か選択したら 跡形もなくそのフォームはなくなる(嘗て3年前の体験で済みません) 日本語・桐用語正しく使えなくて申し訳ありません・・・。 | |||
17646 | Re:フォーム2画面の同時表示 他 | 悲しげ | 2002/10/20-17:59 |
記事番号17643へのコメント どもっ、KHさん 結論としては、「フォーム呼び出し」コマンドを「メニュー2」コマンドと混同していた、って辺りで締めましょうか。(^^;) | |||
17647 | Re:済みません。試してみました | KH | 2002/10/20-22:19 |
記事番号17646へのコメント >と混同していた、って辺りで締めましょうか。(^^;) もっと早く試せばよかったのですが、悲しげさんの方法では確かに出来ました。 でも私も田島さんと同じ消える経験をしている(ココの挙動をメニュー2コマンドと似ている、いや、同じ挙動と感じました) で、やっぱり消える現象は再現できました。 フォーム呼出しコマンドで表示したAフォームからBフォームを表示するためのコマンドボタンに 「一括へ戻る」を指定しているのではないでしょうか。 一括に戻って一括処理でBフォームを表示しようとしていればAフォームは消えるようです。 フォーム呼び出しコマンド=一括でオーバーラップウインドウを表示できる唯一のコマンド・・・ という先入観と他のことがごっちゃに出てしまいました。 大変失礼いたしました。 | |||
17648 | Re:コマンドボタン「一括に戻る」 | 悲しげ | 2002/10/21-11:39 |
記事番号17647へのコメント どもっ、KHさん コマンド牡丹「一括に戻る」のことでしたか。確か「ウィンドウ会話」コマンドと組み合わせてやるやつでしたよね。 う〜ん、そのやり方はv8になってから一度も使っていないので、挙動とかすっかり忘れています。(^^;) ともあれ、もし田島さんが使っているのがそのやり方だとしたら、 アレはv7向けのかなり苦しいものだったような印象もありますので、 これからv8で作るものには、私は個人的にはお勧めしません。>田島さん | |||
17649 | Re:コマンドボタン「一括に戻る」 | Ogo | 2002/10/21-11:57 |
記事番号17648へのコメント >コマンド牡丹「一括に戻る」のことでしたか。 全く話の内容を追ってはいませんが... コマンドボタンの内容を「一括に戻る」にせずに 「閉じる」にすれば、この程度はクリアできるのでは? | |||
17652 | Re:フォーム2画面の同時表示 他 | 田島 | 2002/10/21-16:36 |
記事番号17627へのコメント KH様、悲しげ様そして、ogo様、ご指導本当に有り難うございました。 途中、私の説明不足により大変ご迷惑をお掛けしました。 皆様のご指導を考慮し何とかできるようになりました。 感謝しております。 最初は確かに2つのフォームのボタンを「一括処理に戻る」で定義しておりましたが、 今Aフォームから別のBフォームを呼び出す時にボタンの機能名に「モーダルフォーム」を指定し、 そしてBのボタンには「閉じる」を指定したところ、 私のしたいことができました。 つまり2フォーム同時表示が可能となりました。 これでメインのフォームで作業して、判らないことがあれば「ヘルプを見る」という、 ひとつの流れができあがりました。 皆様、本当に有り難うございました。 | |||
17653 | Re:フォーム2画面の同時表示 他 | 田島 | 2002/10/21-16:55 |
記事番号17652へのコメント 皆様には判りきったことかも知れませんが、ちょっと抜けてましたので補足しておきます。 >今Aフォームから別のBフォームを呼び出す時にボタンの機能名に「モーダルフォーム」を その「機能パラメータリスト」にBフォーム名をです。 本当に有り難うございました。 また判らないことがありましたら是非よろしくお願いいたします。 |