過去の桐井戸端BBS (桐ver.8)
15451 フォームを開いたらすぐに訂正モードの状態にしたい けんた 2002/03/14-15:27
只今、Ver5でつくったゴルフのハンディキャップ査定の処理をVer8sp6で作り替えております。
メニューからスコア入力用のフォームを開いたときに、訂正モードになるようにしたいのですが、うまくいきません。
過去ログにも、あったのですがどうしても出来ません。
プレー年、プレー月、プレー日・・・・ など テキストオブジェクトに
順に入力したいので、フォームを開いたときに、プレー年を訂正モードにしたいのです。
すべてのテキストオブジェクトは変数にしており、編集対象表も設定しておりません。
とりあえず、すべて変数に入れてから、表に追加しようと思っております。
よろしくお願い致します。
15454 Re:フォームを開いたら訂正モードに ONnoji 2002/03/14-16:26
記事番号15451へのコメント
けんたさん

まず、桐V8sp6の「操作ナビ」機能が有効な場合には次のようにして操作ナビを解除してください。

[書式]メニュー → [定義画面の設定]を選び、
[定義画面の設定]ウィンドウを開きます。
一番下と下から二番めの項目にチェックマークを付けてください。

□  操作ナビを消去する
□  詳細プロパティを使用する

この二つにチェックマークを付けてください。

※操作ナビに関しては桐V8がインストールされているフォルダのReadme.txtを参照してください。

ステップ1:次のようなコマンドボタンを作ってください。(このコマンドボタンはワークスペースに配置してもOK)

 機能名    機能パラメータリスト
[1]訂正 ← "編集"グループから選びます
[2]なし
[3]なし
[4]なし

ステップ2:フォームの属性の[オプション]タブで、[開始時]の[▼]をクリックして、
一覧からステップ1で作成したボタンを選んでください。

そうすると、フォームが開いたときに、このボタンを自動的に実行してくれます。
15455 Re:フォームを開いたら訂正モードに けんた 2002/03/14-16:38
記事番号15454へのコメント
ONnojiさん 早速のご回答ありがとうござました。
このことで、長い間悩んでおりましたが、これでスムーズに移行が出来そうです。
また、よろしくお願い致します。ありがとうございました。
15456 Re:フォームを開いたら訂正モードに natsu 2002/03/14-16:47
記事番号15451へのコメント
イベントだとこうなります

フォームを再定義で開きましょう
フォームの"オブジェクトの属性"を開けます
(そこにイベントのタブはありますか?
なければ書式(S)→定義画面の設定(O)で
「詳細プロパティを使用する」にチェックを入れます)

”フォーム”のオブジェクトの属性→イベントタブをクリックすると
イベント(E)という枠があります
そこの「フォーム開始」のボックスにチェックを入れて
「フォーム開始」の上をダブルクリックします

ここで、イベント処理ファイルの選択画面になりますから
ファイル名を入力してOKボタンを押します
やっとイベント定義画面になりました

手続き定義開始 フォーム::フォーム開始(長整数 &表番号)
上の行は背景が灰色になっているはずです
次の背景が白くなっている行に、下の1行を貼り付けてください

メソッド呼び出し @フォーム.更新モード設定( 2 )

(上の行の"フォーム"の部分は半角に変更してください)

これでイベントファイルを終了してフォームを開いてみてください
15457 Re:フォームを開いたら訂正モードに 幅田 2002/03/14-17:00
記事番号15451へのコメント
けんたさん
こんにちは。

すでに答えは出ているようですが、
CD書籍「桐井戸端BBS過去ログ2001」にも
同様のケースが掲載されています。
是非、ご覧下さい。

ご購入いただいていない場合は、
立ち読みコーナーのページ↓に
「フォームを開いたとき訂正状態にする」という内容で掲載しています。
http://www.k3-soft.com/adp/habata/bbs5-2.html

15466 Re:フォームを開いたら訂正モードに けんた 2002/03/15-09:41
記事番号15457へのコメント
みなさんありがとうございます。
過去ログから

メソッド呼び出し @フォーム.更新モード設定( 2 )

