過去の桐井戸端BBS (桐ver.9)
30702 ボタンを押すたびに別のフォームが新たに呼び出されて表示されてしまう ちびねこ 2005/08/05-09:07
別スレにしました

メインメニューをフォームでつくって さらに下層にデータ更新作業メニューフォームをつくりました

データ更新しようと思い、データ更新作業をしていましたが
データ更新作業メニュー画面が見えなくなっていたので 表示されていた
メインメニューのボタンを押したら メインメニューの背後に隠れていたようで
データ更新用のメニューが表示されました。

が、データ更新用メニューが表示されているのに別のフォームの背後に隠れている場合、
メインメニューに作成してあるデータ更新作業メニューフォームが表示するボタンを押した場合、
既に表示されているデータ更新用メニューが最前面に表示されるのではなく
新たなデータ更新用メニューが表示されてしまいます。
 ボタンを押すたびにデータ更新用メニューが新たに呼び出されて表示されてしまうのです。

メインメニューのボタンを押したとき、別のフォームの背後にデータ更新用
メニューが隠れている場合は その画面が最前面にくるようにできるでしょうか.....

何度もすみません(><)
30703 Re:メニュー画面の作成について 宮城 2005/08/05-10:38
記事番号30702へのコメント
残念ながらどうやってるかの記載、これでは相当不足です。よって勝手に想像します。

メインメニューのコマンドボタン機能は「ファイル 開く」。
これでこのフォームがなんかのはずみでメインメニューの裏にまわってしまう。

このとき、最前面にもってきたければ、そのフォームの一部でもみえてればそこをクリック、
見えなければ「ウィンドゥ」メニューで選択すればいいだけのこと。

どうしてもコマンドでやりたければ(ちゃんとハンドルを把握しておいて)

メソッド呼び出し  ハンドル = <ハンドル>,戻り値 = <変数名>,\
@フォーム.アクティブ設定()

でも、こんなこと普通しないんです。

呼び出したフォームが裏にまわったりしなければいいんですよね?

呼び出すフォームの「フォーム」のタブ→「ウィンドウの形式」、
「チャイルド」を「ポップアップ」に変えます。こうすれば閉じない限り常に前面にきます。

これでいいのではありませんか?
30704 Re:メニュー画面の作成について アックン 2005/08/05-11:20
記事番号30702へのコメント
ちびねこさん
メインのメニューの方に、イベントを設定すればいいですよ。

イベントは次の2箇所に記述します。
(1)メイン部
(2)検索メニューを出すコマンドボタンの左クリックイベント

