(現在 過去ログ8 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■1090 / inTopicNo.1)  イベント処理
  
□投稿者/ さとう -(2006/05/23(Tue) 12:01:10)
    はじめて質問をします。
    職場で桐を使ったデータ管理をしています。
    今までは,自分で表を作ってフォーム作成をしてイベント処理や一括処理は一切使わずに今日まできましたが,そろそろイベント処理について真剣に勉強しようと思っていますが,
    イベント処理や一括処理については全くの初心者です。
    そこで,質問です。
    1.変数宣言とは?
      組み込み変数
      共通変数
      固有変数
      指定するための注意点
    
    2.手続き定義とは?
      書き方がわかならい
    
    3.メソッド呼び出しとは?
    4.メソッド呼び出しとフォーム呼び出しの違い
    5.基本的なイベント処理の作り方
    
    こんな初心者の質問にどうぞよろしくお願いします
    
      
    

引用返信 [メール受信/OFF] 削除キー/
■1091 / inTopicNo.2)  Re[1]: 変数宣言とは
□投稿者/ 今村 誠 -(2006/05/23(Tue) 13:19:22)
    2006/05/23(Tue) 17:52:01 編集(投稿者)

    さとうさんこんにちは
    > 1.変数宣言とは?
    >   組み込み変数
    >   共通変数
    >   固有変数
    >   指定するための注意点
    まずオンラインヘルプの使い方を覚える事をお勧めします。
    桐を起動して Altきーを押しながらローマ字のH を押します。
    トピックの検索が青く反転しているのでEnterを押します。
    新しいダイアログが表示されます。上に3つのタブがあり左から
    目次 キーワード検索 テキスト検索 があると思います。
    目次タブを選び↓を14回押して「一括処理&イベント処理」
    でEnter ↓を1回 Enter で一括処理&イベントリファレンスの
    ダイアログが別画面で起動します。
    桐8ではインターネットエクスプローラーが起動します。
    目次 キーワード 検索 の3つのタブがあるので目次タブを選び
    ↓を3回押し→を1回 ↓を1回 →を1回 ↓を押すと50音順
    に並んでいるコマンドの一覧から「変数宣言」を選んでEnterを押す
    と詳しい説明がのっています。

    桐のバージョンで操作や画面が微妙に違うので質問の時は桐8か桐9
    かをお書き頂きたいと思います。

    レポートで変数を使いたい時は固有か共通か組み込み変数でないと
    データの受け渡しができません。
    置換で変数を使いたい時も上記と同じです。

    違うフォームを呼び出す場合、局所変数では受け渡しが困難です。

    変数の先頭には数値は使用できません。
     私は変数の種別を表す接頭辞を最近つけはじめました。
    フォームの幅をオブジェクト操作で取得すると文字列で値がかえり
    ます。
    object @フォーム明細部{&Smeisai高 = セクションの高さ,&Smeisai行数 = 表示行数}
    &Lmeisai高 = #num(&Smeisai高),&Lmeisai行数 = #num(&Smeisai行数)
     それを計算したい場合、数値にしますが接頭辞の違いで、すぐど
    ちらか分かります。
引用返信 [メール受信/OFF] 削除キー/
■1092 / inTopicNo.3)  イベントファイル(さとう.kev)の作り方
□投稿者/ 今村 誠 -(2006/05/23(Tue) 13:44:24)
    2006/05/23(Tue) 17:48:21 編集(投稿者)
    さとうさんこんにちは
    > 5.基本的なイベント処理の作り方
    ONnojiさんのページに移動して
    http://www.geocities.jp/siliconvalley_bay_7565/
    左下のフォームアプリケーション入門 Q&Aの002を参考に
    http://www.geocities.jp/siliconvalley_bay_7565/Question_and_Answer.htm
    フォームの再定義画面での書式を設定します。
    再定義画面が開いたら書式(alt+S)→オブジェクトの属性でクリック
    左上の押しピンを何回か押して寝た状態と起きた状態を覚え起こした
    ままにします。
     同じくオブジェクトのリストもチェックして、表示したままにして
    おいてください。
     オブジェクトのリストの「ワークスペース」「ファミリ」「標準」
    の上に「フォーム」があるのでそこをマウスで左クリックします。
     オブジェクトの属性ダイアログのタブが6つある事を確認します。
    「イベント」タブを押し、イベントファイル名に適当な名前を書きま
    す。 普通はフォーム名と一緒の名前が多いと思います。
    イベントファイルはフォーム毎に作成する事が多いので、部品の一部と
    考えた方がいいと思います。
     左端のイベントの部分にフォーム開始があると思うので、軽く1回
    押すと黒く反転します。
     もう一度反転した文字の部分をダブルクリックすると桐が自動的に
    イベントファイルを作成してくれます。
     ご質問の手続き定義開始の部分も作成できているのが確認できると
    思います。