と イベントファイルに記入したのですがどうしても
うまくいかなくて、困っておりました。
原因はフォーム開始のボックスにチェックを入れてませんでした。

今後もよろしくお願い致します。

15471 Re:フォームを開いたら訂正モードに 悲しげ 2002/03/15-11:02
記事番号15466へのコメント
どもっ、けんたさん
既に解決済のようですが、私の経験では状況によっては「フォーム開始」イベントで
「更新モード設定(2)」メソッドが利かないケースもありました。
でも、そのような場合でも、開始時実行のコマンドボタン(機能「訂正」)の方は常に有効でした。

15490 イベントでのやり方で質問 幅田 2002/03/17-21:57
記事番号15456へのコメント
>イベントだとこうなります
中略
>手続き定義開始 フォーム::フォーム開始(長整数 &表番号)
>上の行は背景が灰色になっているはずです
>次の背景が白くなっている行に、下の1行を貼り付けてください
>
>メソッド呼び出し @フォーム.更新モード設定( 2 )

桐V8の桐@Onlineヘルプ「V8一括編」マニュアルの
P115に下記のような記述があります。
==
「ウィンドウ作成」コマンドで開くフォームの「フォーム開始」イベント内では、
メソッドなどを使用してフォームを編集状態にしてはいけません。
==

そこで、質問なのですが
この編集状態というのは、訂正モードにするというような意味なのでしょうか?
そして、どうしてこのようなことを禁止しているのでしょうか?
誰かご存じの方おられませんでしょうか?
(過去ログにあったのかな?)

そしてそれは、悲しげさんの言われる

>私の経験では状況によっては「フォーム開始」イベントで
>「更新モード設定(2)」メソッドが利かないケースもありました。
>でも、そのような場合でも、開始時実行のコマンドボタン(機能「訂正」)
>の方は常に有効でした。

のことにあてはまるのでしょうか?

15493 Re:イベントでのやり方で質問 ONnoji 2002/03/18-11:10
記事番号15490へのコメント

幅田さん、こんにちは。

私はこの書籍を持っていませんので、INDEX.HTM を調べてみました。

桐v8をインストールしているフォルダ(例えば \K3\KIRIV8\Help\)の
INDEX.HTM の「ウィンドウ作成」コマンドの説明ですが
SP5 … 記載なし
SP6 … 記載あり
従ってSP6の INDEX.HTM で追加記載されたみたいですね。(*_*)

書籍「桐V8の桐@OnlineヘルプV8一括編マニュアル」はSP6の INDEX.HTM の内容を使用しているようですね。

---------- INDEX.HTM --------------------
ウィンドウ作成
 :
編集表 = しない|する|開く
 :
 :
開く <フォーム ファイル名> に定義している対象表を開き、編集対象表にします。

■ノート
[ウィンドウ作成]コマンドで開くフォームの[フォーム開始]イベント内では、メソッドな
どを利用して、フォームを編集状態にしてはいけません。
----------------------------------------

