過去の桐井戸端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へのコメント 理由はわかりませんが できました ありがとうございました |