引用返信 [メール受信/OFF] 削除キー/
■1093 / inTopicNo.4)  イベントとはなに
□投稿者/ 今村 誠 -(2006/05/23(Tue) 17:47:18)
    イベントファイルには主に
    1)一括 コマンド
    2)メソッド呼び出し コマンド
    3)オブジェクト操作 コマンド
    と変数を使って使用者のイベント
    (文字を入力した)編集文字列変更イベント
    (表示ボタンを押した)キーダウンイベント
    (コマンドボタンを押した)手続き実行 或いはボタンの機能名
    (テキストボックスの入力が終わった)ソース値更新イベント
    (マウスの左ボタンをラベルの上で押した)マウス左クリックイベント
    イベントは今した事或いはしている事
    この掲示板にさとうさんが書き込んだ事を桐風に言えば
    掲示板書き込みイベントですね
    その結果私が返信したのですが、
    ここで更に返信をするのか何もしないのかをコマンドで書けば
    
    if ("私の返信"<>"") /* <>は""は未定義値でない場合、つまり返信があった場合 */
     if ("参考になったので")
        "掲示板"=さとうさんも返信を返す。
     end /* 参考にならない返信の時はなにもしな */
    else /* 誰も返信しない場合 */←注釈といいます。説明書きです。
     "掲示板"= "具体例を出して再度質問します"と書き込む。
    end /* ifコマンドは必ずendで閉じます。 */
    
    イベントの記述例(フォーカス取得イベントの例)
    手続き定義開始 変数訂正::フォーカス取得(文字列 &喪失オブジェクト名)
    
    メソッドの記述例
    メソッド呼び出し ハンドル = <ハンドル>,戻り値 = <変数名>,\ 
    <テキスト>|/* サブを指定の場合@サブwfm.@tオブジェクト名. */.\
    /* 変数でオブジェクトを指定する場合 &SW名.&SwObj.メソッド名 */
    ソース値取得( <変数名>,<取得モード> )
    
    オブジェクト操作の記述例
    object &背景色 = &科目名.背景色,&前景色 = &科目名.前景色
    &科目名(ラベル等のオブジェクト名)の背景色を変数 &背景色 に
    代入しなさい。またコンマがある場合そのオブジェクトの次の属性
    この場合前景色(文字色)を取得して変数名 &前景色 に代入しなさい。
    
    object @a教科{標題 = #S(&科目名,"a",""),背景色 = &背景色\
    ,前景色 = &前景色}
    さっきとは反対に指定したオブジェクト名 @a教科 の表題名を
    #S(&科目名,"a","")に変更し、背景色を &背景色 に変更し
    前景色を &前景色 にしない。
    
    オブジェクト操作は、入れ物を変更する。
    
    メソッドはデータを取り込んだりコマンドボタンを実行したりする。
    
    イベントは現在実行中の出来事の変化に合わせてフォームのイベント
    ファイルでその場その場に応じたことを実行させる。
    例えば、文字数が規定より多くなったらメッセージを出したり
    文字数に英数字以外が入ったら削除するのは編集文字列変更()イベント
    入力した後ソースが決まったら、フォーカスの移動や表示状態を変える
    のはソース値更新イベント

