過去の桐井戸端BBS (桐ver.9) |
20997 | イベントハンドラ内の記述からフォーム編集を行いたい | 沼田政治 | 2003/06/21-01:32 |
いつもお世話になります。桐Ver9です。 イベントハンドラ内での記述によってフォーム編集を行う方法を教えてください。 編集対象表は1つです。 表示/確認用の一覧表形式のフォームと入力/訂正用のカード形式のフォームを作っています。 一覧表形式のフォームを表示させておき、 必要とされるタイミングで訂正用フォームで編集を行いたいと思っています。 通常は、一覧フォームにコマンドボタンを置き、フォーム選択などの機能を実行させることになると思います。 これをコマンドボタンを使わないで行う方法がないかと考えています。 一覧フォームでは全項目の一部(テキストで置いている項目のみ)しか編集が出来ませんが、 多くの場合はそれで仕事を進めることが出来ます。 しかし、時には全項目に対して編集したい場合もあり、この時にカード形式フォームに全項目を置き、編集したいと思っているのです。 量的には画面の4分の1程度で済みます。 さらに、都合で縦長や横長の配置が出来ないのです。 ほぼ正方形の体裁になってしまいます。 一覧形式では出来るだけたくさんのデータを表示したいので、最大化でフォームを表示しています。 その画面の右下、ほぼ4分の1のスペースに訂正用カード形式フォームを表示したいという要望です。 コマンドボタンでフォームを表示させる方法では、画面の右下(例えばx位置=300,y位置=300など)に表示させることは 出来ないと思っています。 フォームのプロパティで下寄りや右寄りを指定することはできるようですが、 それだけでは不十分と感じていますので、コマンドボタン以外でフォームを表示する方法を探しているのです。 ウィンドウ作成命令のようにx位置、y位置を 指定できるような方法はありますでしょうか。 考えた方法は、項目のマウス左クリックイベントにウィンドウ作成やフォーム呼び出し命令を書くことでした。 でも、ウィンドウ作成命令は一覧形式フォームで既に編集対象表を開いてしまっていますのでエラーになります。 と言って、一覧表示されているデータを参考にしながら訂正用フォームの編集をしたいと思っていますので、 一旦編集対象表を閉じることもできません。 何か良い方法などはないものでしょうか。 | |||
21010 | Re:イベントからフォームを開きたい | たゆー | 2003/06/21-11:16 |
記事番号20997へのコメント 再度ご返事を。 沼田さんこんにちは。いま、〔井戸端補完〕にファイルをアップ致しました ご質問のお答えになってれば、いいのですが。 | |||
21042 | Re:解決しました | 沼田政治 | 2003/06/21-22:56 |
記事番号21010へのコメント たゆーさん、ありがとうございます。解決しました。 返事が遅くなり申し訳ありませんでした。 土・日にかかってしまい、プライベートな理由でサイトを確認することが出来ませんでした。 大変失礼し、本当に申し訳ありませんでした。 課題は解決しました。全くUP頂いているファイルの動作そのものを試行錯誤していたのです。 サブフォームの表示/非表示でこのような動作になるとは思いもしませんでした。 サブフォームを配置すると言うことは、最初からメイン/サブの配置が決まっていて(固定されていて)、 ただデータの表示方法だけが異なるものと思い込んでいたのです。 考えてみれば、オブジェクトの属性に「画面表示する」などの選択肢がある訳ですから、 これを"「しない」と選択する場面がある"ということを、もう少し考えるべきでした。 このような利用方法にも使えるということですね。 これから一つずつ、確かめながら理解していこうと思います。 ありがとうございました。 最後に厚かましい上に失礼な質問ですが、 この動作をさせるために、例えばワーク領域にフォームを開く機能を割り当てたコマンドボタンを置いておいて、 メソッド呼び出しで実行させてみる、などのこともやってみましたが、できませんでした。 今回の希望の動作をさせるためには、他の方法では無理があり、 たゆーさんに教えて頂いた方法が最も妥当だ、という風に理解してもよろしいでしょうか。 | |||
21045 | Re:解決しました | たゆー | 2003/06/22-06:30 |
記事番号21042へのコメント 沼田さん、おはようございます > Re:解決しました とのことで幸いです。ただ、まだ質問にお答えしてない部分を紹介しておきます >20997 >これをコマンドボタンを使わないで行う方法がないかと考えています。 と、記載されていたので、単にトグルボタンにしました。が、 >考えた方法は、項目のマウス左クリックイベントにウィンドウ作成やフォー >ム呼び出し命令を書くことでした。 >21042 >この動作をさせるために、例えばワーク領域にフォームを開く機能を割り当 >てたコマンドボタンを置いておいて、メソッド呼び出しで実行させてみる、 >などのこともやってみましたが、できませんでした。 いったいどのようにして、カード形式フォームを開きたいのかがわかりません 通常、「項目のマウス左クリック」は、項目の選択・訂正などに使用します。 そこに、「左クリックイベント」を、組み込むと、クリックするたびにイベントが実行されてしまいますね。 それでよければ「項目の左クリック」で、起動し、「メソッド呼び出しで実行」する方法はあります。 以下に紹介しておきますお試しください。 ※仮に左端の[No]に組み込むとします。 ・テキストオブジェクト「tNo」の、マウス左クリックにチェックをする ・ワークエリアに、コマンドボタン「bサブ表示」を、作成 機能:手続き実行、パラ:サブ表示 ・イベントに 手続き定義開始 tNo::マウス左クリック(長整数 &マウス位置[2],・・省略・・) メソッド呼び出し @bサブ表示.実行() 手続き定義終了 手続き定義開始 サブ表示() if(&サブ表示=1) オブジェクト操作 @subwfm.画面表示 ="0" &サブ表示=0 else オブジェクト操作 @subwfm.画面表示 ="1" &サブ表示=1 end 手続き定義終了 以上で可能です。質問の主旨と有ってるかどうかは疑問ですが、お試しください >今回の希望の動作をさせるためには、他の方法では無理があり、たゆーさん >に教えて頂いた方法が最も妥当だ、という風に理解してもよろしいでしょう >か。 「最も妥当」というより、希望(質問の答え)通りになってるかですね。 違ってたら再度質問下さい。他の方法を紹介いただけるかもしれません。 | |||
21046 | Re:解決しました | たゆー | 2003/06/22-07:06 |
記事番号21045へのコメント 補足です >桐Ver9です。 それなら、マウス右アップ&ファミリーを利用して テキストオブジェクト全てに、ファミリー登録を行い、ファミリーで 右アップイベントを作成。内容は 手続き定義開始 ファミリ_1::マウス右アップ(長整数 &マウス位置[2],・・省略 &右メニュー) &右メニュー = 0 メソッド呼び出し @bサブ表示.実行() 手続き定義終了 こちらの方が、項目訂正状態にならずいいかも知れませんね。 | |||
21049 | Re:一覧状態で編集中に新たなフォームを開きたいのです | 沼田政治 | 2003/06/22-11:58 |
記事番号21046へのコメント たゆーさん、ありがとうございます。 データを一覧状態で編集している時に、新たにフォームを開いて、そのフォーム内からも編集したいのです。 1件のデータの項目数は伝票形式などにしても2行や3行では収まりません。 しかし、通常の編集作業では必要とされる項目数は限られていますので一覧表形式の1行での表示で間に合います。 一覧表形式の方が多くのデータを見ることが出来ますので、これを基本の状態にしています。 訂正や行追加などもこの一覧表形式で行います。 見えていない項目はとりあえず初期値を入れておいて、後から修正しようと考えているのです。 しかし、作業中には見えていない項目についても訂正したい場合が出てきます。 そんな時に全項目を配置したカード形式フォームを呼び出して、そこで作業を続けたいと思ったのです。 この時、[コード]の項目は訂正することはありませんから、[コード]をクリックすることでカード形式フォームを呼び出せないかと考えたのです。訂正が必要と感じた瞬間の操作者の注意はその行にありますから、 その行の項目をクリックする方が欄外に配置されているボタンなどを操作するよりも操作性が良いのではないかと考えました。 その為のマウス左クリックイベントの利用でした。 カード形式フォームは「新しく作る」というイメージしか持つことが出来ませんでしたから、 何とかして新規にフォームを表示させようと四苦八苦していたわけです。 たゆーさんのように、作っておいたフォームを見えなくしておいて必要に応じて見えるようにする、 という発想ができなかったのです。 他の過去ログなどを見ていても、今回のような課題については、"見えなくしておいたものを見えるようにして使う"という手段が 便利なようですね。 DOS世代の名残かもしれません。 ウィンドウをたくさん開いておいて、それを切り替えながら作業するという考え方ややり方に付いて行けていません。 1つの画面で作業し次の画面で作業するには、前の画面を消しておかないと....、とか、 どうにかして2つの画面を1つの画面に合成して...、とか。 ついついそんな風に感じてしまいます。 今回の問題は、結局はそんなところでの問題ではなかったかと感じています。 課題を解決するには、たゆーさんに教えていただいた方法が最も適切だと感じています。 ただ、トグルボタンは使わず、やっぱり[コード]項目のクリックで表示させようかな、とは考えていますが....。 その外では、ショートカットキーを定義してみたり、ファンクションキーに割り当てられればもっと使いやすくなるような気もしていますが...。 これからの挑戦ですね。いろいろとありがとうございました。今後もよろしくお願いします。 | |||
21050 | Re:[多重化]コマンドの例 | ONnoji | 2003/06/22-14:49 |
記事番号20997へのコメント 沼田政治さん、こんにちは。 【多遊】さん横レス、失礼します。m(__)m すでに解決済みのところへお邪魔虫のように現れてすいません。(^^ゞ というのは、【多遊】さんが示された、 メイン&サブフォーム方式以外のやり方もありますので、 この際ご参考になればという程度でお読みください。 同じ表の内容を表示するというところが今回のポイントだったようです。 これが別の表の内容を表示することならば、沼田さんは簡単に出来たのではないかと思います。 同じ表の内容を表示する場合には[多重化]がキーワードになります。 実は【多遊】さんのサブフォームもメインフォームと同じ表を対象にしています。 そのために明示的ではありませんが、これは多重化していることに他なりませんね。 ※ファイルパレットの[編集表]を見ると分かります。 実は【多遊】さんのサンプルを見せて頂いて、 メイン&サブフォームで多重化するというアイデアに意表を突かれました。 しかも極めて内容がシンプルですね。 【多遊】さん、さすがですね。 さて、[多重化]というコマンドを使えば、 編集対象表のコピー(?)が簡単に作れます。 ただし、多重化した表は基本状態(?)で開かれるのでこの点に注意が必要です。 ※これをスッポンポンと表現された人もいらっしゃいますが…(^^ゞ サンプルaddress2 sub2 をアップしましたので、 細かい点はサンプルをご覧下さい。 http://www.fuku3.com/~habata/cgi-bin/bbs1/clip.cgi [37] 多重化による方法 投稿者:ONnoji 投稿日:2003/06/22(Sun) 14:13 多重化とモーダルフォームの例です なお、今回のサンプルは[フォーム呼び出し]コマンドを使っています。 これはモーダルウィンドウにしたほうが処理が簡単なためです。 これは、ウィンドウ作成 ・・・ 編集表=する で、 モードレスウィンドウを作ると、 ウィンドウの位置は指定できますが、 データを連動させのが大変になるためです。 なお、サンプルは【多遊】さんのものを流用させていただきました。 勝手なことをしてスイマセン。m(__)m > 【多遊】さん サンプルはあくまでもサンプルですので、 きっと沼田さんのご希望にあうものではないと存じますが、 こういうやり方もあるというひとつの例としてご覧下さい。 | |||
21051 | Re:一覧状態で編集中に新たなフォームを開きたいのです | 悲しげ | 2003/06/22-15:07 |
記事番号21049へのコメント 沼田さん、たゆ〜さん、私もちょっと割り込みですが、 >その外では、ショートカットキーを定義してみたり、 >ファンクションキーに割り当てられればもっと使いや >すくなるような気もしていますが...。 1)ショートカットキー(正確には「アクセスキー」ですが)を使う方法はとても簡単です。#21045の記述を借用すれば >・ワークエリアに、コマンドボタン「bサブ表示」を、作成 > 機能:手続き実行、パラ:サブ表示 ボタンの名前が「サブ表示」だとして、アクセスキーとして 例えば[Alt]+[S]を使う場合なら、ボタンの標題を &S サブ表示 のようにします。 2)ファンクションキーを使うなら、「キーダウン」イベントにチェックを入れて、kevの記述は例えば次のようにします。 手続き定義開始 フォーム::キーダウン(長整数 ・・・・・ 変数宣言 自動,長整数{&更新も} メソッド呼び出し @フォーム.更新モード取得(&更新も) 条件(&更新も>0) 手続き終了 /*表示モード時のみとする*/ if(&仮想キーコード=112) /*例えば[f1]キーを使う場合*/ &処理中止=1 /*これは当該キーの桐本来の機能を一時的に殺すため*/ メソッド呼び出し @bサブ表示.実行() end 手続き定義終了 3)マウス左クリックを使いたいが、項目訂正モードにはしたくないのなら、 例えば[Shift]+左クリックで我慢する方法もありえます。その場合は、 手続き定義開始 tNo::マウス左クリック(長整数 &マウス位置[2],・・省略・・) if(&フラグ=4) /*&フラグ=5とかは試してません(^^;)*/ &処理中止=1 /*これは当該キーの桐本来の機能を一時的に殺すため*/ メソッド呼び出し @bサブ表示.実行() end 手続き定義終了 /すっぽんぽん?悲しげ | |||
21057 | Re:[多重化]コマンドの例 | 沼田政治 | 2003/06/22-23:44 |
記事番号21050へのコメント ONnojiさん、ありがとうございます。 最初に頭の中にイメージした"絵"は、正にONnojiさんに示していただいた絵そのものでした。 この絵を出そうとして四苦八苦していたのです。 確かに今回の問題のポイントは同一の表を使うというところにあったようです。 エラーはそのように返してきていましたから。 しかし、その時に自分の中には「多重化」という概念はありませんでした。 使う表は同じで、ただそれをどのような見映えで画面に出すかだけの問題と、最初からタカを括っていたからです。 表が開いていないのなら、まず開いて、使うフォームを選んで、 などという考えが繋がっていくのですが、元から開いているわけですから、 後は使うフォームさえ切り替えれば簡単に出来上がると思っていました。 そんな時にエラーで弾かれてしまってパニックになってしまっていたようです。 その時には「多重化」というコマンドさえ目の中には入ってきていませんでした。 説明を読むと、確かにそのような時のために使うコマンドということは分かりましたが、 「多重化」という概念が必要だということすら理解出来ていなかった段階では、 コマンド検索などで一覧に表示されていても目の中に入ってくることはなかったのです。 この処理さえ出来ていれば、あるいは最初にイメージしたような処理も可能だったわけですね。 それどころか、ウィンドウ作成の処理と組み合わせて、その都度表示させる位置を変えることさえ出来るかもしれないと思えてきました。 例えば、開いたフォームでデータが隠されることが不都合になった時など、フォーカスのある項目の位置を取得しておいて、 プログラム上からその場所を外して表示させる、などというようなことも可能になるのかもしれません。 ただ、モーダル形式でないフォームを使うには元フォームとのリンク関係がややこしいかもしれないという予感もあり、 今の所はここまでの要求もないことから、もう少し余裕が出てきた時には挑戦してみたい事例だなと感じています。 いずれにしても「多重化」という概念の存在そのものを、ONnojiさんには教えていただきました。 今までは、ただ偶然に多重化の条件を満たしていただけということに気が付きました。 まだまだ実体を理解するまでには至っていないと思いますが、 いろんな事例から確かめてみたいと思います。 ありがとうございました。 | |||
21058 | Re:一覧状態で編集中に新たなフォームを開きたいのです | 沼田政治 | 2003/06/23-00:37 |
記事番号21051へのコメント 悲しげさん、ありがとうございます。 たゆーさんのアドバイスが、直感的に"キレイ"で、これだなっていう感じです。 ただ一つは、編集作業はキーボードに手を置いた状態で進めますから、 できるだけ手の動きは少ない方が良いかなと感じています。 いちいちマウスに手を移すのが面倒になってきているのです。 それを解決するにはショートカットキーの2打にするかファンクションの1打にするか、という、考えてみれば贅沢な悩みです。 基本的に日本語を入力するなど、キーボード上に指をセットしながら作業を進めることの多い場面では ファンクションが使いやすい、という固定観念があります。 たぶん、桐5時代に頻繁にファンクションを使ってきた癖が残っているのかもしれません。 マウスを使う場合は、ファイラやペイント位でしょうか。意味のある入力を続ける場合は、 マウスなど探さなければ見つからないような状況にまで追いやられています。 しかし、いくら気に入ったとは言え、すぐに使いこなせるものでもないですね。 ファンクションへの割り付けは朧気ながらも見当が付いていたはずでしたが、 &処理中止=1 これに思い当たることが出来ませんでした。 そもそも、コマンドに限らず、イベントに限らず、なぜパラメータが必要なのかが分かっていないのです。 手続定義になぜ()が必要なのかも分かっていません。 そんな中での試行錯誤で、今日は&処理中止の使い方を教えていただきました。 考えてみれば、この変数がなければ使い勝手の悪さは致命的ですよね。このような引数の戻り値などは解説されていますが、 なぜ必要なのかなどは読んでいてももう一つ理解し切れません。 やはり、今回のような"経験"しか、手はないようにも思えます。 悲しげさんからのコメントが貰えていなければ、明日辺りこの件で投稿しなければならなかったところでした。 本当にありがとうございます。 もう2つ・3つ、尋ねてみたいこともありますが、もう少し整理してからということにしたいと思っています。 その際には、またよろしくお願いします。 | |||
21060 | Re:[多重化]コマンドの例 | ONnoji | 2003/06/23-10:04 |
記事番号21057へのコメント >偶然に多重化の条件を満たしていただけということ >に気が付きました。まだまだ実体を理解するまでには至っていないと思いますが、 >いろんな事例から確かめてみたいと思います。 沼田さん、こんにちは。 (1)サンプルの sub2.wfm を次のように変更すると… sub2.wfm のフッタ部を削除し(グループ項目を削除してもOK)、 フォーム操作バーを表示するようにすれば、 sub2.wfm で他のレコードも編集できます。 これはこれで便利かもしれません。 なお、レコードのマッチングはユニークな値の項目があればいいですが、 もしも、ユニークな値が無ければ、カウンタ型の項目をマッチング用のキーとして利用すると便利ですよ。 (2)多重化を使わず… [フォーム選択]メソッドを使えば本当に address2.wfm → sub2.wfm へフォームを切り替えることも可能です。 −例− 手続き定義開始 cmdフォーム切り替えClick( ) 変数宣言 自動,数値{&return} メソッド呼び出し 戻り値 = &return ,@フォーム.フォーム選択( &mSubWfm ) if (&return <> 1) 確認 &mSubWfm + " を選択できませんでした" end 手続き定義終了 ※@フォームのフォームは半角カタカナです。 歌舞伎の早変わりなら楽しいのですが、 私にはフォームが早変わりするのはドッキリするだけであまり良いデザインとは思えませんが…(^^ゞ このように、どういう方法が適当なのかはケースバイケースですので、いろいろと検討してみたらいかがでしょうか。 | |||
21068 | Re:[多重化]コマンドの例 | 沼田政治 | 2003/06/23-23:56 |
記事番号21060へのコメント ONnojiさん、こんばんは。 少し仕事が立て込んでいますので、頻繁にBBSもチェックできず失礼しています。 以前からも感じていたことですが、一つのことをするにも色んな方法があるものですね。 方法というより、アイデアかも....。 これらのアイデアも計算済みでK3さんが設計されているのか、みなさんがプロの、さらに上を行かれているのか、 どちらにしても、それを実現させてくれる桐というシステムは、やはり優秀なんでしょうね。 改めて感心です。....、尤も、それがために初心者は苦労もしますが...。 メソッドでのフォームの切り替えというのは、文字通りフォームそのものを替えてしまうものですよね。 今回のように、フォームを使いながらもう一つ別のフォームを開いて、っていうには不都合が出るとは思いますが、 この動作は確かに同一の表を使いながら複数のフォームを使っていますね。 フォームをオーバーラップさせたりポップアップさせたりするのでなければこちらの方をまず試してみる、 それで不都合なら「多重化」命令で元のフォームを隠してしまって、 あたかもフォーム自体が切り替わったように見せかける、そんな使い方になるのかな?とも思いました。 もう一つの、「多重化」による方法について確認したいことがあります。 今回教えていただいたように、呼び出すフォームにフォーム操作バーやスクロールバーを配置しておかないと 他のレコードは編集できないですよね。 例えばこれがメイン/サブフォームであれば、メインフォームのレコード移動に連動してサブフォームのデータが切り替わり、 どちらのフォームでも編集を進めることが出来ますが、多重化で呼び出したフォームではそれが出来ません。 処理の対象が、すべて移ってしまうのですね。 多重化で開いた場合は、それが表であってもフォームであっても、一切の操作の権限が移ってしまう、 というような理解で良いんでしょうか。メイン/サブのように目には見えていても、使えるのは最前面のフォームだけだという風に...。 実はサンプルのkevを見せていただいて、多重化で開いた表の番号を変数に取り込んでおいて、 処理の最後にこの表を閉じる、という意味が分かりませんでした。 「多重化」という命令は、同じ表だけど今から違うフォームで処理しますよ、というだけの意味かな、 位にしか理解できていなかったようです。 なぜ閉じなければならないんだろうと考えていたんですが、 もしかしたら、本当にもう一つ同じ表が開いているのではないかと思い当たりました。 でも、呼び出したフォームでは新しく開いた"同じ表"に対して編集して、以前に開いておいた"同じ表"は扱っていないので、 一旦閉じることによって2つの"同じ表"の同期をとる、....ということになるのでしょうか? だから、連動してはいけないし、元のフォームに戻るにはきちんと閉じておかないといけないし....、 となるのかもしれないなと感じています。 もしそうなら、これは禅問答ですよね。分かったような、分かっていないような....。 | |||
21070 | Re:[多重化]コマンドの例 | ONnoji | 2003/06/24-10:29 |
記事番号21068へのコメント 沼田政治さん、こんにちは。 >もう一つの、「多重化」による方法について確認したいことがあります。 >多重化で開いた場合は、それが表であってもフォームであっても、一切の操作の権限が移ってしまう、 >というような理解で良いんでしょうか。 多重化した表の表ウィンドウや、 多重化した表を編集対象表にしたフォームに、 フォーカスがあればそうなりますね。 これは、現在操作可能な(アクティブな)ウィンドウという感覚ですね。 >実はサンプルのkevを見せていただいて、多重化で開いた表の番号を変数に取り込んでおいて、処理の最 >後にこの表を閉じる、という意味が分かりませんでした。 >「多重化」という命令は、同じ表だけど今から違うフォームで処理しますよ、というだけの意味かな、 >位にしか理解できていなかったようです。 >なぜ閉じなければならないんだろうと考えていたんですが、もしかしたら、本当にもう一つ同じ表が開 >いているのではないかと思い当たりました。 そのとおり、本当にもうひとつ表を開いているのです。 つまり多重化オープンという意味です。 サンプルでは、多重化して閉じてという具合にしてありますが、 これは動作がシンプルで確実なためです。 もちろん、予め多重化しておいて編集対象表を切り替えてまた切り替えてという具合にも出来ます。 ただし、Windowsではディスクのキャッシュが相当効いているので、 その都度、多重化→閉じる というデザインでも処理速度にはあまり影響がないと思います。 しかし、必要も無い時に多重化した表が開いているのは、物事を複雑にするという点にも注意が必要です。 多重化は、一種の共有オープンみたいなものですから、 一方が訂正中だと、他方が…という問題があります。 これは、フォームを使わずに表( .tbl )を開き、 [ウィンドウ]メニュー → [新しいウィンドウを開く]で表を多重化して、 ご自身でいろいろと実験してみれば分かると思います。 フォームを使うことに慣れてしまうと、表編集をすることをしなくなりますが、 実は、フォームというのは表の上に重ねたフォーマット画面と同じなので、 データ操作に関しては、表編集であらかじめ動作を確認するほうが良いです。 ※NULLフォームは例外です。 時折、一括処理が書けるのに、表編集で操作が出来ない人がいます。 これでは上手に一括処理が作れるはずがありません。 フォーム+イベントの場合も同じです。 老婆心ながら… いきなりオーバーラップ形式のフォームでプログラムを開発しようとする人がいますが、 これは良くないと思います。 最初は、チャイルド形式のフォームで開発し、 徐々にポップアップ形式やオーバーラップ形式に変更していくのが良いアプローチだと思います。 また、複数の表を開く場合には、 あの使いにくい[ファイルパレット]の、 「〜したら閉じる」という設定を無効にして、 [ファイルパレット]の[編集表]で表やフォームのオープン状況をチェックする習慣を付けると良いと思います。 >でも、呼び出したフォームでは新しく開いた"同じ表"に対して編集して、以前に開いておいた"同じ >表"は扱っていないので、一旦閉じることによって2つの"同じ表"の同期をとる、....ということになる >のでしょうか? だから、連動してはいけないし、元のフォームに戻るにはきちんと閉じておかないと >いけないし....、となるのかもしれないなと感じています。 多重化した表を閉じなくても同期はとれていますよ。 これも、フォームを使わずに表( .tbl )を開き、 [ウィンドウ]メニュー → [新しいウィンドウを開く]で表を多重化して、 ご自身でいろいろと実験してみれば分かると思います。 >もしそうなら、これは禅問答ですよね。分かったような、分かっていないような....。 コンピュータの動作は単純明快です。 禅という東洋の誇るべき文化と比べるのは禅に対して失礼ですよ(これは冗談です)。(^^ゞ 今回も長々と失礼しました。 多重化の件はこれくらいですべてご了解いただけたと思います。 ということで、私は退散いたします。 ご健闘を祈ります。 それでは…(@^^)/~~~ | |||
21093 | Re:[多重化]コマンドの例 | 沼田政治 | 2003/06/24-23:58 |
記事番号21070へのコメント ONnojiさん、こんばんは。 とにもかくにも、実際にやってみないことには分からないだろうということだし、それは真実ですよね。 一見簡単そうな記述のコマンドを書くにも、実際に書いてみたら思った通りに動かなかった、なんてしょっちゅうのことですから。 >時折、一括処理が書けるのに、表編集で操作が出来ない人がいます。 そう、僕のことですよね。 >フォームを使うことに慣れてしまうと、表編集をすることをしなくなりますが、 その通りです。 >いきなりオーバーラップ形式のフォームでプログラムを開発しようとする人がいますが、 >これは良くないと思います。 全く、その通りですね。 これは、オーバーラップなどを使ってしまうと操作関係のバーなども使えなくなることもあり、トレースするにも不便だ、 ということだけでなく、基本から応用へ地道に進んでいく方が結局は近道だよという意味だろうと、勝手かもしれませんが理解しました。 つい、目先の派手さに釣られて、チャイルド形式よりもポップアップでカッコを付けてみたりしてしまいますが、 このことが"ドツボ"にはまる原因を作っているっていうのが、このところの僕のいくつかの質問の本質でした。 もっと基本的なところで作業を確かめていったら何のことはないような部分が多かったな、と反省しています。 とはいえ、 何とか使えるシステムに組み上げるのを急がなければならない事情もありますから、 それと、「やっぱり桐を使わないとダメだな」と、第三者や第四者に納得させなければならない事情もありますから、 もう少し悪戦苦闘してみようと思っています。 結局懲りずに、また何かとご迷惑をお掛けすることになると思いますが、その際にはよろしくお願いします。 ありがとうございました。 |