◎ 例題−1  マウスの移動で、テキスト(説明)表示

 

[例題−1」 作成のポイント


◎ 今回の作成では、ヘルプファイルの表示や、大きな説明等を表示するようなものではなく、マウスを近づけるだけで、表示させる(遠ざけると消える)だけの簡単なものです。(文字数にして10文字以内くらいが適当でしょう)
 
◎ わざわざ、表示用のテキストは作成しないで、オブジェクト名を利用します
  表示させたい同一内容が複数ある場合は、オブジェクト名の先頭に区別用の文字を入れて、区別用文字の後ろ部分を表示させる等の工夫が必要です
 
◎ イベント処理の記述は、各オブジェクトごとに作成するのではなくファミリーを使用します
  作成途中では、1〜2個程度のオブジェクトでイベント処理の動きを確認し、思った通りに完成後、
  そのオブジェクトを複写したほうが簡単でしょう
  (使用変数は、極力少なく、また変数から、意味が理解できるように設定します)
  
◎ 表示させるテキストボックスの位置は、ある程度マウスの近くに表示させます
  マウスの位置は、マウス移動イベントで、取得します。
  マウス位置の値は、&マウス位置[]に、単位は、twips(1/20point)で、格納されます。
  オブジェクトの表示位置計算には、単位変換関数がありますが、簡単には÷20で代用できます
         詳細は、桐V8ヘルプファイルの、APPENDIX→単位を参照ください

 

[例題−1] 作成手順 備 考 & 補 足
説明−1 ・白紙のフォームから作成します。
・右記に注意しながらオブジェクトを配置します
[マウスインアウト]イベントでは、定義可能オブジェクトが
グループ゚項目・コマンドボタン・テキストボックス・ファミリ・ラベルに、限定されてます
(例題では、コマンドボタンを横に配置して説明します)
説明−2 使用イベントをチェックします イベント処理はオブジェクト単位に設定できますが、今回はファミリーを使用します。
(ファミリとオブジェクトの両方に同じイベント処理を記述した場合は、オブジェクトのイベント処理だけが実行され、ファミリの処理は実行されませんのでご注意ください)
説明−3 KEVファイルを作成します 作成方法は、従来の一括処理と考え方は一緒ですが、イベント処理作成では、標準で下記2行が自動作成されます

・ 手続き定義開始 ファミリ名::イベント名(変数宣言・・・)
・ 手続き定義終了

この2行の間に処理を記入します

マウスの移動で、テキスト(説明)表示補足:
  1. ラベル付きテキストボックスでの使用時は、どちらを選んでもテキストボックスのの名称を取得します。
    別々に説明表示設定が必要な場合は、ラベル付きテキストボックス作成後、いったんラベルを削除し、単独のラベルを配置して使用下さい
  2. マウスインアウト]イベントでは、定義可能オブジェクトが上記のように限定されていますが、他のオブジェクトでも使用可能です(バーコード・ピクチャー・リストボックス等)
  3. テキスト(説明)表示には、オブジェクト名を利用しますが、オブジェクト名には使用できない文字があります。ご注意下さい

 

説明−1 フォーム作成
 

補足

 1.説明表示用テキストボックスは、最前面(オブジェクトリストでは最も下方表示)に設定します
 2.説明図には、X座標・Y座標位置が入ってますが、完成後は不要です。
 3.コマンドボタンの機能については説明は省略しています
 4.コマンドボタンにアイコンを設定してありますが、アイコンでも文字でも、またなにもなくてもかまいません
 5.画面は横並びですが、縦でも、また連続していなくても可能です
 6.同一箇所に複数設定してある場合は、最前面が対象となりますので、ご注意下さい

注意:
 マウス移動で取得される値は、画面上のドットの下図ではなく、あくまで、桐のフォーム上の値です
 作成中・使用中の、ズームイン・ズームアウト時はご注意ください

 

説明−2 イベント設定
 ファミリー名の作成

  ・書式(S)→ファミリパレット(M)でパレットを表示
  ・新規作成クリックで、ファミリ_1が、できます
  ・今回は「説明」と、名前変更しておきます

《ファミリーパレット操作画面》

 コマンドオブジェクトのイベントタブの設定

  ・イベント(E):今回はどこにもチェックしません
  ・ マウスイベントを使用する(U):チェックします
  ・ ファミリー名(F)▼より選択します

《コマンドボタンオブジェクトのイベント属性設定画面》

ファミリーのイベントタブの設定

  ・オブジェクトリストよりファミリを選択
  ・その下の説明を選択します
  ・今回は、マウス移動・マウスインアウト のみチェックします

《ファミリ:説明のイベント設定画面》

 

説明−3 イベント処理作成

名札 メイン
  変数宣言 共通,文字{&focus,&Xpt,&Ypt,&Lpt}
  オブジェクト操作 @説明表示{画面表示="0"}


手続き定義開始 説明::マウス移動(長整数 &マウス位置[2],長整数 &明細番号,長整数 &フラグ)
  &Xpt=#str(#int(&マウス位置[1]/20))+" pt"
  &Ypt=#str(#int(&マウス位置[2]/20)+15)+" pt"
  method @フォーム.再描画()                   ←下記参照
手続き定義終了

手続き定義開始 説明::マウスインアウト(長整数 &フラグ,長整数 &明細番号)
  if (&フラグ=1)
    &focus=&this
    &Lpt=#str(#桁数(&focus)*6)+" pt"
    オブジェクト操作 @説明表示{画面表示="1",始点X=&Xpt,始点Y=&Ypt,幅=&Lpt}
  else
    オブジェクト操作 @説明表示{画面表示="0"}
  end
  method @フォーム.再描画()
手続き定義終了


上記イベント処理説明

変数の説明
 ・&focus=マウスインしたときのオブジェクトの名称に利用(マウスインしたとき、&thisにオブジェクト名が自動取得されます)
 ・&Xpt・&Ypt=マウス移動したときの値を20で割って"pt"を附加しオブジェクト操作ですぐ利用できるように設定してあります
 ・&Lpt=オブジェクト名の文字の長さを計算し、"pt"を附加しオブジェクト操作ですぐ利用できるように設定してあります
  (途中×6してありますが、これはフォントの関係で一定ではありません。利用されフォントに会わせて変更してください)

オブジェクト操作 @説明表示{画面表示="0"}
 ・これは、不必要なときは、画面表示させない処理です。表示させるときは、画面表示="1"で表示されるようになります
  テスト中は、オブジェクト操作 @説明表示{画面表示="0"}を、"1"にするか、先頭に*を入れておくといいでしょう

 また、対象オブジェクト以外の場所で統一したテキストを表示する場合は、else の下に、&focus="その他の説明"
 のように、変数代入しておくといいです

下記参照  method @フォーム.再描画() の説明
 作成中にマウスの位置を正確に取得しているかの判断用ですので、座標表示が不要になりましたら、削除可能です


イベント処理 第1段としてマウスの移動で、テキスト(説明)表示を紹介いたしました。

お忙しい方&私の説明では不十分を感じられた方へ、説明に使用いたしましたファイルをダウンロードをできるように致しましたので、ご利用下さい。また、すこしお時間の許される方は、別のファイルも用意いたしましたので是非お試し下さい

    説明に使用いたしましたファイルの ダウンロードコーナです