過去の桐井戸端BBS (桐ver.8)
10315 フォームを閉じる手順について フォーマー 2001/03/15-17:49
こんにちは、過去ログを検索したのですが、いまいちよく理解出来ないので教えて欲しいのですが。
現在一括処理を利用して下記のような事をしようと思ってます。

Aフォームから、コマンドでBフォームを呼び出す。
Bフォームには実行しますか?「はい」「いいえ」とコマンドがあります。
「いいえ」を押すとBフォームが閉じるだけなのですが、「はい」を押すと、一括処理が動きます。
そして、実行し終えると同じにBフォームを閉じさせたいのですが、上手く行きません。
現在は「はい」のコマンドで一括処理を開き、その次に閉じるを選択してるのですが、無理なようです。
何かいい案ありませんでしょうか?
よろしくお願い致します。
10316 Re:フォームを閉じる? 佐田 守弘 2001/03/15-18:55
記事番号10315へのコメント
フォーマーさん
一括処理コマンドの中に、既に開かれているフォームを閉じるコマンドはありません。
閉じる事ができるのは、ウィンドウ作成コマンドで一括処理の中から開いたフォームウィンドウのみです。
さて、御質問の件、つまりAフォームからBフォームを開き、そこから実行した一括処理でBフォームを閉じたいとの事ですが、
一括処理では実行できないので、イベントで実行して下さい。

@フォームを閉じるボタンを作っておく
コマンドボタンを作り、「閉じる」機能を設定して下さい。このボタンをクリックしたらフォームが閉じる事を確認しておいて下さい。
Aイベント中でコマンドボタンを実行する
「メソッド呼び出し 実行」コマンドを使い、上記の終了するコマンドボタンを実行させます。
これでボタンを押したのと同じ事になり、フォームが閉じます。
なお、この「メソッド呼び出し 実行」は、一括処理からは実行できませんから、イベントで実行する必要があります。

佐田守弘(KS-00119)
10329 Re:フォームを閉じる? フォーマー 2001/03/16-13:13
記事番号10316へのコメント
ありがとうございます。
しかし、このイベントはどの時点で実行するのでしょうか?
一括処理ばかり勉強していて、イベントに関してはさっぱり意味がわかりません・・・
10330 Re:フォームを閉じる? フォーマー 2001/03/16-13:28
記事番号10316へのコメント
名札 メイン
メソッド呼び出し,戻り値 = 1 ,\
  キャンセル .実行()


このような感じで、作成してみたのですが、「:使用できない文字が使われています」とエラーが出てフォームが開けません。
イベントのヘルプは見にくくて最悪・・・
ブック形式で出して欲しいなぁ。
10331 Re:フォームを閉じる? HERB 2001/03/16-13:42
記事番号10330へのコメント
>このような感じで、作成してみたのですが、「:使用できない文字が使われています」とエラ
>ーが出てフォームが開けません。

私もこのコメントみて試しています、以下のように、記述してうまく動きました。

メソッド呼び出し 戻り値 =&閉じる,@閉じる.実行( )

オブジェクト名の前に@マークをつけます、ヘルプ

C:\K3\KIRIV8\Help\INDEX.HTM

C:\K3\KIRIV8\Help\INDEX.HTMオブジェクト名

に解説が載っています。

10334 やはりよく理解出来ない・・・ フォーマー 2001/03/16-15:37
記事番号10315へのコメント
色々とアドバイスを試しているんですが、やはり上手く行きません。
現在は下記のようになってるんですが・・・

Aフォームのコマンド「Bフォーム」を押す
      ↓
Bフォームが開く(「はい」と「いいえ」のコマンドオブジェクト)
      ↓
Bフォームのコマンド「はい」を押す(「いいえ」を押すと閉じる)
      ↓
一括処理が動く
      ↓
Bフォームは開いたままだが、ここで自動で閉じたい。


上記の状態で、Bフォームの「はい」にイベントをどのように乗せればいいのか、いまいち良く理解出来ません。
まず、マウス左クリックでいいんでしょうか?
そして、イベントにはどのように記述すればいいのでしょうか?
10343 Re:やはりよく理解出来ない・・・ みすず 2001/03/16-23:42
記事番号10334へのコメント
>Aフォームのコマンド「Bフォーム」を押す
>      ↓
>Bフォームが開く(「はい」と「いいえ」のコマンドオブジェクト)
>      ↓
>Bフォームのコマンド「はい」を押す(「いいえ」を押すと閉じる)
>      ↓
>一括処理が動く
>      ↓
>Bフォームは開いたままだが、ここで自動で閉じたい。

