過去の桐井戸端BBS (桐ver.8)
10725 サブフォームのテキストを開いた直後に入力待ち状態にしたい。 だるま 2001/04/06-15:33
WIN2K、桐v8sp6、イベント、オーバーラップフォーム

サブフォームのテキストを開表直後に入力待状態(カーソル点滅)にしたいのですがうまくいきません。(;>_<;)ビェェン
フォーム(メイン位置・サブ位置関係なく)をクリックすると、その状態になります。(T.T)
 
メインフォームの中にサブフォームが三つ有り、
サブフォーム3のフォーム開始イベントに下記のように記述しています。

手続き定義開始 フォーム::フォーム開始(長整数 &表番号)
 代入 &窓等操作4数 = &表番号
 オブジェクト操作 ハンドル = &窓等操作1数, \
          @サブフォーム_1.画面表示 = "0"
 オブジェクト操作 ハンドル = &窓等操作1数, \
          @サブフォーム_2.画面表示 = "0"
 オブジェクト操作 ハンドル = &窓等操作1数, \
          @サブフォーム_3.画面表示 = "1"
 メソッド呼び出し @テキスト_1.フォーカス設定()
 メソッド呼び出し @フォーム.更新モード設定( 2 )
手続き定義終了

 なにとぞ宜しくお願いいたします。
10727 サブフォーム名が指定していないからでは 佐田 守弘 2001/04/06-16:45
記事番号10725へのコメント
だるまさん
イベントの最後の方の
> メソッド呼び出し @テキスト_1.フォーカス設定()
> メソッド呼び出し @フォーム.更新モード設定( 2 )
は、サブフォームのオブジェクトですね。
であれば、サブフォーム名を付けてオブジェクトを指定しないとだめでしょう。

1つのイベントでメインフォームとサブフォームを扱おうとすると、大概はこの種のエラーに遭遇する事が多いものです。

佐田守弘(KS-00119)

10728 Re:サブフォームのテキストを開表直後に入力待状態にしたい。 悲しげ 2001/04/06-16:49
記事番号10725へのコメント
どもっ、だるまさん

 メソッド呼び出し ハンドル=&hwindow\
  ,@サブフォーム_1.@フォーム.更新モード設定(2)

としては如何?
10729 Re:サブフォームのテキストを開表直後に入力待状態にしたい。 悲しげ 2001/04/06-16:59
記事番号10725へのコメント
もひとつついでに云えば

> オブジェクト操作 ハンドル= &窓等操作1数, \
>          @サブフォーム_1.画面表示 = "0"

の記述は意味があるのかどうか?
つまり、フォーム開始時にハンドル番号をこちらから指定することは無いはずだし、
もしこの時(メインフォーム)のハンドル番号を取得保存しておきたければ、

 &窓操作1数=&hwindow

としておいて、以降の記述または他のフォームからのハンドル指定に利用することになろうかと思います。

自フォーム内でハンドルを明記するのは、サブフォームからメインフォーム(のオブジェクト)を
明示するために使うくらいしか、私は思い付きませんけど。(^^;)
10730 Re:上手くいきません。 だるま 2001/04/06-17:33
記事番号10727へのコメント
佐田先生、いつも早々とご回答頂きましてまことに有り難う御座います。
しかし、上手くいきません。

下記のように書き換えてみました。

手続き定義開始 フォーム::フォーム開始(長整数 &表番号)
 代入 &窓等操作4数 = &表番号
 オブジェクト操作 ハンドル = &窓等操作1数, \
          @サブフォーム_1.画面表示 = "0"
 オブジェクト操作 ハンドル = &窓等操作1数, \
          @サブフォーム_2.画面表示 = "0"
 オブジェクト操作 ハンドル = &窓等操作1数, \
          @サブフォーム_3.画面表示 = "1"
 メソッド呼び出し ハンドル = &hwindow, @サブフォーム_3.@テキスト_1.フォーカス設定()
 メソッド呼び出し ハンドル = &hwindow, @サブフォーム_3.@フォーム.更新モード設定( 2 )
手続き定義終了

でもだめなんです。(;>_<;)ビェェン

気になるのは、フォームをクリックすると、テキストボックスが点滅状態になることです。
それと、上記フォーム開始イベントはサブフォーム_3のものなので、
ハンドルとサブフォーム名は省略しても・・・・解らない(;>_<;)ビェェン

10731 Re:上手くいきません。 だるま 2001/04/06-17:39
記事番号10728へのコメント
悲しげさん、いつも有り難う御座います。m(__)m
佐田先生にもご返事しましたが上手くいきません。(;>_<;)ビェェン
引き続きアドバイスのほどお願いいたします(^∧^)
10733 Re:サブフォームのテキストを開表直後に入力待状態にしたい。 だるま 2001/04/06-17:53
記事番号10729へのコメント
悲しげさん、早速のご指摘まことに有り難う御座います。
今作っているものは、

 メイン
  サブ1
  サブ2→kevでほとんど動かしています。ここからあっちゃこっちゃ
  サブ3                 フォームをいじります。