名札 メイン (←この行は桐が自動作成)
cond( .not#v( "SubMenuWindow" ) ) var 固有 , 整数{ &SubMenuWindow }
* (←この行は桐が自動作成)

手続き定義開始 ボタン_3::マウス左クリック(・・ (←この行は桐が自動作成)
 if( &SubMenuWindow )
   method ハンドル = &SubMenuWindow ,戻り値 = &秒 ,@フォーム.アクティブ設定()
 else
   ウィンドウ作成 "SubMenu.wfm", ハンドル=&SubMenuWindow , オプション=通常
 end
手続き定義終了   (←この行は桐が自動作成)

注意: @フォーム の フォーム は半角で記述してください。
(この掲示板は半角を全角で表示します。)

アックン(=^・^=)
30705 Re:メニュー画面の作成について アックン 2005/08/05-11:46
記事番号30704へのコメント
ちびねこさん> 補足です。
検索メニューフォーム(サブメニューフォーム)を開くときは、
コマンドボタンの 機能名:開く を使わないでください。
左クリックイベントの「ウィンドウ作成」コマンドで開きますから。

30706 Re:メニュー画面の作成について アックン 2005/08/05-11:58
記事番号30703へのコメント
宮城さん>
>これでいいのではありませんか?
それだと、サブメニューフォームがいくつも出現しますよ。(--;
ウィンドウ作成コマンド使っても同じです。

サブメニューフォームには編集対象表がないので、
すでに表は開かれていますというようなエラーメッセージが出ません。
いくらでも増殖します。(^^;

30707 Re:メニュー画面の作成について 宮城 2005/08/05-12:47
記事番号30706へのコメント
ありゃま。ポップアップって、後面のフォームのオブジェクト
触れちゃうんですか。

とすれば「オーバーラップ」しかないですね。

30709 Re:メニュー画面の作成について アックン 2005/08/05-14:06
記事番号30707へのコメント
宮城さん
>ありゃま。ポップアップって、後面のフォームのオブジェクト
>触れちゃうんですか。
ポップアップでいいんですよ。
背面のメニューフォームを触ってアクティブにできないと困るでしょ。(^^;

30710 できました ちびねこ 2005/08/05-14:31
記事番号30705へのコメント
何回押しても 同じサブメニュー画面がでます(・∀・)
ありがとうございました

またよろしくお願いしますm(._.)m ペコッ
30713 Re:できました アックン 2005/08/05-14:59
記事番号30710へのコメント
ちびねこさん> 大切なことを忘れてました。
検索フォーム(サブメニューフォーム)をいったん閉じて、その後にメインメニューフォームから
検索フォームを再度開こうとすると、エラーになります。

エラーを回避するイベントを設定してくださいね。すみません。
イベントを設定する場所は、
検索フォーム(サブメニューフォーム)の「フォーム終了」イベントです。
(今回はメインメニューフォームはいじりません。)

手続き定義開始 フォーム::フォーム終了()(←この行は桐が自動作成します。)
&SubMenuWindow = ""
手続き定義終了(←この行は桐が自動作成します。)

30714 直そうとひらこうとしたら... ちびねこ 2005/08/05-17:08
記事番号30713へのコメント
KU1054:無効なウィンドウハンドルです
とでてしまいました



サブメニューに行くためのイベントは 次のとおりです

手続き定義開始 インポート::マウス左クリック(長整数 &マウス位置[2],長整数 &明細番号,長整数 &フラグ,参照 長整数 &処理中止)
 if( &SubMenuWindow )
   method ハンドル = &SubMenuWindow ,戻り値 = &秒 ,@フォーム.アクティブ設定()
 else
   ウィンドウ作成 "インポート.wfm", ハンドル=&SubMenuWindow , オプション=通常
 end
手続き定義終了

すみません教えてください(ノ_・。)
30715 Re:できました ちびねこ 2005/08/05-17:16
記事番号30713へのコメント
>手続き定義開始 フォーム::フォーム終了()(←この行は﷯桐﷯が自動作成します。)
> &SubMenuWindow = ""
>手続き定義終了(←この行は﷯桐﷯が自動作成します。)

サブメニューのイベント定義で フォームというのはなかったんですが...

たびたびすみません....

30716 Re:直そうとひらこうとしたら... アックン 2005/08/05-17:58
記事番号30714へのコメント
ちびねこさん>
メインメニューのkev
名札 メイン
 cond ・・ ←この行がありますか?

30717 Re:できました アックン 2005/08/05-17:58
記事番号30715へのコメント
ちびねこさん>
>サブメニューのイベント定義で フォームというのはなかったんですが...
インポート.wfmの定義画面の
フォームの周囲の白い台紙(ワークスペース)を右クリック→「オブジェクトの属性」

「オブジェクトの属性」パネル
「イベント」(タブ)→「イベントファイル名」にファイル名を入力してありますか?
そのすぐ下の「イベント」→「フォーム終了」をダブルクリックすると、
>>手続き定義開始 フォーム::フォーム終了()
が自動作成されます。

・・・・?
フォーム は半角ですよ。
(この掲示板は半角を全角に自動変換して表示します。)

30796 桐再起動でできました ちびねこ 2005/08/08-15:29
記事番号30717へのコメント
理由はわかりませんが できました
ありがとうございました

戻る