一括処理ってコマンドボタン 「開く」 で実行していますか?
そうだと仮定して書きますが、
上記の「一括処理が動く」の処理そのものをイベントで行う、と先生方は言っていると思います。
すなわち、

1 Aフォームのコマンド「Bフォーム」を押す
2 Bフォームが開く(「はい」と「いいえ」のコマンドオブジェクト)
3 Bフォームのコマンド「はい」を押す(「いいえ」を押すと閉じる)
4 Bフォームのコマンド「はい」のイベントが動く
5 Bフォームのコマンド「はい」の最後に「いいえ」ボタンを押す処理
メソッド呼び出し・・ を実行する

をするという事だと思いますけど。

どうしても一括処理で行いたいのであれば、別の方法もあります。
別の方法

1 メインの一括処理からAフォームを開く
2 Aフォームのコマンド「Bフォーム」を押す。Aフォームのコマンドは
  「一括処理に戻る」にしておく。戻ってメイン一括処理から「Bフォーム」を呼び出す
3 Bフォームが開く(「はい」と「いいえ」のコマンドオブジェクト)
4 Bフォームのコマンド「はい」を押す(「いいえ」を押すと閉じる)
  ただし、Bフォームのコマンドは「一括処理に戻る」にしておく 
5 メインの一括処理に戻って処理する。
5 実行がおわったら、再度Aフォームを呼び出す →1に戻る

上記方法だと、5番を実行する時点ですにBフォームは消滅しています。



10361 イベントファイルは桐が作ります 今村 誠 2001/03/18-09:25
記事番号10330へのコメント
こんにちは、初めましてイベントは難しいかもしれませんが、
一括処理(CMD)をたくさん書くよりやりたいことがその場で出来て便利です。
また太り気味のCMDも分散されて、私の場合3割くらい減量されました。

フォーマーさんは掲載されたイベントファイルを自分で作ったのではありませんか。
イベントファイルは桐が勝手に作ってくれるファイルです。
一度イベントファイル(なんとかKEV)を削除された後にオンラインヘルプの
一番上左端にHOMEが2行目にINDEX3行目にイベントハンドラ4行目にメソッド呼び出しがでている状態で
【イベント処理】 の中の 内容を確認しましょう と定義してみましょう を参考に作成すると。

名札 メイン


手続き定義開始 t郵便::ソース値更新()  《この行は桐が作ってくれます》
   代入 &MENU3=2  《ここと直ぐ下の行は自分で書きます》
メソッド呼び出し @sw届先.@c行追加.実行() /* 得意副から届先にフォーカス移動と行追加*/
手続き定義終了             《この行も桐が作ってくれます》  

のような感じのファイルを桐が作成します。イベントファイルのことを勉強したい
ときは佐田先生のページhttp://www.m-sada.com/を訪れるのも良いと思います。
【多遊】さんのページhttp://www2u.biglobe.ne.jp/~s_tanaka/index.htm
でダウンロードされてイベントの書き方を覚えると良いと思います。
私もここで教えていただいてCMDの時には出来なかったことが、
イベントで簡単に実現できたことがたくさんあります。
頑張りましょう。

10362 Re:やはりよく理解出来ない・・・ ふぃるど 2001/03/18-09:55
記事番号10334へのコメント
フォーマーさん、おはようございます。
桐初心者のふぃるどです。

>Aフォームのコマンド「Bフォーム」を押す
要するに、Aフォームに「Bボタン」を張り付けてそのボタンを押す事ですよね?
すると、「Bフォーム」が開いて

>Bフォームが開く(「はい」と「いいえ」のコマンドオブジェクト)
こういった表示になって欲しいわけですね。
と言うことは、Aフォーム上の「Bボタン」に「手続き実行」を指定して機能パラメーターリストの処に
「Bボタン」とでもしておき、イベント処理ファイル「Aフォーム.KEV」に
*-----------------------------------------
手続き定義開始 Bボタン()
  変数宣言 整数{&返答n}
  メッセージボックス "Bボタンの処理をしますか?。",アイコン=?,ボタン指定=5,&返答n
  if (&返答n=6)    */ 「はい」が押された、そして、窓は消えます /*
    ここで、一括実行されます。
  else
いいえが押された時の処理
  end
手続き定義終了
*-----------------------------------------
とこんな感じで良いと思いますが。
要するに、Bフォームは単に入力の可否を選択する為だけな様ですので「メッセイジボックス」と言う
「桐」で用意されたフォーマットの窓を使うべきだと思います。
全然違ったお話でしたら...どうもです。

戻る