平成27年 4月 2日(木):初稿 |
○「桐を利用した英語学習システム考案中-今度こそ長続きしたいのですが2」を大分類を「趣味」から「桐・IT等」等に変更して継続します。 大好きな日本語データベースソフト桐を利用しての英語勉強のためそのシステム作りを継続しています。英文だけを表示し、日本文はマウスを当てたときだけ表示する仕組みの作成を桐師匠【多遊】さんにお願いしていたら[マウスインアウト]イベント で見事に実現して頂きました。以下、その備忘録です。 普通の状態では日本文は表示されません 日本文項目にマウスを置いたときだけ日本文は表示されます これを実現するには先ず以下の桐ヘルプでの[マウスインアウト]イベントの理解が必要ですが、説明を読んでもサッパリ判りません(^^;)。 [マウスインアウト]イベント 更新モードの変更 ○可能 フォーカスの変更 ○可能 定義可能オブジェクト グループ項目|コマンドボタン|テキスト|ファミリ|ラベル ■イベントの発生 [マウスインアウト]イベントは、マウスポインタがオブジェクトを指した直後に1度だけ発生するイベントです。 マウスポインタがオブジェクトの外側に出た直後にもう一度発生します。 ■使用目的 マウスポインタがこのオブジェクトを指したとき、または離れたときのオブジェクト属性を指定します。 このハンドラの&フラグには、マウスポインタに指されると 1、離れると 0 が代入されています。 ■使用例 マウスポインタがこのオブジェクトを指したら、[フォントサイズ]と[前景色](文字色)を変更します。 また、マウスポインタがこのオブジェクトから離れたときは、[フォントサイズ]と[前景色]をもとの色に戻します。 もとの[フォントサイズ]と[前景色]は、「標準」と「白」であるものとします。 手続き定義開始 入力項目::マウスインアウト( 長整数 &フラグ,長整数 &明細番号 ) &オブジェクト名 = "a" + &this if ( &フラグ = 1 ) オブジェクト操作 &オブジェクト名{ \ フォント太さ = "太字", 前景モード = "指定色", 前景色 = "黄色" } else オブジェクト操作 &オブジェクト名{ \ フォント太さ = "標準", 前景モード = "指定色", 前景色 = "白" } end 手続き定義終了 ■イベントハンドラの引数 つぎの引数は、イベントが発生したときの状態や情報を調べるときに使用します。 &フラグ/長整数 マウスポインタが、対象オブジェクトの中に入ったか、外に出たかを示す番号が格納されます。 値 説明 1 対象オブジェクトの中に入った。 0 対象オブジェクトの外に出た。 または対象オブジェクトがクリックされた。 &明細番号/長整数 マウスポインタが、フォーム明細部の何番目にあるかが格納されます。 ○次にフォームの仕組みですが、以下の図の通り、テキストオブジェクトであるt日本語オブジェクトの上にこれを隠すためのラベルオブジェクトであるa日本語隠しを重ねます。これによって普段はフォームでの日本語表示が隠されて表示されません。ただし、a日本語隠しのオブジェクトの属性イベントタブの「イベントを使用する」と「マウスインアウト」イベントにチェックを入れます。その上で、イベント定義に以下のイベントを記述します。 手続き定義開始 a日本語隠し::マウスインアウト(長整数 &フラグ,長整数 &明細番号) 変数宣言 整数{&明細行数} メソッド呼び出し @フォーム.更新モード設定(0) if(&フラグ=1) メソッド呼び出し @フォーム.明細番号取得(&明細行数) if ( &明細番号<>&明細行数) ジャンプ 行番号=+(&明細番号-&明細行数) メソッド呼び出し @t日本語.フォーカス設定() else メソッド呼び出し @t日本語.フォーカス設定() end else メソッド呼び出し @t日本語.フォーカス設定() end 手続き定義終了 手続き定義開始 t英例文::マウスインアウト(長整数 &フラグ,長整数 &明細番号) メソッド呼び出し @t英例文.フォーカス設定() 手続き定義終了 この辺の定義になると私のレベルでは、ちんぷんかんぷんになりますが、「メソッド呼び出し」等の重要コマンドの意味をシッカリ理解する必要があります。 桐師匠【多遊】さんのご解説では「ちょっと見方を変えて、いままでの「目隠し処理や、マウスクリック」等を、今回「ジャンプ 行番号」で、取得してみました。また、逃げの処理は、左右に振ってます。」となっています。 「メソッド呼び出し 更新モード設定」の桐ヘルプ解説は以下の通りです。 メソッドの別名 SetUpdateMode 一括処理での実行 ×不可 対象オブジェクト フォーム ■説明 指定したフォームの更新モードを変更します。 行訂正または項目訂正モードのときに、対象表の行が終端行に移動すると、自動的に表示モードに変わります。このことは、変数値だけを編集している場合でも、同じです。 ■記述例 [テキスト]オブジェクトに入力された文字列から、行を絞り込みます。行を絞り込む前に表示モードに戻します。この例では、[テキスト]オブジェクトの[ソース]に、局所変数の&検索文字列が設定されているものとします。 手続き定義開始 検索文字列::ソース値更新() メソッド呼び出し @フォーム.更新モード設定( 0 ) &比較式 = """" + &検索文字列 + """*:E" 絞り込み [氏名]_&比較式 手続き定義終了 ■構文 メソッド呼び出し ハンドル = <ハンドル>,戻り値 = <変数名>,\ @フォーム.更新モード設定( <番号> ) 以上:2,393文字
|