過去の桐井戸端BBS (桐ver.8)
6299 更新モード変更について しどろ 2000/06/07-10:03
 何回かお世話になっております しどろといいます。 質問するばかりで申し訳なく思っています。
今回 お尋ねしたいのは カード型のフォーム(入力.wfm)から並べ替えを実行した後、
表編集に移るコマンドボタンの作り方です。
 コマンドボタンのタブの「機能名:表編集へ」とイベントを組み合わせて一応は出来るのですが
(実はイベントと機能名を組み合わせて良いのかどうかも不安なところ)、
フォームで訂正中(編集中?)の時に押すと「並べ替えコマンドは更新中、
グループ操作中に付き実行できない」旨のメッセージが出てしまいます。
 そこで、強制的に表示モードにしてから並べ替えなどを実行しようと思うのですが、
過去ログを見て、見よう見まねでやってみましたがうまくいきません。
 メソッド呼び出しを使うのだと思いますが、私はメソッドを使うのが初めてで理解できていません。
 メソッドについては何度も、話題に上っているとは思いますが今一度、具体的に説明してもらえたらうれしいです。
6303 Re:更新モード変更について 悲しげ 2000/06/07-11:53
記事番号6299へのコメント
どもっ、しどろさん
kevを使わないで牡丹だけで済まそうと思うのなら、牡丹の機能4行の中で、
「並べ替え」の前の行で「編集 表示」を加えてはいかがでしょう。

kevを使う場合で、更新モードを表示モードにするメソッドは、
  メソッド呼び出し @フォーム.更新モード設定(0)
です。これを牡丹のマウス左クリックイベントに記述します。
6312 モード変更:「メソッド呼び出し」とは 佐田 守弘 2000/06/07-22:28
記事番号6299へのコメント
しどろさん
編集モードから表示モードに変更するイベントハンドラの書き方は、悲しげさんが
#6303で書かれている通りです。

■ メソッド呼び出しとは
 >メソッドについては何度も、話題に上っているとは思いますが今一度、具体的に
 >説明してもらえたらうれしいです。
メソッド呼び出しコマンドは、桐ver.8でイベントハンドラが使える様になり、イベントハンドラ内で、
オブジェクトに対して何らかの操作を行うために作られたコマンドです。

● 一括処理はプログラム主導型
従来の一括処理は、一括処理のコマンドから表などに対してコマンドで何らかの操作をする方式でした。
そして、そのコマンドによって表に書き込まれているデータないしは変数値に対して何らかの操作を行います。
そしてその時の表は、編集状態ではありません。
例外的なコマンドとして、会話型のコマンド(例えば表形式編集など)がありますが、
このコマンドが実行されると一時的に一括処理は中断し、会話処理モードになります。
そして、会話処理モードが終了すると、プログラムの制御が再び一括処理に戻ります。

表形式編集の様な会話型コマンドを考えてもらえば分かり易いと思いますが、会話処理モードに入ると、
一括処理プログラムが中断しておりますから、例えば編集途中の文字列を処理するとか、
会話処理をプログラムで終わらせるといった、入力中の状態に対してプログラムで処理を行う事はできませんでした。
そして、一括処理では、それで良かったのです。
なぜなら、一括処理はプログラム主導型の構造だったからです。

●イベント処理は会話処理主導型
しかしながらイベント処理の様なプログラムは、会話処理を補助するものです。
会話処理の途中で何らかの決めておいた「でき事」(イベント)が起きたら、対応する処理を行う。
これがイベントドリブン型のプログラムです。そしてそれは、会話処理主導型とも言えます。
そして、フォーム上での会話処理の途中で何か処理をさせる時、編集状態のオブジェクトに対して操作する必要が
出て来ました。
例えば編集途中の文字列を取得するとか、
1つのオブジェクトの入力が終了したら(この状態は更新モードです)、その値を見て何か処理をすると行った事です。
この様な編集途中の状態に対しては、従来の一括処理では、処理を行うコマンドがありませんでした。
イベントハンドラでは、この様な従来の一括処理コマンドの処理対象外であった、
まだ表に書き込まれていない値を処理したり、編集モード中にコマンドで項目値に代入する
(項目値代入)処理を行うため、いくつかのコマンドが作られました。その1つがメソッド呼び出しコマンドです。

