過去の桐井戸端BBS (桐ver.8) |
13281 | kevファイルで変数値を連続して入力したい | ぺて | 2001/09/30-02:23 |
いつも参考にさせていただいています。 ウィンドウズの一括処理は楽しいですが まだまだ自由に扱えるところまでいきません。 すこし疑問に思うところがあるので質問させてください。 桐V8sp6です。 フォームに600個程度の配列変数を表示、入力したい時 たとえば、次のようなフォームで −−−−−−−−−−−−−−−−−− | □□□□□… | □□□□□… | □□□□□… | | □のところには、項目値を配列変数に代入し、 600個程度のレコードの項目値を表示します。 このフォーム上で、変数の値を入力してそれぞれのレコードの項目値にもどします。 このとき、それぞれの変数値を連続して入力するには、 それぞれのオブジェクトにイベントを設定して メソッド呼び出し @フォーム . 更新モード設定(2)を 600個つくらなければならないのでしょうか。 実務の話ではないので 「くだらないこと考えるな」 というのであれば、それで結構なのですが おわかりの方がいらっしゃればよろしくお願いします。 | |||
13283 | Re:kevファイルで変数値を連続して入力するとき | pokopon | 2001/09/30-08:43 |
記事番号13281へのコメント ぺてさん おはようございます 何をしたいのかイマイチ??? ですが。 >メソッド呼び出し @フォーム . 更新モード設定(2) >を600個つくらなければならないのでしょうか。 ファミリを設定すれば? 変数の格納されているテキストボックスで、ファミリとしてこのイベントを定義すれば1回の宣言で解決しますよ。 | |||
13286 | Re:kevファイルで変数値を連続して入力するとき | ぺて | 2001/09/30-12:02 |
記事番号13283へのコメント pokoponさん、ありがとうございます。 >ファミリを設定すれば? >変数の格納されているテキストボックスで、ファミリとしてこのイベントを定義すれば >1回の宣言で解決しますよ。 最初はそう思ったんですが、イマイチ使い方がわかりません。 ファミリのイベントにはフォーカス系とマウスのイベントしかないのです。 ソース値更新のイベントはどこで設定すればいいのでしょう。 >何をしたいのかイマイチ??? ですが。 抽象的な質問で申し訳ありません パズルを解く一括処理を遊びで作っています(^^ゞ | |||
13294 | Re:kevファイルで変数値を連続して入力するとき | アックン | 2001/09/30-15:01 |
記事番号13281へのコメント こんにちは。 >このとき、それぞれの変数値を連続して入力するには、 >それぞれのオブジェクトにイベントを設定して >メソッド呼び出し @フォーム . 更新モード設定(2) >を600個つくらなければならないのでしょうか。 そうです。 ソース値更新はファミリーが用意されていませんから、オブジェクト毎に書くしかないです。 これはかなりくたびれる作業です。(^^; アックン(=^・^=) | |||
13297 | 一気に変換でよければ... | natsu | 2001/09/30-17:39 |
記事番号13286へのコメント >抽象的な質問で申し訳ありません >パズルを解く一括処理を遊びで作っています(^^ゞ カード型フォームだと定義も大変ですから、ここは一覧表フォームで作業されていると仮定で... 配列変数全部を変換する一括処理です ご希望の処理とはかなり遠いとは思いますが、大量の変数を処理するときのひな形の様なものです 変数宣言などにも応用できます パズルの回答が入っている項目名を[データ]とし、レコード数は配列の総数と同じだけ用意します 変数は &回答[]としておきます 変数宣言 固有,長整数{&回答[600]} 変数宣言 固有,長整数{&i} 注釈 データ型は適当です とりあえず記述しましたがあらかじめ局所変数として登録 ジャンプ 行番号=先頭 繰り返し 行番号 &i コマンド "代入 &回答["+#STR(&i)+"]=[データ]" ジャンプ 行番号=次行 条件 (#eof=1) 繰り返し中止 繰り返し終了 一覧表フォームに、上記イベントを割り付けたコマンドボタンを配置すればOKです PCの能力にもよりますが、スピードは遅いかもしれません | |||
13302 | Re:kevファイルで変数値を連続して入力するとき | pokopon | 2001/09/30-22:27 |
記事番号13286へのコメント ぺてさん こんにちは >>ファミリを設定すれば? >最初はそう思ったんですが、イマイチ使い方がわかりません。 HTMLヘルプに使用例が載っています。参考にして下さい。 >ソース値更新のイベントはどこで設定すればいいのでしょう。 ソース値更新イベントはありませんが、 ご希望の >メソッド呼び出し @フォーム . 更新モード設定(2) であれば、 オブジェクト喪失のイベントで代用できませんか? あるいは、どうしてもソース値更新でとおっしゃるのでしたら、 過去ログ No.13105 を参考にして、タイマ1イベントでソース値の変更を捕らえて、それぞれの処理をすればどうでしょうか? ちょっと面倒ですが、 600個設定するよりも、ず〜っと楽かと思いますよ。 | |||
13305 | Re:kevファイルで変数値を連続して入力するとき(解決) | ぺて | 2001/10/01-05:08 |
記事番号13302へのコメント pokoponさんどうもありがとうございます。 おっしゃるとおり、タイマー1イベントを利用してうまくいきました。 過去ログそのままの処理ですが、次のようにしました。 まずはタイマー1イベント -------------------------- 手続き定義開始 フォーム::タイマー1() method @フォーム.更新モード取得(&mode) if(&mode=8) method @フォーム.フォーカスオブジェクト取得(&focus) オブジェクト操作 @フォーム.タイマー1 = "0" end 手続き定義終了 -------------------------- 次はファミリにオブジェクト取得のイベント ファミリ名は"値”です -------------------------- 手続き定義開始 値::フォーカス取得(文字列 &喪失オブジェクト名) オブジェクト操作 @フォーム.タイマー1 = "1" if (&喪失オブジェクト名=&focus) method @フォーム.更新モード設定(2) end 手続き定義終了 -------------------------- これで望むような処理になりました。 どうもありがとうございました。 | |||
13306 | Re:kevファイルで変数値を連続して入力するとき(解決) | アックン | 2001/10/01-07:37 |
記事番号13305へのコメント なるほど、これはいいですね。 私もさっそく使わせてもらいます。 ありがとうございます。>pokoponさん、ぺてさん アックン(=^・^=) |