引用返信 [メール受信/OFF] 削除キー/
■1094 / inTopicNo.5)  Re[1]: イベント処理
□投稿者/ アックン -(2006/05/23(Tue) 18:07:58)
    さとうさん、こんにちは。
    > 1.変数宣言とは?
    「変数宣言」というのは、ユーザーが変数を作成するためのコマンド(命令)です。
    
    他の掲示板で先日同じ質問があったので、そっちも読んでください。
    「桐井戸端BBS」(マスターは幅田さん。ここの板のマスターは、たゆーさん。)
    (ふたつの板は兄弟みたいな存在ですから、気楽に行き来してくださいね。)
    
    http://www.fuku3.com/~habata/cgi-bin/bbs_01a/bbs.cgi
    変数宣言-かちゅみ(5/16-14:08)No.31908 ←ここから始まるスレッド
    
    >   組み込み変数
    桐が最初から用意している変数を、組み込み変数と呼びます。
    桐のメニューバー→ツール→変数管理→組み込み変数 を見ることが出来ます。
    組み込み変数の種類は、ユーザーが増減できません。
    変数の値(変数値と呼びます)は、ユーザーが自由に変更できます。
    一括処理やイベント処理を終了後も、この変数は削除されません。
    変数値もそのまま残ります。
    
    >   共通変数
    ユーザーが作成する変数です。
    一括処理やイベント処理を終了後も、この変数は削除されません。
    変数値もそのまま残ります。
    
    >   固有変数
    ユーザーが作成する変数です。
    一括処理やイベント処理を終了すると、この変数は自動的に削除されます。
    
    >   指定するための注意点
    変数の扱いになれるまでは、次の順序で使ってください。
    1)組み込み変数だけ使ってみる。「変数宣言」コマンドを使わない。
    2)変数の数が足りなくなったら、共通変数を使ってみる。
    3)うまくいったら、固有変数を使ってみる。
    
    他に自動変数・ウォッチ変数というのがありますが、まだ使わなくても支障ありません。
    
    > > 2.手続き定義とは?
    >   書き方がわかならい
    イベント処理のマウスイベントなどは、桐が自動的にひな形を作成してくれますから、書き方は一切覚えなくてもいいです。
    マウスイベントとは違って自分で一部を書く種類の手続き定義もあるのですが、それのときもひな形を作成してくれる方法があるので、ごく一部の文字を書き入れるだけですみます。
    ひな形の作成方法はマニュアルを読んでください。
    
    > > 3.メソッド呼び出しとは?
    メソッドというのはオブジェクトを使ってプログラミングするときの概念なので、簡単に説明してもおそらく理解不能でしょう。
    実際にはコマンドと同じように書いていくので、コマンドみたいなものがあるのだなと思ってください。
    
    > 4.メソッド呼び出しとフォーム呼び出しの違い
    「フォーム呼び出し」とういうのは、たくさんあるコマンド(300種類以上あります)のうちの1個で、「フォーム呼び出し」コマンドのことです。
    
    「メソッド呼び出し」というのは、たくさんあるメソッド(33種類)のうちから1個だけ選ぶときに使います。
    
    両者は語句は似ていますけど、全く違ったことをするためのものなので、関係ないと思ってください。
    
    > 5.基本的なイベント処理の作り方
    これはマニュアルに目を通してみるのがいいでしょうね。
    もしなにかめっちゃ簡単なサンプルを見てみたいときは、何個か作ってみましょうか。
    
    「一括処理&イベント処理リファレンス」(マニュアルのことです)を読んでみてください。
    桐を起動して、一番上のメニューバーの「ヘルプ(H)」→「トピックの検索」
    →「一括処理&イベント処理」→「一括処理&イベント処理リファレンス」をクリック
    →エクスプローラが起動して、マニュアルを開きます。
    →左の方に「入門」があるので、そこから読んでください。
    
    わからない箇所があったら、ここの板か幅田さんの板で聞いてください。
    (マルチポスト禁止。どたらか一方でやってください。)