なお、"メソッドなどを利用して、フォームを編集状態にしてはいけません。"の意味する
ところは私にもわかりません。
実は幅田さんの投稿を読むまでこういう内容が書いてあることすら知らなかったのです…(^^ゞ

しかし、NULLフォームでは顕在化しないので…私は最近まで気が付いていませんでしたが…
[フォーム開始]イベントで、
 メソッド呼び出し @フォーム.更新モード設定( 2 )
 メソッド呼び出し @フォーム.更新モード設定( 4 )
 メソッド呼び出し @フォーム.更新モード設定( 6 )
を使うと、編集対象表があるフォームの場合では編集行の位置がおかしくなることがあります。(T_T)
※ただし、常におかしくなるわけではありません。
※カード形式のフォームではさらに気が付きにくいと思います。

私の感想ではフォームの属性の[オプション]タブの[開始時]でコマンドボタンを指定するほうが紛れがないと思います。
15495 Re:イベントでのやり方で質問 natsu 2002/03/18-14:15
記事番号15493へのコメント
私も 「フォーム呼出し」しか使いませんから、このことは知りませんでした。
確かに、桐の挙動がこのイベントのために不安定になるなら
フォーム開始時のボタンを使用するべきとは思います

確かに、フォーム開始条件種別は便利なんですが
後々のことを考えると、果たしてよいことなのかどうか

自分一人が作成して使用するシステムであれば問題ないと思いますが
この掲示板上でも前任者の作った桐のシステムが...
の書き込みを見る度、大変だろうなと思っています
(私も人ごとではなかったりします)
イベント一本を見れば、そのフォームがどういう挙動をするのか、
理解できることが理想だと思います

皆さん桐V9にはいろいろな要望をお持ちと思いますが
この件に関しては、当メソッドが問題なく使えるようにしていただきたいです

15496 Re:イベントでのやり方で質問 悲しげ 2002/03/18-15:42
記事番号15490へのコメント
どもっ、幅田さん

>そこで、質問なのですが
>この編集状態というのは、訂正モードにするというような意味なのでしょうか?
>そして、どうしてこのようなことを禁止しているのでしょうか?
>誰かご存じの方おられませんでしょうか?
>(過去ログにあったのかな?)
>
>そしてそれは、悲しげさんの言われる
>
>>私の経験では状況によっては「フォーム開始」イベントで
>>「更新モード設定(2)」メソッドが利かないケースもありました。
>>でも、そのような場合でも、開始時実行のコマンドボタン(機能「訂正」)
>>の方は常に有効でした。
>
>のことにあてはまるのでしょうか?

多分、関係ないと思います(未検証)。
私が遭遇した不具合は、例によって「フォーム呼出し」(モーダルフォーム)でのことですから、
そしてウッスラな記憶によればサブフォームがらみだったような・・・・、
ま、いずれにせよ「ウィンドウ作成」コマンドがらみではありません。
これは「『ウィンドウ作成』コマンドで開く」場合に限っての制限事項ではないかと想像しています。
が、全く未検証で無責任なコメントにすぎません。(^^;)

ただ、少なくとも桐v8の初期には、「フォーム開始」イベントがらみの不具合が沢山あり、
それよりもオプション属性での「開始時実行」で指定するコマンド牡丹の挙動の方が
相対的には具合よかった事実があったので、
未だにその影をひきずっているとかゆう(妄想モード)。(^^;)
でも「編集状態」って何なんでしょうね?
15497 Re:イベントでのやり方で質問 幅田 2002/03/18-20:03
記事番号15490へのコメント
ONnojiさん
natsuさん
悲しげさん
コメントありがとうございました。
v7の頃に作った一括処理の手直しをやってまして、
v8で動かすので、wfmから開いてイベントでプログラムを組もうとしたのですが、
中にシステムコマンドを使用している部分があったので、しかたなくCMDに戻しました。
フォームから一括処理を動かすこともできたのですが、
今回はCMDからウィンドウ作成でフォームを開くことにしました。
フォームは開いたらすぐに訂正モードで入力可能にしたいので、ここのツリーにあるように
どちらの方法を選ぼうか迷って、最初はフォーム開始イベントを使う方法にしていて
特に問題はなかったのですが、マニュアルの記述を発見して疑問に思ったわけです。

そのフォームには特に編集対象表は設定していません。
ONnojiさんの言われるように編集対象表が設定してある表であれば、問題が起きるのかもしれませんね。
natsuさんの言われるようにプログラムの流れを把握しやすくするためには
あまりフォームにいろいろ設定しないほうがいいのかもしれませんが、
マニュアルにしてはいけないと書いてあることはどうも心配なので
とりあえず、今回はフォームの開始条件の方法をとることにしました。

それと、マニュアルはもう少し具体的な記述でわかりやすい言葉で書いて欲しいと思いました。
それにしても、v5の時のマニュアルはわかりやすかったな〜。
15498 Re:イベントでのやり方で質問 hidetake 2002/03/18-20:22
記事番号15497へのコメント
>フォーム開始イベント

この辺の動作や SP での違いなどは、【多遊】さんの
http://www2u.biglobe.ne.jp/~s_tanaka/cgi-bin/bbs/bbs.cgi?function=logview_html&no=13
あたりにもコメントがあります。


戻る