■ メソッドで何を呼び出すの?
以前からあった素朴な疑問の1つです。ですが、「メソッド」の言葉に捕らわれる必要はありません。
単に、
 「メソッド呼び出し <対象オブジェクト名>,<処理>(<パラメータ>)」
という一連のコマンドができたと思って下さい。
フォームそのものも含め、指定したオブジェクトに対して、何らかの操作を加えたり、
現在のオブジェクトの状態を調べると行った事を行うコマンドです。
例えば、
・指定したオブジェクトにフォーカスする
・編集途中の文字列を取得し、加工して、編集途中の文字列に戻す
・コマンドボタンを実行する(マウス操作で実行したのと同じ結果になる)
などがあります。

●でもやっぱり「メソッド」って何?
知る必要は全くありませんが、参考までに。
C言語の概念で、プログラムのブロックの様なものをさす言葉だそうです。
どうして「メソッド」という名前なのかは、管理工研に聞いても分かりません。
どうしても知りたければ、命名者であるMicrosofのビルゲイツに聞いて下さいとの事でした。
多分ビルゲイツが気まぐれでつけた名前でしょうか。

通常の一括処理はデータベースエンジンに対するコマンドです。
これに対してメソッド呼び出しは、入力インタフェース部分のプログラム内にある
フォーカスを動かすメソッド、文字列の入力処理を行っているメソッドなどを呼び出すコマンドです。

【参考】
メソッド呼び出しコマンドに関しては、私のHPにも解説記事があります。
コンピュータ活用情報室(出版館)→「桐のガイドブック」→〔桐のQ&A集〕
この中で、メソッド呼び出しコマンドの具体的な使い方を書いてあります。

佐田守弘(KS-00119)
6318 Re:めそっど hidetake 2000/06/07-23:37
記事番号6312へのコメント
佐田さんは Access も使われ、桐との比較?(違い?)もたまにされますが、
メソッドについて MS の概念を知りたければ、
取りあえず Access のヘルプファイルでも見られたらいかがでしょうか?

Access で無くとも、#6187 で取り上げた vbs の CopyFile も
書いてあるとおり1つのメソッドです。

6319 Re:めそっど hidetake 2000/06/08-00:07
記事番号6318へのコメント
あと、メソッドと言うとプロパティと言う言葉が対に出てきそうですが、
桐を初めこの辺の言うところのメソッドとは、オブジェクトに関連している
言葉のような気もしますが、そうなると、これを最初に使ったのは
本当に MS なのでしょうか? オブジェクト指向を最初に目指した XEROXなような気もしますが、どうなのでしょう?