引用返信 [メール受信/OFF] 削除キー/
■1095 / inTopicNo.6)  Re[2]: イベントとはなに
□投稿者/ アックン -(2006/05/23(Tue) 18:11:15)
    今村さん>ビギナーには超難解だと思うよ。アックン(=^・^=;

引用返信 [メール受信/OFF] 削除キー/
■1096 / inTopicNo.7)  Re[3]: イベントとはなに
□投稿者/ 今村 誠 -(2006/05/23(Tue) 19:20:29)
    アックンさんこんにちは
    > 今村さん>ビギナーには超難解だと思うよ。アックン(=^・^=;
    イメージが分かってもらえれば充分で、コマンドの中身を理解しなくても
    いいと思います。

引用返信 [メール受信/OFF] 削除キー/
■1097 / inTopicNo.8)  Re[4]: イベントとはなに
□投稿者/ アックン -(2006/05/23(Tue) 19:27:11)
    今村さん> せっかくだから、もっとやさしい内容で続けてくれない?
    

引用返信 [メール受信/OFF] 削除キー/
■1098 / inTopicNo.9)  Re[2]: イベント処理
□投稿者/ アックン -(2006/05/23(Tue) 19:36:29)
    > >>  固有変数
    > 一括処理やイベント処理を終了すると、この変数は自動的に削除されます。
    正確には、イベント処理ではフォームを終了すると自動的に削除されます。です。すみません。

引用返信 [メール受信/OFF] 削除キー/
■1098 / inTopicNo.10)  Re[5]: イベントとはなに
□投稿者/ 今村 誠 -(2006/05/23(Tue) 23:41:22)
    アックンさんこんにちは、
    >もっとやさしい内容で続けてくれない?
    こんなことができるというのがやさしいのかはよく分かりませんが
    住所録を入力する時に、郵便番号はゆうパックやヤマト運輸にも
    入力欄があります。
     郵便番号を入力して確定し住所のところでもう一度入力して変換
    してもいいですが、古いime辞書だと市町村合併前の住所で郡を市に
    替えたりして結構手間がかかります。 イベントを使えば、郵便番号
    を1回入力するだけで、都道府県や市町村から町域文字まで一度に
    入力できて、番地と建物名を入力するだけでいいですね。

    他には、商品コードを入力してalt+↓で入力支援ボタンで商品フォーム
    を呼び出し商品名と単価を一度に書き込むとかもよく使うイベントです。
    No.122 にサンプルがあります。

    手間が省ける、省力化できる、誰でも簡単に使えるというのが
    イベントだと思います。

    作るのはチョット手間がかかりますが、掲示板でしたい事を具体的に
    述べて、分からないところを質問すれば、全てを自分で作るより、
    遙かに効率よく仕事ができると思います。
引用返信 [メール受信/OFF] 削除キー/
■1099 / inTopicNo.11)  (削除)
□投稿者/ -(2006/05/24(Wed) 10:26:30)
    この記事は(投稿者)削除されました
引用返信 [メール受信/OFF] 削除キー/
■1100 / inTopicNo.12)  (削除)
□投稿者/ -(2006/05/24(Wed) 10:43:50)
    この記事は(投稿者)削除されました
引用返信 [メール受信/OFF] 削除キー/
■1103 / inTopicNo.13)  Re[1]: イベント処理
□投稿者/ ONnoji -(2006/05/24(Wed) 12:27:03)
http://blogs.yahoo.co.jp/siliconvalley_bay_7565
    2006/05/24(Wed) 12:32:59 編集(投稿者)
    ■No1090に返信(さとうさんの記事)
    > 3.メソッド呼び出しとは?
    
    メソッドに関する前に…、
    コマンドとは、イベント処理( .kev )で実行できる命令です。
    
    編集対象表を操作するコマンドや、
    または、操作対象が無いコマンドもあります。
    さらに、プログラムの流れを制御するコマンドもあります。
    
    メソッドとは、コマンドの一種と思って差し支えありません。
    コマンドと異なるところは、
    メソッドとは、オブジェクトにあらかじめ組み込まれているコマンドであるという点です。
    
    フォームには色々な種類のオブジェクトがありますが、
    メソッドとは、それぞれのオブジェクトに、あらかじめ組み込まれているコマンドという意味です。
    ですから、存在しないオブジェクトに対してメソッドを実行することは出来ません。
    
    メソッドだからといって、むずかしく考える必要はまったくありませんよ。
    ヘルプや掲示板の記事を参考にして試してみれば理解できるはずです。
    
    <メモ>
    元の記事を削除したのは、ツリーに記事がダブってしまったからでした。
    このCGIのバグかな?
    
    