やっぱり駄作ですよね。(-_-;)

そして&hwindowがころころ変わってしまう様な気がして・・・・
&hwindowを代入した変数しか使えないのです。(-_-;)

10734 Re:上手くいきません。 悲しげ 2001/04/06-18:04
記事番号10731へのコメント
どもっ、だるまさん、
多分全然関係ないだろうけど、ダメモトで(^^;)
次のようにしてちょいと試してみて下さい。

手続き定義開始 フォーム::フォーム開始(長整数 &表番号)
 &窓等操作4数=&表番号,&窓等操作1数=&hwindow
 オブジェクト操作 ハンドル=&hwindow\
         ,@サブフォーム_1.画面表示="0"\
         ,@サブフォーム_2.画面表示="0"\
         ,@サブフォーム_3.画面表示="1"
手続き定義終了

手続き定義開始 フォーム::タイマー1()
 /*メインフォームにタイマー1イベントを設定しておく*/
 オブジェクト操作 ハンドル=&hwindow,@フォーム.タイマー1="0"
 メソッド呼び出し ハンドル = &hwindow\
          ,@サブフォーム_3.@テキスト_1.フォーカス設定()
 メソッド呼び出し ハンドル = &hwindow\
          ,@サブフォーム_3.@フォーム.更新モード設定(2)
手続き定義終了
10735 Re:サブフォームのテキストを開表直後に入力待状態にしたい。 尾形 2001/04/06-18:05
記事番号10733へのコメント
メインフォームの開始時ボタンを設定して
その手続きにて
メソッド呼び出し @サブ1.@tサブの項目.フォーカス設定()
メソッド呼び出し @サブ1.@フォーム.更新モード設定(6)
では?

10736 Re:サブフォームのテキストを開表直後に入力待状態にしたい。 尾形 2001/04/06-18:23
記事番号10735へのコメント
すいません
メインフォームの開始時ボタンを設定して
その手続きにて
メソッド呼び出し @サブ3.@テキスト_1.フォーカス設定()
メソッド呼び出し @サブ3.@フォーム.更新モード設定(2)
では?

