過去の桐井戸端BBS (桐ver.9)
29117 メインフォームを開く前にフォーム呼び出しで別のフォームを開く設定をしたが時々アクティブにならないことがある Rockey 2005/02/21-10:16
メインフォームを開く前にパスワードを開く処理を作りました。
フォームをメイン.wfm、パスワード.wfmとします。
メイン.wfmのフォーム開始イベントの中で、フォーム呼び出しでパスワード.wfmを開いて、
入力判定がOKであれば、閉じてメイン.wfmを開くようにしました。
ところが、パスワード.wfmが開いたとき7対3くらいの割合で、アクティブにならず、
マウスでクリックしてからでないと入力できません。
(アクティブになるのが3で、ならないのが7で、なるときとならない時があるのが不思議)
パスワード.wfmのイベントにメソッド呼び出し アクティブ設定を記述しましたが、できません。
もちろん、パスワード.wfmのイベントのフォーム開始では動かないのはわかっています。
タイマーイベントも試しましたがダメでした。
この新しいメソッドのアクティブ設定について教えていただける方がいらっしゃいましたらお願いします。
29118 Re:アクティブ設定 うにん 2005/02/21-10:29
記事番号29117へのコメント

>ところが、パスワード.wfmが開いたとき7対3くらいの割合で、アクティブになら
>ず、マウスでクリックしてからでないと入力できません。
>(アクティブになるのが3で、ならないのが7で、なるときとならない時があるの
>が不思議)

そのとき、どのウィンドウがアクティブなんでしょうか?
モーダルウィンドウをひらいててアクティブでないってことはExplorerか何か?

>パスワード.wfmのイベントにメソッド呼び出し アクティブ設定を記述しましたが、
>できません。

どのイベントに?

>この新しいメソッドのアクティブ設定について教えていただける方がいらっしゃい
>ましたらお願いします。

実験してませんが、モーダルウィンドウがあったら他のウィンドウをアクティブにしようがないので、
アクティブ設定も無効な気がします。

29120 Re:アクティブ設定 Rockey 2005/02/21-10:56
記事番号29118へのコメント
うにんさん。早速ありがとうございます。

申し遅れましたが、環境は Win2000pro 桐ver9sp1 です。

>そのとき、どのウィンドウがアクティブなんでしょうか?
>モーダルウィンドウをひらいててアクティブでないってことはExplorerか何か?

どれもアクティブではありません。

>どのイベントに?
タイマー1のタイマー値を0.5にしておいて

手続き定義開始 フォーム::タイマー1()
*/ フォームを表示したらアクティブにする
method ハンドル=&hwindow,戻り値=&EOC,@フォーム.アクティブ設定()
cond(&EOC=1)object @フォーム.タイマー1 = "0"
手続き定義終了

今のところは上のようにやって試しているところです。

いろいろ試していると、桐からメイン.wfmをダブルクリックするのと
定義画面から編集に切り替える時は、アクティブにならないようです。
(なる時もあります。それがどういう条件なのか調査中です。)

でも、ショートカットを作成してそれをクリックしたところ
アクティブになりました。今のところ100%です。
ショートカットから起動するつもりでしたので、
とりあえず、これでOKなのですが...


29121 Re:アクティブ設定 Rockey 2005/02/21-11:11
記事番号29120へのコメント
やはり、100%はアクティブになりません。
できたり、できなかったりです。

他に何も起動していない状態でも同様でした。

29122 Re:アクティブ設定 うにん 2005/02/21-13:11
記事番号29120へのコメント

>>モーダルウィンドウをひらいててアクティブでないってことはExplorerか何か?
>
>どれもアクティブではありません。

Windowsで何もアクティブでないと言うことはないと思うのですが。
桐のウィンドウがアクティブで、中にアクティブでないフォームが表示されている?

フォーム呼び出しだけのイベントをフォーム開始に定義してテストしてみましたが、
再現できませんでした。

パスワードのフォームからメインの方を操作しようとしたりしてないですよね?
(呼び出されてる間は、まだメインフォームが表示されていないので)

いろいろ試していると、「メインのkevは他ユーザが使用中です」とかいわれてしまいました。
桐を終わらせてもKIRI9.EXEのプロセスが残っていました。
何か変かも。

29123 Re:アクティブ設定 hidetake 2005/02/21-14:14
記事番号29117へのコメント
>メイン.wfmのフォーム開始イベントの中で、フォーム呼び出しでパスワード.wfmを
>開いて、入力判定がOKであれば、閉じてメイン.wfmを開くようにしました。

メインの方のフォームが不安定な状態の「フォーム開始イベント」で
別のフォームを呼び出すのが問題なのでは無いでしょうか?

メインの方のフォームが全て正常に開かれたあとで「パスワード.wfm」は開かれるようにタイマー使ったり、
あるいは「フォーム開始時実行コマンドボタン」を使うとか?
29137 ありがとうございます Rockey 2005/02/24-10:45
記事番号29123へのコメント
皆さんありがとうございます。
メインフォームにコマンドボタンを作って、フォームを開いた時
パスワードフォームを開くようにしました。
まだ、アクティブにならない時もありますが
なる確率が上がりました。

そのほかも色々試してみます。
29138 Re:ありがとうございます hidetake 2005/02/24-11:26
記事番号29137へのコメント
>メインフォームにコマンドボタンを作って、フォームを開いた時
>パスワードフォームを開くようにしました。

フォーム開始時実行ボタンでも他のウィンドウを開始したり
する場合には、どうも不安定な場合があるようですね!
桐はこの辺のフォーム開始時では過去にもいろんなトラブルと言うか不安定な状態もありました。

タイマーを使った方がより安定して動作するように思いますが、
そっちの方はどうだったでしょうか?
29153 Re:ありがとうございます Rockey 2005/02/25-11:47
記事番号29138へのコメント
たしかに、タイマーでパスワードフォームを0.5秒ずらして開いたところ、今のところ100%です。
引き続き調査してみます。

戻る