引用返信 [メール受信/OFF] 削除キー/
■1104 / inTopicNo.14)  Re[2]: イベント処理
□投稿者/ ONnoji -(2006/05/24(Wed) 12:39:55)
http://blogs.yahoo.co.jp/siliconvalley_bay_7565
    ■No1099に返信(ONnojiさんの記事)
    > フォームには色々な種類のオブジェクトがありますが、
    > メソッドとは、それぞれのオブジェクトに、あらかじめ組み込まれているコマンドという意味です。
    > 
    > ですから、存在しないオブジェクトに対してメソッドを実行することは出来ません。
    
    オブジェクトが存在していても、
    そのオブジェクトにあらかじめ組み込まれているメソッドでなければ実行できません。
    
    つまり、オブジェクトの種類によってオブジェクトに登録されているメソッドは異なります。
    
    あるオブジェクトに用意されているメソッドが、
    別の種類のオブジェクトには用意されていないということがあります。
    
    ですから、単純にメソッドを暗記するより、オブジェクトの種類に注目することが重要ですよ。
    

引用返信 [メール受信/OFF] 削除キー/
■1105 / inTopicNo.15)  Re[3]: イベント処理
□投稿者/ ONnoji -(2006/05/24(Wed) 12:56:02)
http://blogs.yahoo.co.jp/siliconvalley_bay_7565
    ■No1090に返信(さとうさんの記事)
    >2.手続き定義とは?
    >  書き方がわかならい
    
    手続きには、
    
    ・イベントハンドラ
    ・一般手続き
    
    の2種類があります。
    
    初めてフォームでイベント処理( .kev )を利用する場合には、
    最初に「一般手続き」を理解されることをお勧めします。
    
    例えば、あるコマンドボタンで、任意の一般手続きを実行する場合には以下のようにします。
    
    1.まず、コマンドボタンオブジェクトをフォーム上に作成する
    2.次に、コマンドボタンの機能名を設定する
    
       機能名    機能パラメータリスト
    [1]表示
    [2]手続き実行  test
    [3]なし
    [4]なし
    
    3.イベント処理に一般手続き:test を記述する
    
    一般手続きは自動的には作成されないので、ご自身イベント( .kev )に記述してください。
    一般手続き名の後ろには、必ずカッコ"( )"が必要です。
    カッコ"( )"に中には何も書かなくていいです(引数なしの場合)。
    一般手続きの範囲は、[手続き定義開始]コマンドで始まり、
    [手続き定義終了]コマンドで終わるところの範囲です。
    この範囲の中に、実行したいコマンド等を記述してください。
    
    *---------------------*
    手続き定義開始 test( )
    
     確認 "test" 
    
    手続き定義終了
    *---------------------*
    
    以上の設定で、コマンドボタンを実行すると、確認コマンドが実行されます。
    
    なお、イベントハンドラはどうしても必要な時に利用すればOKです。
    普通の場合には、「コマンドボタン + 一般手続き」だけでかなりのことが出来るハズですよ。
    