ですね (^^;


10737 Re:試してみましたが× だるま 2001/04/06-18:55
記事番号10734へのコメント
悲しげさん、本当有り難う御座います。<m(__)m>

試してみました。だめでした。(;>_<;)ビェェン

10738 Re:サブフォームのテキストを開表直後に入力待状態にしたい。 だるま 2001/04/06-19:19
記事番号10736へのコメント
尾形さん、お騒がせしております。また、早速のアドバイス、有り難う御座います。m(__)m

「開始時ボタン」の意味が分からなかったのですが、勝手にメインフォームのフォーム開始イベントと思い、
やってみましたが、更新モードで×です。

 引き続き、お時間が有れば、ご指示をお願いいたします。(^∧^)、オ、ネ、ガ、イ。
10739 Re:サブフォームのテキストを開表直後に入力待状態にしたい。 いかすぱげてぃ 2001/04/06-19:19
記事番号10736へのコメント
まず、基本的な考え方として、「フォーム開始」イベントは
「フォームウインドウが開く直前に起きる」イベントであって、
正確な命名であれば、「フォーム開始前」イベントなわけです。
(こいつが落とし穴!)

したがって、ここでフォーカス設定をしようとしても、フォームウインドウが開いていないんだから、駄目なわけです。
同じ理由で、更新モードにもならない。のが正しいのです。
(正しいかどうかはわからんが・・・)

で、話が複雑なのはSPの2だか3までは、事実、フォーム開始イベントで更新モード設定をしてやると、
駄目…というよりなんと桐まで落ちるてしまうので、「なんでだ、バクだ、どうにかせい!」って
騒いでいたら、何時の間にか、更新モードになるように仕様が変わってしまいました。

で、結論とすると尾形さんのご発言が正解です。

適当にコマンドボタンをせ1つ作ってあげて、
機能名:訂正 機能パラメータ:「サブフォーム名」とします。
でもって、フォームオブジェクトのオプションで開始時実行に作成したボタンを指定します。
作成したボタンは画面表示=しないとしておけば、開始時だけで押されないですみます。

はい、実はその昔、私もはまりました。(^^;

いかすぱげてぃ

10745 Re:まだよく解りません(;>_<;)ビェェン だるま 2001/04/06-20:20
記事番号10739へのコメント
いかすぱげてぃさん、お世話になります。また、以前は有り難う御座いました。

しかし、まだよく解りません。あっ、めまいが・・・・

おっしゃるとおり、メインに仮ボタンを作り、苦悩・・いや元え、機能を設定した上で、
マウス左クリックなどのイベントの中で、フォーカス等記述するのですか?

いったんサブフォーム_3のテキスト_1のカーソルが点滅するのですが、その後は・・・

なぜか、メインにフォーカスが戻ってきている様です。

倒れそうです。うっ・・・・・・・・・・・・・・・

なにとぞ、なにとぞもう一度ご指導をお願いいたします。<m(__)m>
10747 Re:まだよく解りません(;>_<;)ビェェン いかすぱげてぃ 2001/04/06-20:38
記事番号10745へのコメント
だるまさん、こんにちわ。

お悩みのようですね。ご苦悩お察し申し上げます。
され、訂正状態にするのにイベントはなーーーーーんにも使いません。
======================ここ重要=====

ボタンを作って、それをファームオブジェクトのオプションタブの
実行ボタン:開始時に設定するだけです。
開始時実行ボタンとは、ウインドウが開くと何もしなくても一番最初に実行されるボタンです。
ボタンの機能は「訂正」パラメータは「<サブフォームのお名前>」

お試しください。

いか

10748 Re:ギブアップ だるま 2001/04/06-21:07
記事番号10747へのコメント
 いかすぱげてぃさん、毎度早々のご指導、まことに真に有り難う御座います。
<m(__)m>

 が、しかし、ギブアップです。

 一瞬、サブフォーム_3.テキスト_1のカーソルが点滅しますが、後は「し〜ん」です。何故でしょう?

 もうフラフラです。フラフラァ(((。o・))))((((・o。)))
10749 Re:ギブアップ 幅田 2001/04/06-21:21
記事番号10748へのコメント
だるまさん、こんにちは。
午後から外出しているうちに、ものすごい書き込みがあったのでびっくりしました。
皆さんの書き込みを詳しくは読んでいないのですが、いかすぱげてぃさんの方法に見覚えがあります。
↓の記事です。
http://www.fuku3.com/~habata/kbbs/kakov7/00367.htm

また、「桐井戸端BBS過去ログ2001」のCD−ROMに収録されている
検索フォームもこれに近い方法をとっております。
もしお持ちでしたら、P17の「フォームを開いたとき訂正状態にする」を参考にしてみてください。
ただし、メイン&サブフォームではありませんが..

いかすぱげてぃさんとはちょっと違いますが、考え方はよく似ています。

ちなみに、さっきイベント一切なしでメイン&サブフォームでいかすぱげてぃさんのやり方を試してみたらうまく行きました。
前に作ったイベントが作用しているなどは考えられませんか?

10750 サブフォームのイベントに設定してみては 佐田 守弘 2001/04/06-21:27
記事番号10725へのコメント
だるまさん
状況は私にもはっきりと把握できていません。
残った1つのアドバイスとして、フォーカスを当てたいサブフォームのイベントに、フォーム開始イベントを設定して、
メソッド呼び出しコマンドを設定してみて下さい。

このツリーで論議されると思いますが、サブフォームも含めてメインフォームのイベントに記述する事は不可能ではありません。
ただし、この様なケースで何かと不安定になる事が多いものです。
人によってはこのあたりをタイマーイベントで回避する方法を考えておられる方もおられます。
私はそういった面倒な事を一切考えず、
・イベントはフォーム毎に作成する
・サブフォームの開始イベントは、サブフォームのイベントファイルの方に作成する
と言う様に、フォームとイベントを1対1で対応させる事によって、
この様な魔訶不思議な状況に遭遇しないようにしております。

佐田守弘(KS-00119)
10751 メインフォームですよね? 尾形 2001/04/06-21:35
記事番号10748へのコメント
開始ボタンの設定はメインフォームですよね?

10752 そうです。 幅田 2001/04/06-21:38
記事番号10751へのコメント
>開始ボタンの設定はメインフォームですよね?
そうです。メインフォームに配置しました。

10753 Re:メインフォームですよね? だるま 2001/04/06-21:39
記事番号10751へのコメント
 尾形さん、お手数お掛けしています。

 メインフォームに作っています。
10754 Re:皆さん、お騒がせいたしました。原因は・・・ だるま 2001/04/06-22:00
記事番号10725へのコメント
 皆さん、原因?が解りました。

 WIN98で、全く同じものを実行したら、上手くいきました。
 そうなると、私のパソコンのせいか、OSがWIN2Kのせいだと思われます。
 WIN2Kで桐を実行されている方がいらっしゃったらご検証のほどお願いいたします。
10755 Re:さらに、お騒がせいたしました。原因は違いました。 だるま 2001/04/06-22:18
記事番号10754へのコメント
> 皆さん、原因?が解りました。
>
> WIN98で、全く同じものを実行したら、上手くいきました。
> そうなると、私のパソコンのせいか、OSがWIN2Kのせいだと思われます。
> WIN2Kで桐を実行されている方がいらっしゃったらご検証のほどお願いいたします。

 上記は勘違いです。

 しかし、同じフォームを、エクスプローラ等(ショートカット化含む)からダブルクリック起動するとOKです。
WIN2K・WIN98SE両方とも。

 桐から開くとだめです。

10756 &hwindow 尾形 2001/04/06-22:37
記事番号10755へのコメント
とりあえず、原因(?)が分かったようで良かったですね (^^)

上の方で悲しげさんもいってありますが・・・

>そして&hwindowがころころ変わってしまう様な気がして・・・・
> &hwindowを代入した変数しか使えないのです。(-_-;)

このへんはちょっと???
メインもサブフォームも同じウインドウですから、
&hwindowは全て同一だと思いますが。
別ウインドウのフォームからの操作したりするのでしょうか

10758 Re:さらに、さらに だるま 2001/04/06-23:50
記事番号10755へのコメント
 上記、ミス投稿です。

> しかし、同じフォームを、エクスプローラ等(ショートカット化含む)からダブルクリック起
>動するとOKです。WIN2K・WIN98SE両方とも。

 上の実行の仕方では、メインに借ボタンを作らなくても、サブフォームのフォーム開始イベントに記述したフォーカス設定等が有効なようです。

 一番始めのフォームでもOKでした。

 これって〜、どうして???


10760 Re:&hwindow だるま 2001/04/07-00:01
記事番号10756へのコメント
尾形さん、お騒がせいたしました。

しかし、まだ納得はいっていません。(^^ゞ

&hwindowの件ですが、おっしゃるとおりですけど、前に&hwindow
が全然言うことを聞かなかったもので(実力不足で)、今の方法にしてしまいました。

 過去の自分の資産(大したことではありませんが)が今もそのままということです。

 無駄な記述の多い私。(-_-;)

 早く、皆様の様になりたいです。

10761 Re:ギブアップ だるま 2001/04/07-00:18
記事番号10749へのコメント
幅田さん、お久しぶりです。そして、お騒がせして申し訳御座いません。<m(__)m>

昔話で「X1」論議でもと思っていた矢先、別件ではまってしまいました。

幅田さんの環境ではOKと言うことなので、いろいろ検証した結果、フォームの起動方法で違いが有りました。

エクスプローラ(ショートカット化含む)でクリック起動すると、 問題有りません。
カーソルが点滅状態です。

しかし、桐から「開く」実行だと、一瞬点滅しますがそれっきりです。
フォーム自体をクリックすると、点滅状態になります。

また、エクスプローラ(ショートカット化含む)でクリック起動すると、
サブフォームのフォーム開始イベントのフォーカス設定等が有効なようで、メインフォームに借ボタンがなくてもOKです。

これって〜どうしてなのでしょうか????

まだ全然解りません。

こうなると、あの方がご登場されるのでは・・・・
10762 Re:アドバイス有り難う御座います。<m(__)m> だるま 2001/04/07-00:27
記事番号10750へのコメント
佐田先生、いつもいつも有り難う御座います。<m(__)m>

おっしゃられるとおり、肝に銘じます。

本当に有り難う御座いました。

しかし、今回の件は、何か違うようです。

私には、よく解りません。

もしも、お心に留め置いて何かの機会が有れば、調べていただければと思います。

宜しくお願いいたします。
10765 もしかして 悲しげ 2001/04/07-02:13
記事番号10758へのコメント
どもっ、だるまさん
もしかして、OSのバージョンの違いと云うより、違うマシンにインストールしてある桐のspが違ってたりしてませんか?
10766 Re:もしかして hidetake 2001/04/07-07:32
記事番号10765へのコメント
>&hwindow

桐の初期の頃は &hwindow のフォーム開始時の確定がおかしかったことがあります。

以前 K3 の送った報告から・・・
---------------------------------------------------------------------
「フォーム開始イベント」や「フォームを開く時のコマンド」に &hwindow を参照(指定)したイベントを
記述しているのですが、フォームの定義が面から編集へ移ると動作するものが、
まっさらの状態からフォームを開くと指定されたハンドルが無いと怒られ巧く動作しません。

「オブジェクト操作」で自分のハンドルの指定 &hwindow の記述を省略すると、
取り敢えず動作するのですが、フォームを開く時以外でも共有している proc ですし、
CMD から開いた場合の連携を考えると、明示的に指定しておいた方が良いと考えますが、
フォームを開く時(ウインドウが開いた後)、あるいは開いた直後の段階で記述できるイベントが無く困っております。
---------------------------------------------------------------------

そして SP で改善されました
---------------------------------------------------------------------
>●桐ver8サービスパック3の主な修正事項
>
> 10. フォーム開始イベントで「&hwindow」を使用した場合、「無効なウィンドウハンドルです」
>というエラーメッセージがでていたが修正し、有効にした
---------------------------------------------------------------------

10767 Re:もしかして だるま 2001/04/07-11:43
記事番号10765へのコメント
悲しげさん、お騒がせしています。<m(__)m>

他のパソコンには、ダウンロードした使用期間限定版の桐v8sp6をインストールしたので、spは同じだと思います。(^_^)b

WIN2K・WIN98SEともに、エクスプローラからwfmをクリック起動するとOKで、桐から「開く」起動だと×です。

自分のパソコンもクリック起動だとOKです。(^_^)v

原因不明です。(; ;)ホロホロ

10768 Re:さらに、お騒がせいたしました。原因は違いました。 いかすぱげてぃ 2001/04/07-11:58
記事番号10755へのコメント
うーん、実に不可思議ですね。

>しかし、同じフォームを、エクスプローラ等(ショートカット化含む)からダブルクリック起
>動するとOKです。WIN2K・WIN98SE両方とも。
>
> 桐から開くとだめです。

まず、これが非常に不思議というか初耳です。
桐からだと大丈夫なのに、ショートカットだと駄目っていう…逆は良くあるんですけど。
その逆ですか。ふう。
それから、hidetakeさんのお書きのような定義画面からオープンは大丈夫だけど、
開くだと駄目だという話も最初困惑しましたよね。

ちなみに「起動時更新状態」という処理の場合、K3の公式見解としては(現状)
「実行ボタン;開始時」を強く推奨しています。
なぜかっていうと…まぁ、そのあたりはとかく色々あるのしょう。(苦笑)

とりあえず、フォーム開始は捨てて、それ一本で探索するほうが早道のような気もしますが
如何でしょうか?(^^;これなら、α版から一貫して正常に動いていますし…

現状、状況からするとサブフォームのフォーム開始が臭いような気がします。
メイン、サブのメイン、フォーム開始の検証が必要かもしれませんね
陰ながら応援しております。がむばってください。

いかすぱげてぃ

10769 Re:もしかして だるま 2001/04/07-12:01
記事番号10766へのコメント
 hidetakeさん、お久しぶりです。また、コメントを有り難う御座います。<m(__)m>

 &hwindow問題は、おっしゃられる様にspで解決された様に思っていたのですが、
桐を多重化して使う機会が多い(オーバーラップフォームイベント実行中に、一方では桐で手作業)仕事で、
過去変になってデータをとばしてしまったので(エラー時の人為的ミス(^^ゞ)、
恐怖のあまり、記述を直していないのが事実です。(-_-;)

ところで、エクスプローラからのダブルクリック起動と、アプリケーションからの「開く」起動の違いについて、教えて・・・・・・

 いかんいかん、ツリーを変えて、質問をいたします。m(__)m

10770 Re:もしかして いかすぱげてぃ 2001/04/07-12:01
記事番号10767へのコメント

> WIN2K・WIN98SEともに、エクスプローラからwfmをクリック起動
>するとOKで、桐から「開く」起動だと×です。
>
> 自分のパソコンもクリック起動だとOKです。(^_^)v
>
> 原因不明です。(; ;)ホロホロ

ちなみに開く時、「更新」のチェックはされてますよね。(^^;

いかすぱげてぃ

10773 Re:もしかして だるま 2001/04/07-12:33
記事番号10770へのコメント
いかすぱげてぃさん、お手数をかけております。<m(__)m>

>ちなみに開く時、「更新」のチェックはされてますよね。(^^;

しています。

そして、エクスプローラ起動ではOKと言ってきましたが、テキストボックスのカーソルが点滅状態では有りますが、
入力は出来ませんでした。入力するにはフォームをクリックしなければ×。

 疲れた〜〜。フラフラァ(((。o・))))((((・o。)))

10774 Re:終息 だるま 2001/04/07-12:36
記事番号10768へのコメント
 いかすぱげてぃさん、本当に有り難う御座いました。m(__)m

 また、このコメント場をお借りして、皆さん有り難う御座いました。<m(__)m>

 今後とも宜しくご指導お願いいたします。
10775 ちょっと確認 尾形 2001/04/07-13:04
記事番号10774へのコメント
なんか、終息したようですが・・・

念の為と思い私もやって見ましたが、だるまさんのような現象になりました。 (@_@)
フォーム自体がフォーカスを失っているような感じですよね?

私はもっぱら、ファイルパレットから開きますし、オーバーラップフォームも使用しないのですが、
だるまさんの書いてあるとおりにやって見たら、同じ現象に遭遇しました。
ファイルパレットじゃダメ?

10776 Re:ちょっと確認 尾形 2001/04/07-13:09
記事番号10775へのコメント
フォーム開始イベントではなく、
開始時ボタンでやっての現象です


10777 Re:ちょっと確認 だるま 2001/04/07-14:08
記事番号10775へのコメント
 尾形さん、引き続き検証していただいて、真に有り難う御座います。<m(__)m>

 ファイルパレットからでは、全く問題有りません。\(^_^)/

 メインフォームに仮ボタンを置かなくても。サブフォーム・フォーム開始イベントでOKでした。。。。タタタッ。ヘ(;・・)ノ走る走る

「ファイルパレット」って何も意味のない物と思っていましたが(他アプリの「ファイル開く」フォームと違いすぎて・・・)、何か意味が有るのですね。

 別件(会社で桐の使い方指導←生意気(..;))で「ファイルパレット」から勉強しようと思っていた矢先でした。

「ファイルパレット」を使います。

 本当に有り難う御座いました。<m(__)m>
10779 Re:私も一言 bonito 2001/04/07-19:21
記事番号10725へのコメント
だるまさん、こんにちは。
2日間、大阪に出張している間、いや〜すごい(ツリーが)事になっていますね。
事態は収束に向かっているようでもあり...いやそうでもないようでもあり...
ついでに(^^; 私もひとこと...。

1.
>サブフォームのテキストを開表直後に入力待状態にしたい
という質問に対するもっとも適切なアドバイスは
いか様の
>ボタンを作って、それをファームオブジェクトのオプションタブの
>実行ボタン:開始時に設定するだけです。
>ボタンの機能は「訂正」パラメータは「<サブフォームのお名前>」
につきると思います。
[付1]:<サブフォームのお名前>=&hwindowでのオブジェクト名
[付2]:これをもって「仮ボタン」とするの意が不明なり??

2.
>メソッド呼び出し ハンドル = &hwindow\
>        ,@サブフォーム.@フォーム.更新モード設定(2)
は通りませんね。その昔私も困って、サブフォームのワークエリアにいくつかのコマンドボタンを置いて、
それをメソッド呼び出し...実行()としていました。(今でも少し...)
ところが、訂正と行挿入(行追加)だけ(?他にもあるかも...)はメイン側のコマンドボタンでパラメータに
HELP>サブフォームを指定するとサブフォームに対する機能となる事を知りまして、以来そうして過ごす毎日です。

3.
すべての場合にあてはまる訳でもないですが(参考人の意見... (^^;)
>メイン
>  サブ1
>  サブ2→kevでほとんど動かしています。ここからあっちゃこっちゃ
>  サブ3                 フォームをいじります。
ならば、サブ2部分をメインフォームとするか(これが1番簡単だと思う)
あるいはメイン部には対象表を設けず、全ての表をサブフォームとして
開くか...といった方法も考えられると思います。
メイン&サブのデザインってわりと先入観というか既成概念っていうか、
何かとらわれている所があるような気がする(>自分に)

4.開くの挙動については未経験ゆえノーコメント (^^;

10780 Re:私も一言 だるま 2001/04/07-20:25
記事番号10779へのコメント
 bonitoさん、お騒がせしました。m(__)m
 まさか、こんなことになるなんて・・・(;^_^A アセアセ…

 しかし、非常に勉強になりました。

「仮ボタン」は便利な物ですね。

 また、今回の件で[メソッド呼び出し]がようやく解ってきました。(^^ゞ

 その上で考えると、おっしゃられるとおり、メインのkevで記述するのが一番良いと私も思います。
今までは[メソッド呼び出し]等をほとんど使っていませんでした。
(「どんな処理じゃい」と言われそう)

 今後ともご指導宜しくお願いいたします。<m(__)m>
10785 Re:私も一言 桐野港 2001/04/08-12:35
記事番号10780へのコメント
久しぶりに見たらすごいツリーがあるのでビックリしました。
だるまさん 解決しましたですか。私も以前同じような処理で悩んだことがあり
現在正常に動作していますので参考までに。
ただフォームがメイン&サブ1のみのシンプルなもので、
表を開いた状態から フォーム呼び出し 編集表=する で使用しています。
チョットだるまさん とは違いますが.....

メインkevはノーマルな設定
サブKev に以下の設定をしてます。
この場合 サブTBLは レコードなし or 指定のレコードに行マークあり 状態で
さらに サブの入力明細行を指定しています。

手続き定義開始 フォーム::タイマー1()
 オブジェクト操作 @フォーム.タイマー1="0"

   変数宣言 整数{&更新フラグ}
   method @フォーム.描画禁止(1)
   method @フォーム.更新モード設定(0)
   条件(#空ファイル=0)ジャンプ 行マーク=1
   条件(#空ファイル=0)行マーク解除 1

   method @フォーム.明細番号設定(&明細番号)
   method @フォーム.更新モード設定(2)
   method @フォーム.更新モード取得(&更新フラグ)
   条件(&更新フラグ<2)method @フォーム.更新モード設定(6)
   method @品C.フォーカス設定()

   method @フォーム.描画禁止(0)
手続き定義終了

これでサブ明細行が訂正モードで正常に動作しております。
メインkevに設定した場合(フォーム開始だったかタイマーだったか etc
だったか記憶がかなりあいまいですが)うまくいかなかった様で一応上記でおちつています。
参考にして下さい。


10787 Re:私も一言(追伸) 桐野港 2001/04/08-13:12
記事番号10785へのコメント
少し記憶がよみがえってきました。
メインKEV で処理した場合(フォーム開始 タイマー その他 この部分が
まだ熟睡中ですが)コメント10745 に書かれてるように
カーソルは一旦サブフォームに訂正モードで降りますがすぐにメインにフォーカスが
戻ってしまう という同じような現象に悩まされたことがあります。
そのためサブKEV に処理を変更してうまくいったようです。

10810 メイン&サブでwfmオープン直後にサブ部を訂正モードにしたい 悲しげ 2001/04/09-15:07
記事番号10725へのコメント
既に「マル済」のようですが(故にだるまさんのケースとは少し離れるかも?)、
私の方でも挙動を再確認した部分がありますから、報告させて板抱きます(この誤変換は面白いのでこのまま放置)。

サブフォームでない場合なら、hidetakeさんもお書きのように、spが上がった時点で、
「フォーム開始」イベントで「更新モード設定」
メソッドで訂正モードにすることが可能となっています。
もちろん牡丹(機能を訂正に設定した)をオプション/実行コマンド/開始時に指定しても使えます(これはsp無印の時から)。

ただ、これは私も今回改めて再認識したことですが、サブフォームについては、
「フォーム開始」時に訂正モードにすることは(牡丹の実行も含めて)無理なようでした。
自作のものの中で、このことに失敗したコメントがkevの記述中にあったからです。
これは多分sp5〜6でのことに間違いありませんで、単にうまく行かなかったのみならず、
その行で何らかのエラーが発生したようです。
で、この際にその部分に見直しをかけてみましたところ、最終的には、
「フォーム開始」イベントの次の段階であるところの「タイマー」イベントにて牡丹(機能=訂正)を実行することで
うまく行きました。
補足説明しておきますと、この場合、設定してあるフォームはメイン&サブではありますが、
メインフォームは単なる台紙的なカード(編集対象表を持たない)であって、
サブフォームが編集対象表を持つカードと云う、いっぷう変わったやつなんではありますが(^^;)。
いえね、こうしないと、画面からハミ出るようなカードをうまく一番下までスクロールできなかったとか、
牡丹の位置を(メイン部に)固定表示させたかったとかの事情があったのではありますが、ま、
そんな訳で、kevは1本だけでやっておます。
で、うまく行ったやつで関連部分の記述を挙げておきます。
-------------------------------------------------------------
手続き定義開始 フォーム::タイマー1()
 オブジェクト操作 @フォーム.タイマー1="0"
 if(&旗="新規登録")
  method ハンドル=&hwindow,@b訂正.実行()
  /*牡丹の機能=訂正、パラメータリスト="sub"*/
 end
手続き定義終了
-------------------------------------------------------------

と云う訳で、フォームを開いた途端にサブフォームを訂正モードにする件につき、
以下に挙動をまとめておきます。
(メイン部が編集対象表を持つカード型、サブ部が伝票型の場合については未確認ですが、挙動は同じであることを期待したい)

               フォーム開始イベント  タイマーイベント
「更新モード設定」メソッド     エラー?       ×(註1)
機能が訂正である牡丹の実行     ×(註2)
上記牡丹の「実行」メソッド     ×          ○       

註1)「×」は無変化(訂正モードにならない)を意味する。
註2)オプション/実行コマンド/開始時での訂正牡丹の設定も、
   サブフォームに関しては×。
10811 Re:メイン&サブでwfmオープン直後にサブ部を訂正モードにしたい hidetake 2001/04/09-15:22
記事番号10810へのコメント
あれ? まだ終わっていなかったのですか?

え〜と、私が書いたのは SP によって &hwindow が巧く使えなくなる場合があると言うことです。

フォームオープン時、サブフォームの特定のテキストオブジェクトを編集モードにするには、
いかさんが書いたように、メインのフォームにボタンを1つ設け機能に
「行訂正 サブフォームオブジェクト名」を割り付け、開始時実行コマンドに登録する。

そして、サブフォームのフォーム開始イベントにフォーカスを
設定するため「method @オブジェクト名.フォーカス設定()」
を記述する。では巧く動作しないでしょうか?

手元の Windows2000 では、これで桐の中から開いても、
桐を実行していない状態からの Windows の関連付けによるダブルクリックでも動作するようです。

ps.
このフォーカス設定をボタンの機能に登録し、
サブフォームの開始時実行コマンドで実行しようとしてもダメなようですね (^_^;

10815 Re:出来ましたぁ〜〜〜〜! だるま 2001/04/09-18:18
記事番号10810へのコメント
悲しげさん、引き続き検証していただいて、誠に有り難う御座います。<m(__)m>

出来ましたぁ〜〜〜〜〜〜〜〜!。\(^_^)/\(^_^)/\(^_^)/\(^_^)/

桐から「ファイル」-「開く」-[開く]でもOK。OK。OK。OK。

完全収束です。

タイマーイベントの意味も何となく解りました。

今回は、本当に勉強になりました。

この場をお借りして、再度、諸達人皆様にお礼を申し上げます。

本当に有り難う御座いました。<m(__)m>
10816 Re:有り難う御座いました。<m(__)m> だるま 2001/04/09-18:31
記事番号10785へのコメント
桐野港さん、お騒がせしております。<m(__)m>

私のフォーム構成が変なのか、サブフォームのタイマーイベントが動きません。

(;>_<;)ビェェン

しかし、後のご指導で、解決出来ました。

本当にお手数をおかけしました。m(__)m

今後ともよろしくご教授のほど、お願いいたします。(^∧^)

タイマーイベントがミソですね。
10817 Re:メイン&サブでwfmオープン直後にサブ部を訂正モードにしたい 悲しげ 2001/04/09-19:15
記事番号10811へのコメント
どもっ、hedetakeさん、

>メインのフォームにボタンを1つ設け
>機能に「行訂正 サブフォームオブジェクト名」を
>割り付け、開始時実行コマンドに登録する。そして、
>サブフォームのフォーム開始イベントにフォーカスを
>設定するため「method @オブジェクト名.フォーカス設定()」
>を記述する。では巧く動作しないでしょうか?

牡丹の機能に「行訂正」ってのは、「訂正」の間違いですよね?
マジで探してしまったではないですか。(^^;)
え〜、さて、これでは巧く動作しない(場合があった)んですね。
No.10810で書いた私の例(再確認してみましたが、全く上記のとおりの設定です)
でも、おそらくはだるまさんの場合も(?)。
なぜ、巧く行く場合と行かない場合があるのかは、何か難しそうですね。
ただ、No.10810で挙げたやり方は、巧く動作しにくい場合でも行かせる方法と云えるでしょうか。(^^;)
10818 Re:出来ましたぁ〜〜〜〜! 悲しげ 2001/04/09-19:18
記事番号10815へのコメント
どもっ、だるまさん、
No10815では「出来た」と書き、時系列的にはその後になるNo10816では「動かない旨」を書いてらっしゃいまして、
読む側としては暫し混乱してしまいますですよ。(;_;)
No10815で「完全収束」と書いたのは、最終的にどのような方法でよかったのかをこそ、明記するべきです。
単に「OK」の連記だけでは自己満足に過ぎません。
長いツリーの過程で複数の回答があった訳だから、そのどれなのかを、これに参画した(あるいは読み続けた)
皆に判るように、より具体的に報告して下さいませ。

10819 Re:メイン&サブでwfmオープン直後にサブ部を訂正モードにしたい hidetake 2001/04/09-19:49
記事番号10817へのコメント
>牡丹の機能に「行訂正」ってのは、「訂正」の間違いですよね?
>マジで探してしまったではないですか。(^^;)

済みません _o_
アップした後で気付きましたが、そのままにしておりました。 (^^;


>え〜、さて、これでは巧く動作しない(場合があった)んですね。

そうなんですか? 巧くいく場合と行かない場合の違いは何なのでしょうね?
ちなみに私の環境では Windows98 でも同じ動作となり巧く動くようです。

フォーム開始時のトラブル等、桐の不穏な動きは結局タイマーにより逃げるしか無いのでしょうかねぇ〜 ;-)

10820 Re:かしこまりました。 だるま 2001/04/09-20:51
記事番号10818へのコメント
悲しげさん、ご指摘有り難う御座います。m(__)m
正直言ってまだよく解らないところが多いのですが、生意気ながら・・・

桐野港さんご教授の入力状態にしたい「サブフォーム_3」に、

手続き定義開始 フォーム::タイマー1()
 オブジェクト操作 @フォーム.タイマー1 = "0"
 メソッド呼び出し ハンドル = &窓等操作4数, \
         /*戻り値 = &終了数, */ \
          @テキスト_1.フォーカス設定( )
 メソッド呼び出し ハンドル = &窓等操作4数, \
         /*戻り値 = &終了数, */ \
          @フォーム.更新モード設定( 2 )
手続き定義終了

と記述しましたがうまくいきませんでした。

悲しげさんご教授のメインフォームに、

手続き定義開始 フォーム::タイマー1()
 オブジェクト操作 @フォーム.タイマー1 = "0"
 メソッド呼び出し ハンドル = &窓等操作1数, \
         /*戻り値 = &終了数, */ \
          @コマンドボタン_2.実行( )
手続き定義終了
(@コマンドボタン_2には、[訂正]”サブフォーム_3”)

でうまくいきました。

しかし、今一度、皆さんのご指導を読み返して、再度実行しながら書いているのですが、

なんと、桐野港さんのサブフォームでのタイマーイベントでもOKでした。
(;+_+A アセアセ…
焦っております。なぜ、そのときはだめだったか、原因は解りません。
桐野港さんには、非常に失礼しました。(;∧;)
ここで、お詫び申し上げてもだめですね。
真面目に混乱しています。

10821 Re:かしこまりました。 だるま 2001/04/09-21:29
記事番号10820へのコメント
> なんと、桐野港さんのサブフォームでのタイマーイベントでもOKでした。
>(;+_+A アセアセ…
> 焦っております。なぜ、そのときはだめだったか、原因は解りません。
> 桐野港さんには、非常に失礼しました。(;∧;)
> ここで、お詫び申し上げてもだめですね。
> 真面目に混乱しています。
>
上記の原因が分かりました。
ほかのアプリケーション(アウトルック等)がタスク?(最小化状態)にあるときに、
すぐ入力出来ない状態になるみたいです。

一方、悲しげさんご教授の方法だと、問題ありません。

以上です。

改めて、皆さん、本当に有り難う御座いました。<m(__)m>
10822 Re:メイン&サブでwfmオープン直後にサブ部を訂正モードにしたい 悲しげ 2001/04/09-21:31
記事番号10819へのコメント
どもっ、hidetakeさん
こんなにツリーを延ばしてしまっていいのか、って感はありますが(^^;)
何となく違いが判ったような……。
それは、サブフォームにイベントを設定しているか、メインフォームだけで走るかの違いなのかもしれません。
とは云え、今は未確認。
ひとつ前のだるまさんのコメントを読んで、そのような感触を持ちましたが、でも今宵はこれまで。(^^;)

戻る