この辺の事はあまり詳しくないし、相当昔のことなのなので調べるのも
大変なので詳しいことはわかりません (^_^ゞ

メソッドなり method と言う言葉自体は、手持ちの過去ログを調べても
現存するログの 90年代初期の頃からいろいろなところで使われており、
DB 関係では92年2月の「Btrieve のパッシブ・メソッド」でした。

手持ちはそれ以上古いのは無いので、一般的に使われたのは相当前なのでしょうね...

6325 Re:めそっど 宮城 2000/06/08-09:44
記事番号6319へのコメント
懐かしすぎる話題です。
つづりは忘れましたが、「ジーンズ」というのがありました。
アプリケーションのドキュメント作成に使ってましたが、
「プロパティ」なる用語が実感できず、たとえば線を太くしたいとき
「プロパティさまにお願いして」、柏手ぽんぽん、などとやっていましたね。
1986年頃かな。あの流れはどこにいっちゃったんだろ?
(アップルに化けた?)

マウスなるものもジーンズで初のお目見えでした。
ただ、当初は鉄球を使っており、鉄粉リッチな製鉄所環境ではよろしくないと硬質ゴムに
改善されたとか聞き及んでおります。

「めそっど」は当時の記憶にはないですが、ちょっと確認してみましょうか。

おお、過ぎ去りし我が二十代の日々よ。

6326 Re:めそっど hidetake 2000/06/08-13:49
記事番号6325へのコメント
プロパティ自体はオブジェクト指向に比べて新しい言葉かと
思っておりましたが、もっと昔からあったのですね...

う〜む、それにしても「ジーンズ」と言うのは知りませんでした。
私がマウスを見たのは同じ頃 XEROX の STAR だったでしょうか?
隣の課にあっただけであまり触った事も無いのですが... (^_^ゞ

メソッドと言う概念も MS 以外では、MS の言うところの
イベントプロシージャも含めて言う場合もあるようですし、
追求していけばクラスとかいろいろ勉強しないといけないようです。

それにしても K3 の説明は何なんだろう?
C を引き合いに出すなら C++ だろうし......
説明が面倒だけだったのかな?

6341 Re:めそっど hidetake 2000/06/09-08:53
記事番号6326へのコメント
こんなのもあると言うことで... (興味のある方は次へ進で更に研究方)

http://lecture.ecc.u-tokyo.ac.jp/~ktanaka/programming99/1110-1.html

6343 ありがとうございました しどろ 2000/06/09-10:05
記事番号6341へのコメント
どうも、しどろです。
御礼が遅くなりました。なんとか思いどうりになりました。
悲しげさん、まさに、一瞬にしてご返事をもらっていたのに気づいていませんでした。
実は、その書式のような気がしていたのですが、オブジェクト名などの意味が分からず躊躇していました。
また、@のあとのフォームは半角で書くのですね。
ここが最後の突破口(オオゲサ)でした。
また佐田さん、解りやすい説明ありがとうございました。

オブジェクト指向の歴史まで、話題がさかのぼってしまいまして・・・
私が参加出きる話は、XEROXのSTARの廉価版のドキュメントシステムを使ったことがあるのと、
初めて買ったマウスが潟Aスキー製で「鉄球」だったことぐらいでしょうか。
懐かしい話しです。

6346 要望>構文記述(カナ)の半角/全角 悲しげ 2000/06/09-11:01
記事番号6343へのコメント
どもっ、しどろさん

>@のあとのフォームは半角で書くのですね。ここが最後の突破口(オオゲサ)でし
た。

この掲示板では、半角カナで入力しても受け付けてくれまして、
自動的に全角表示されるようですね。
しかしながら、これをコピー&ペーストすると半角になってますから、表示だけのようです。

ってことはさておき、kevの記述に当たっては、半角・全角の関係も含めて、
私はなるべくHTMLヘルプからコピー&ペーストして使うようにしています。
この点に関連して、改善要望がふたつほどありますので、ついでに書かせていただきます。
1)記載例等は別途ヘルプを参照するとしても、特にメソッドに関しては、
構文だけでも[End]または[Alt]+[↓]で一括処理エディタから貼りつけできるようにして欲しい。
2)構文解釈(カナ文字)において、半角オンリー、全角オンリー、
どちらでも可の3種類が錯綜しているような印象を受ける。
ここはどちらでも可に統一すべきである。
6359 同感!要望>構文記述(カナ)の半角/全角 佐田 守弘 2000/06/09-22:24
記事番号6346へのコメント
しどろさん、悲しげさん
>ここはどちらでも可に統一すべきである。
全くの同感です。
コマンドの英字別名や、コマンド名の大文字小文字の同義扱いが可能なのですから、
メソッド呼び出しコマンドでの「フォーム」の部分は全角半角どちらでも良い様にして欲しいです。
おそらくこのミスによるエラーに苦しんでいる人は少なくないのでは。

悲しげさんはヘルプファイルからのコピーとの事ですが、これが最も良い方法ですね。
次なる手段として、「@フォーム」の部分を辞書に登録しておく方法もあります。
コマンド名や関数名は辞書登録しておくと便利ですね。
例えば、一例として、
#s →<変換>→ #S([],"","")

佐田守弘(KS-00119)
6367 Re:異議あり(^^; 構文記述(カナ)の半角/全角 bonito 2000/06/10-12:33
記事番号6359へのコメント
両巨頭に異議を申し立てるのも…どうかと思いましたが、

>コマンドの英字別名や、コマンド名の大文字小文字の同義扱いが可能なのですから、メソ
>ッド呼び出しコマンドでの「フォーム」の部分は全角半角どちらでも良い様にして欲しいです。
>おそらくこのミスによるエラーに苦しんでいる人は少なくないのでは。

この場合の「フォーム」(半角)は、ある一つのオブジェクトを指す(固有の)名前である筈ですから、
矢張り全角と半角は、例えば変数名がそれを明確に区別するように、
どちらでも良いという訳にもいかないんじゃないかな、名前ですから (^^;

これは【多遊】さんにも確認して頂いていますが、WFMの最上位のオブジェクト名である
「フォーム」(半角)が、何らかの拍子に「枠_」となってしまったWFMがありまして、
このWFMでは メソッド呼び出し @フォーム.更新モード設定(0) は不可で
 メソッド呼び出し @枠_.更新モード設定(0) としなければなりません。

ただWFMの最上位のオブジェクト名をフォーム半角とするセンスやその事に対する情報の提供の仕方や、
別の(子)オブジェクトにもフォーム(半角)と名前を付けようと思えばつけられちゃったりする
(オブジェクト名が重複していると警告はしてくれるが)…等々疑問
??がない訳じゃないが…。

いっその事、WFMの最上位のオブジェクト名もユーザーに開放して自由に命名するも可というのはどうだろうか?
駄目かな (^^;


6374 Re:異議あり(^^; 構文記述(カナ)の半角/全角 hidetake 2000/06/10-23:19
記事番号6367へのコメント
なるほどね! 鋭い指摘だ...

本来、フォームと言うオブジェクトにはフォームファイル名が入るべきなのだろうだけど、
フォームを1つずつのファイルとして持っている桐では、ファイル名としての大文字・小文字の
取り扱いの事も考えて、敢えてフォームとしたのでしょうか?

それでも、@フォーム明細部等のセクションとか、その他固定されているオブジェクト名とか、
属性名の付け方に疑問も出てくるわけですね...
それが、ファミリと使っていたりファミリーだったり、表題が
あったり標題があったりしますしね...

あとそれはそれとして、メソッドがオブジェクトに対する処理なら、
@フォーム.フォーム選択って、何か変ではないですか?
それにアクティブ設定も

6383 Re:異議あり(^^; 構文記述(カナ)の半角/全角 bonito 2000/06/11-21:05
記事番号6374へのコメント
hidetakeさんのフォローを頂いてやっとコメントとしての
体裁を保てたかと… m(__)m

>あとそれはそれとして、メソッドがオブジェクトに対する処理
>なら、@フォーム.フォーム選択って、何か変ではないですか?
>それにアクティブ設定も

あっ、ハイ!
6384 Re:異議あり(^^; 構文記述(カナ)の半角/全角 佐田 守弘 2000/06/11-21:56
記事番号6367へのコメント
bonitoさん
>両巨頭に異議を申し立てるのも…どうかと思いましたが、

どうぞ御心配なく。この様な問題は、様々な意見があってこそ意味があります。
元来が正解など存在しない問題だと思います。最後に断を下すのは管理工研の開発。
多数の人から、使い易さその他を含めて様々な意見が出される事が必要で、結論を導く必要はないと思います。
むしろ、管理工研に判断材料を提示するといった事に意味があるのかと思います。

佐田守弘(KS-00119)
こう言った所に出される意見や議論は、開発の参考になっているらしいですから。

戻る