引用返信 [メール受信/OFF] 削除キー/
■1106 / inTopicNo.16)  Re[4]: イベント処理
□投稿者/ ONnoji -(2006/05/24(Wed) 12:58:57)
http://blogs.yahoo.co.jp/siliconvalley_bay_7565
    ■No1090に返信(さとうさんの記事)
    > 5.基本的なイベント処理の作り方
    
    >手続きには、
    >・イベントハンドラ
    >・一般手続き
    >の2種類があります。
    >
    >なお、イベントハンドラはどうしても必要な時に利用すればOKです。
    >普通の場合には、「コマンドボタン + 一般手続き」だけでかなりのことが出来るハズですよ。
    
    プログラムの作り方は自由なので、
    「基本的なイベント処理の作り方」というのは、人によって千差万別ですよ。
    
    人のプログラムを見て、自分にとって参考になる部分を真似するのが近道だと思います。
    ただし、意味が分からないものはマネをしないほうが無難です。怪我の元です。
    
    フォーム( .wfm )を使っているとのことなので、
    
    優先度としては、
    1.コマンドボタンの機能を活用する
    2.コマンドボタンの機能名:手続き実行を利用する(一般手続き)
    3.イベントとイベントハンドラを利用する
    だと思います。
    
    繰り返しになりますが、イベントとイベントハンドラを利用しなくても、
    1.と2.だけで、かなりのことが出来るはずですよ。
    
    <追伸>
    
    以下は拙作のホームページです。
    
    桐のイベント道場のトップ
    http://www.geocities.jp/siliconvalley_bay_7565/
    
    桐の釣魚大全
    http://www.geocities.jp/siliconvalley_bay_7565/The_Compleat_Angler_For_Kiri.htm
    

引用返信 [メール受信/OFF] 削除キー/
■1108 / inTopicNo.17)  Re[1]: イベント処理
□投稿者/ アックン -(2006/05/27(Sat) 14:43:40)
    さとうさん
    フォームとイベントの簡単なサンプルをアップしました。V9 2006(V9-2004 sp3)対応
    フォームもイベントも初めてという人にもわかりやすい、基本的なフォームです。
    1個のフォームを基本にして、ひとつひとつ書き加えていった、4個のフォームです。
    たくさん開くとどれがどうかわからなくなりますから、同時に開くのは1個だけにしてください。
    フォームのファイル名の番号順に開いてください。
    動作を試した後、フォームとイベント(拡張子がkev)の定義を見てください。
    
    各フォームの説明
    フォームは、新規作成→カード(ダイアログ) で作成したものです。
    コマンドボタンが自動的に2個作成されています。
    それぞれの標題を A , B と付けました。
    編集対象表は設定していません。表がないフォームです。
    各フォームはイベントファイル名の指定が異なる以外は、まったく同じ内容です。
    違いはイベントの内容にあります。
    
    ・フォーム:20060527_1.wfm / イベントファイル:20060527_1.kev
    
    左の A と表示されているボタンには、左クリックイベントを設定しています。
    右の B には、一般手続きを設定してあります。
    (両者の違いについては、Onnojiさんの書き込みを参照してください。)
    ABどちらも、マウスでクリックすると同じ動作をします。(確認パネルが出現します。)
    クリックの代わりに Enter キーを押し下げると、A の方は反応しませんが、
    B の方はマウスでクリックしたときと同じ動作をします。
    
    イベントファイルを定義で開くと、
    /* 確認コマンドです。 */
    というふうに注釈を書き入れてあります。これを読めば、こんなふうに書くのだなと、およその雰囲気がわかると思います。
    (一度、素のイベントファイルを作成してみると、桐が自動的に作る行がどれかよくわかりますよ。)
    
    ・フォーム:20060527_2.wfm / イベントファイル:20060527_2.kev
    最初のフォームを一部改造して、一般手続きを呼び出してみます。
    
    ・フォーム:20060527_3.wfm / イベントファイル:20060527_3.kev
    さらに、組み込み変数を利用して、if文を使ってみます。
    
    ・フォーム:20060527_4.wfm / イベントファイル:20060527_4.kev
    さらに、共通変数を作成してみます。
    
    ------------------
    なお、定義画面でフォーム(wfm)を定義で開くと、イベント定義(kev)も開くように設定しておいてください。
    定義画面で、桐のメニューバー→書式→定義画面の設定→イベント定義を起動する と 詳細プロパティを使用する の両方にチェックを入れてください。
    続く・・・かいな? アックン(=^・^=)


1148708620.lzh
/11KB
引用返信 [メール受信/OFF] 削除キー/
■1135 / inTopicNo.18)  Re[2]: イベント処理
□投稿者/ さとう -(2006/06/12(Mon) 08:55:14)
    返事が遅れてすいません。
    みなさんありがとうございました。
    大変参考になりました。また,よろしくお願いします

引用返信 [メール受信/OFF] 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -