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

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

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

■6848 / inTopicNo.1)  テキストボックスが隠れません・・・
  
□投稿者/ くおんたむ -(2012/02/06(Mon) 18:26:42)
    タイトル通りに、テキストボックスが隠れません。。。

    疑似ファンクションバーを作っています。
    サンプルファイルをアップしてあります。
    一応、形は出来ています。

    タイトルの意味はですね。

    フォームが展開中(まぁ、作業中ですね)に「Pause」ボタンを押しますと、
    オリジナルのファンクションキーを使用することが出来るように切り替える
    ものです。

    問題は、初めに開いたときに必要なテキストのみを表示させたいのですが、
    必要ない(つまり、空変数の)テキストを非表示にしたいのです。
    ところが、テキストが消えず、テキストボックスの幅を0にしたときに、
    線みたいになりますよね。その状態になるのです。

    拡張(F12)を押して、画面を切り替えて、また、F12を押して、元の画面
    に戻ると、完全に消えています(この状態を初めに「Pause」キーを押した
    時の動作として希望しているのです)。

    挙動的には、問題はないのですが、見た目が引っ掛かるような気がしてな
    らないのです。

    順番の問題なのかなぁ。。。いっそ、線を背景の色と強引に合わせて見え
    なくしようかと思案中です。

    サンプルをアップしておきますので、解決できるのであれば教えてください。
    また、もっとスマート的に出来るのならば、是非、教えてください。

    サンプルを一回、やって頂ければ、内容の意味がお分かり頂けると
    思います。


    Ps
    *ここの手続きの部分です。表示に必要な部分は、以下の部分です。

    &変数なんらやら = ""
             ↑が入っていれば、必要と判断し、表示されます。               
    Proc FunctionButtonSet( 参照 長整数 &FunFlg )
    Switch
    Case ( &FunFlg = 0 )
    &PF01Name = "参照"
    &PF02Name = ""
    &PF03Name = "終了"
    &PF04Name = ""
    &PF05Name = "次件"
    &PF06Name = "前件"
    &PF07Name = "検索"
    &PF08Name = "抽出"
    &PF09Name = "次頁"
    &PF10Name = "前頁"
    &PF11Name = ""
    &PF12Name = "拡張"
    Case ( &FunFlg = 1 )
    &PF01Name = ""
    &PF02Name = ""
    &PF03Name = ""
    &PF04Name = ""
    &PF05Name = ""
    &PF06Name = "拡張検索"
    &PF07Name = "拡張抽出"
    &PF08Name = ""
    &PF09Name = ""
    &PF10Name = ""
    &PF11Name = ""
    &PF12Name = ""
    End
    End


sampling.lzh
/8KB
引用返信 [メール受信/OFF] 削除キー/
■6849 / inTopicNo.2)  画面表示プロパティ(属性)が、真(1)になっている
□投稿者/ ONnoji -(2012/02/07(Tue) 15:02:50)
    2012/02/07(Tue) 15:11:39 編集(投稿者)
    2012/02/07(Tue) 15:04:37 編集(投稿者)

    No6848に返信(くおんたむさんの記事)
    > タイトル通りに、テキストボックスが隠れません。。。
    > 拡張(F12)を押して、画面を切り替えて、また、F12を押して、元の画面
    > に戻ると、完全に消えています(この状態を初めに「Pause」キーを押した
    > 時の動作として希望しているのです)。
    > サンプルを一回、やって頂ければ、内容の意味がお分かり頂けると
    > 思います。


    なるほど、例えばテキストボックス:PF02 が縦棒になって表示されますね。

    「Pause」キーを実行した後、
    PF02 の 画面表示プロパティ(属性)を調べると、真(1)になっていました。

    PF02 の 画面表示プロパティ(属性)を偽(0)にすればOKだと思いますよ。


    <蛇足>

    以下の手続きは、コピペで動くと思います。


    手続き定義開始 cmdTestClick( )
     変数宣言 自動,文字列{ &icon, &title = "cmdTestClick( )", &msg }
     変数宣言 自動,文字列{ &objectName }
     変数宣言 自動,数値 { &visible }

     &objectName = "PF02"
     オブジェクト操作 &objectName{ &visible = 画面表示 }

     &msg = "&objectName = " + &objectName
     &msg = &msg + "\n\n&visible = " + #str( &visible )
     手続き実行 INFprcMsgPause( &icon, &title, &msg )


     &visible = 0
     オブジェクト操作 &objectName{ 画面表示 = &visible }

     &msg = "&objectName = " + &objectName
     &msg = &msg + "\n\n&visible = " + #str( &visible )
     手続き実行 INFprcMsgPause( &icon, &title, &msg )

    手続き定義終了

    手続き定義開始 INFprcMsgPause( 文字列 &icon, 文字列 &title, 文字列 &msg )
     ** 変数宣言 自動,文字列{ &icon, &title = "INFprcMsgPause( )", &msg }
     変数宣言 自動,文字列{ &iconList = "i,?,!,e" } /* 半角コンマで区切った文字列リスト */
     変数宣言 自動,文字列{ &macro }
     変数宣言 自動,整数 { &at }

     &icon = #半角( #lc( #sstr( &icon, 1, 1 ) ) ) /* &icon はこの手続きの引数 */
     &at = #対応番号( &iconList, &icon )

     &macro = "メッセージボックス &title, &msg" + #cond( &at, ", アイコン = " + &icon ) + ", ボタン指定 = 1, 制御文字展開 = する"
     コマンド &macro

    手続き定義終了

    <追伸>

    老婆心ながら…(^^ゞ

    [始点X][始点Y][幅][高さ]を、ポイント(pt)で処理していますが、
    twips(数値型)で処理する方が、誤差が生じないのでよいですよ。

398×47 => 250×29

1328602175.jpg
/4KB
引用返信 [メール受信/OFF] 削除キー/
■6850 / inTopicNo.3)  Re[2]: 画面表示プロパティ(属性)が、真(1)になっている
□投稿者/ くおんたむ -(2012/02/07(Tue) 17:56:51)
    どうも、ONnojiさん

    ようやく、修正できました!

    Proc フォーム::キーダウン( 〜〜〜

     〜〜 中略 〜

    Switch
    ┌ Case ( &KeyCode = 19 ) /* Pause */
    │ If ( &FunctionOnOffKey = 0 ) /* Function 無効時 */
    │ &FunctionOnOffKey = 1 , &FunShow = 1 , &ButtonShow = 0 , &FunExtenCheng = 0
    │ Call FunctionButtonSet( &FunExtenCheng )
    │ Call FunctionPositionSet()
    │ &処理中止 = 1
    │ Else If ( &FunctionOnOffKey = 1 ) /* Function 有効時 */
    │ &FunctionOnOffKey = 0 , &FunShow = 0 , &ButtonShow = 1 , &FunExtenCheng = 0
    │ End
    └ Object @FunCon.画面表示 = &FunShow , @ButtonCon.画面表示 = &ButtonShow

    Case ( &KeyCode => 112 .And &KeyCode <= 120 .Or &KeyCode = 122 ) /* F1〜F9,F11 */

     〜〜 中略 〜〜

    End

    上記の[ の部分を以下の通りに変更することで、修正できました。

    If ( &FunctionOnOffKey = 0 ) /* Function 無効時 */
    &FunctionOnOffKey = 1 , &FunShow = 1 , &ButtonShow = 0 , &FunExtenCheng = 0
    Object @ButtonCon.画面表示 = &ButtonShow
    Call FunctionButtonSet( &FunExtenCheng )
    Call FunctionPositionSet()
    &処理中止 = 1
    Else If ( &FunctionOnOffKey = 1 ) /* Function 有効時 */
    &FunctionOnOffKey = 0 , &FunShow = 0 , &ButtonShow = 1 , &FunExtenCheng = 0
    Object @FunCon.画面表示 = &FunShow , @ButtonCon.画面表示 = &ButtonShow
    End


     上段の場合は、各表示の設定をした後、Call FunctionButtonSetとCall FunctionPositionSetで変更
     してObject(設定)で変更した後、再度Object(設定)で @FunCon.画面表示 = &FunShowで一括に再
     度変更されていたのが原因でした。
     この時、&FunShow には 1 が入っていますので、前述で非表示に替えても、最後に 1 になるように
     なってしまったのです。

    Object @FunCon.画面表示 = &FunShow , @ButtonCon.画面表示 = &ButtonShow
      ▼ に修正
    Object @ButtonCon.画面表示 = &ButtonShow

    @FunCon.画面表示 = &FunShowが余計でした(^_^;)

     そして、順番が紛らわしかった?ので、Object @Button〜〜を変更後すぐ反映するように移動。

     ONnojiさんからのアドバイス通り表示プロパティが嘘(0)にならず、真(1)になっていたのが原因
     でした。
    ONnojiさん、サンプルスクリプトありがとうございました(^o^)。

     いつもなら、単品毎に1つと決めていましたが・・・数が多すぎて面倒だと思い、思い切ってファミ
     リを設定して、制御しようとしていた時でした(^_^;)。
    普段、ファミリを入れたイベントはやらないので、一度、挑戦してみようと思ったのです。
     やはり、慣れぬ事は難しいと痛感・・・(^^;)  でも、修正できて幅が広がったって感じがしますね!

     すっきり、したところですがまた新たなる疑問というか質問が生じましたので、
     連続スレで失礼しますが、お聞きしたいと思います。
引用返信 [メール受信/OFF] 削除キー/
■6851 / inTopicNo.4)  Re[3]: 画面表示プロパティ(属性)が、真(1)になっている
□投稿者/ くおんたむ -(2012/02/07(Tue) 18:11:25)
    ONnojiさん>

    すいみません・・・連続スレで。
    2、3点聞きたいことがありまして。

    1つ目

    > [始点X][始点Y][幅][高さ]を、ポイント(pt)で処理していますが、
    > twips(数値型)で処理する方が、誤差が生じないのでよいですよ。

    これなんですが、psとtwips の違いというかどのような誤差が生じるのかを教えて頂きたいのです。
    今まで、[始点][高さ][幅]をpsで制御していましたが、自分ではあまり誤差を感じなかった様な
    気もしたんですが。
    ONnojiさんからの観点で構いませんので、教えて頂きたいです。これからのプログラム作成に参考
    させて頂きたいと思っていますので。
     
    2つ目

    今回で、漸く?うすうす前から感づいていたのですが、キーダウン(今は、この内容ですので)は、
    手続き中2回繰り返すのですか?
    ONnojiさんから、作成させて頂いたスクリプトのCallを入れましたが、2回表示されていたので。
    繰り返しも使用していないので、あれれれと思ったわけです。

    3つ目
    全く別の質問ですかというより確認です。
    ここの、ダウンロードサイトにあります「MNU_SPN_VK_Framework_SP1 for 桐ver.8 / 桐ver.9 /
    桐ver.9-200X」ですが、ブラックボックスで使用願いますと書かれてありますが、このケースの場合
    はどうなのでしょうかと聞きたいのです。
    仮に、内容を改造するものではなく、イベントハンドラの名称を変更・またはライブラリの呼び出し
    先の変更(固定では”"一括パス名”+ライブラリファイル名)を手動で変えると言った場合。
    全てではありません。呼び出すために、自らのイベントファイルに入れる場合です。
    余白などを変えたいと思った場合です。
    全く、的外れなのかもしれませんが、デリゲードな部分ではないでしょうかと思い、お聞きした次第
    です。

    よろしくお願いします。
引用返信 [メール受信/OFF] 削除キー/
■6852 / inTopicNo.5)  1つ目、2つ目、3つ目
□投稿者/ ONnoji -(2012/02/07(Tue) 21:15:35)
    2012/02/07(Tue) 21:50:29 編集(投稿者)
    2012/02/07(Tue) 21:20:11 編集(投稿者)

    No6851に返信(くおんたむさんの記事)
    > 1つ目
    >>[始点X][始点Y][幅][高さ]を、ポイント(pt)で処理していますが、
    >>twips(数値型)で処理する方が、誤差が生じないのでよいですよ。
    > これなんですが、psとtwips の違いというかどのような誤差が生じるのかを教えて頂きたいのです。
    > 今まで、[始点][高さ][幅]をpsで制御していましたが、自分ではあまり誤差を感じなかった様な
    > 気もしたんですが。
    > ONnojiさんからの観点で構いませんので、教えて頂きたいです。これからのプログラム作成に参考
    > させて頂きたいと思っていますので。

    一括処理&イベントリファレンスの[APPENDIX]の[単位]を参照すると以下のことがわかります。

    <精度>

    ■point(ポイント)

    1pt は、20twips です。

    point(ポイント)の精度は、1/10point。 つまり、2twips。

    ■twips(トウィップス)

    1tw は、1/20point です。

    twips(トウィップス)の精度は、1twipsです。

    つまり、twips(トウィップス)の方が、point(ポイント)より精度が高いかと…


    <プロパティ(属性)をtwips(トウィップス)で取得・設定>

    また同じところに次の説明があります。

    twips は、各オブジェクトの単位つきの属性値を、数値型で設定または取得するときに使用します。
    厳密には、数値の後ろに pt、in、mm、cm が表示される属性値を数値で操作する場合は、twips として扱います。
    たとえば[オブジェクト操作] コマンドで、オブジェクトの高さを数値の 280 にすると、14 points になります(280 twips = 14 points × 20)。

    つまり、数値型の変数を利用すれば、プロパティ(属性)の値をtwips(トウィップス)で取得・設定できます。

    拙作フリーソフトは、すべてtwips(トウィップス)で扱っています。

    具体的なコーディングは、拙作をご参考にしてください。

     
    > 2つ目
    > 今回で、漸く?うすうす前から感づいていたのですが、キーダウン(今は、この内容ですので)は、
    > 手続き中2回繰り返すのですか?
    > ONnojiさんから、作成させて頂いたスクリプトのCallを入れましたが、2回表示されていたので。
    > 繰り返しも使用していないので、あれれれと思ったわけです。

    さて、これではよくわかりません。

    サンプルをアップしてください。

    当方で、[キーダウン]イベントハンドラが、どのように呼び出されているかトレースしますよ。

    ※拙作の utx_list2 では、イベントハンドラの実行状況をトレースできます。


    > 3つ目
    > 全く別の質問ですかというより確認です。
    > ここの、ダウンロードサイトにあります「MNU_SPN_VK_Framework_SP1 for 桐ver.8 / 桐ver.9 /
    > 桐ver.9-200X」ですが、ブラックボックスで使用願いますと書かれてありますが、このケースの場合
    > はどうなのでしょうかと聞きたいのです。
    > 仮に、内容を改造するものではなく、イベントハンドラの名称を変更・またはライブラリの呼び出し
    > 先の変更(固定では”"一括パス名”+ライブラリファイル名)を手動で変えると言った場合。
    > 全てではありません。呼び出すために、自らのイベントファイルに入れる場合です。
    > 余白などを変えたいと思った場合です。
    > 全く、的外れなのかもしれませんが、デリゲードな部分ではないでしょうかと思い、お聞きした次第
    > です。

    全然問題ありませんよ。

     ・イベントハンドラの名称を変更
     ・ライブラリの呼び出し先の変更

    OKですよ。


    原文を引用します。
    【引用】MNU_SPN_VK_SP1:オリジナル
    http://tayu.o0o0.jp/download/file_166.txt

    ■使用条件

     当該ソフトはフリーソフトウェアです。

     免責 :動作の保証はしません。各自の責任でご使用下さい。

     改造等:オリジナルの全体または部分の改造、およびオリジナルの部分的な使用もOKです。※1
     ※1:改造や流用は極めて困難ですので、ブラックボックスのままお使いになることをお勧めします。

     再配布:オリジナルの全体または部分の無償再配付はOKです。※2
     ※2:フリーソフトウェアなので価格を付けて配布しないでください。
       ただし、貴殿が開発したアプリケーションに当該フリーソフトウェアを組み込んだ場合、
       当該フリーソフトウェアを除いた部分に生じた貴殿の開発コスト(価格)は、
      (当然ですが)貴殿の裁量で自由に決めてください。


    <改造OK>

    ということで、改造はOKですよ。

    ただし、改造した場合に問題が生じることが予想されます。

    実は、作者自身でも、改造に躊躇するくらいですから、

    内容を一切知らない人が改造するのは、非常に困難です。

    これが現実的な意見だと思います。

    だから、ブラックボックスのままお使いになることをお勧めしている次第です。


    <フレームワークとして>

    従いまして、改造するよりもフレームワークとして利用していただくのが現実的です。

    以下は、「INF_Tools」を「MNU_SPN_VK_Framework_SP1」に置き換えてお読みください。

    【引用】道草/フレームワークとハリウッドの原則/ - ブログ版−桐のイベント道場 - Yahoo!ブログ
    http://blogs.yahoo.co.jp/siliconvalley_bay_7565/29561149.html

    私の拙作フリーソフトの readme.txt では改造OKと書くようにしています。
    しかし、これはこの種のフリーソフトの常套句として書いてある次第です。
    正直に申し上げて、私以外の誰一人もINF_Toolsを改造出来ないと思います。

    ちなみに、拙作は、有志の皆様のお力を借りて十分品質を確認して公開しています。
    ですから、改造する必要はまったくありません。

    また、INF_Tools は実用性を重視しているので、プログラムの学習の参考になる事を考慮していません。
    従って、INF_Tools_library.cmd の内容を見ても、学習の参考になるものはひとつもありません。

引用返信 [メール受信/OFF] 削除キー/
■6853 / inTopicNo.6)  Re[5]: 1つ目、2つ目、3つ目
□投稿者/ くおんたむ -(2012/02/07(Tue) 22:42:21)
    どうも、ONnojiさん

    早速の返事ありがとうございます。


    > <精度>
    >
    > ■point(ポイント)
    >
    > 1pt は、20twips です。
    >
    > point(ポイント)の精度は、1/10point。 つまり、2twips。
    >
    > ■twips(トウィップス)
    >
    > 1tw は、1/20point です。
    >
    > twips(トウィップス)の精度は、1twipsです。
    >
    > つまり、twips(トウィップス)の方が、point(ポイント)より精度が高いかと…
    >
    >
    > <プロパティ(属性)をtwips(トウィップス)で取得・設定>
    >
    > また同じところに次の説明があります。
    >
    > twips は、各オブジェクトの単位つきの属性値を、数値型で設定または取得するときに使用します。
    > 厳密には、数値の後ろに pt、in、mm、cm が表示される属性値を数値で操作する場合は、twips として扱います。
    > たとえば[オブジェクト操作] コマンドで、オブジェクトの高さを数値の 280 にすると、14 points になります(280 twips = 14 points × 20)。
    >
    > つまり、数値型の変数を利用すれば、プロパティ(属性)の値をtwips(トウィップス)で取得・設定できます。
    >
    > 拙作フリーソフトは、すべてtwips(トウィップス)で扱っています。

    成程、確かに精度はtwipsの方が高いですね。
    オブジェクトを設定するとき、変数を文字列にせず数値型にするとtwipsになるんでしたよね・・・?
    うろ覚えでして・・・(^_^;)。いつもpointで指定していたからなぁ。明日、確認してみます。

    いつも、ONnojiさんの作成されるフリーソフトには目からウロコが落ちるほどの驚きがあります。


    >>今回で、漸く?うすうす前から感づいていたのですが、キーダウン(今は、この内容ですので)は、
    >>手続き中2回繰り返すのですか?
    >>ONnojiさんから、作成させて頂いたスクリプトのCallを入れましたが、2回表示されていたので。
    >>繰り返しも使用していないので、あれれれと思ったわけです。
    >
    > さて、これではよくわかりません。
    >
    > サンプルをアップしてください。

    これですが、分かりました。手元にきっかけとなったサンプルがありませんので、明日か明後日あたり
    アップします。
    初めに引っ掛かったのは、マウス左クリックイベントだったかと思います。
    マウス左クリックイベント中に、
    Object @ボタン名 { 機能名1 = "開く" , 機能パラメータリスト1 = "ファイル名" , \
    機能名2 = "閉じる" , 機能パラメータリスト2 = "保存しない" }
    Method @ボタン名.Execute()
    を記述し、実際にそのコマンドボタンをクリックしたら、クリックしたフォームは閉じるのですが、
    機能1で呼び出されたフォームが2つ開かれる(同じフォーム)現象が起きたのを覚えています。

    まだ、そのプログラムを記述しているファイルが別のPCに保存してありますんで、さっきの通り、
    アップします。
    まだ、細かい検証はしていませんが。たとえば、ワークスペースにコマンドボタンをセットし、
    マウス左クリックイベントで呼び出したら、2つ出るか等。
    もし、私以外にこのような現象を経験したことのある方がいたらと、思って書いたわけです。

    > 全然問題ありませんよ。
    >
    >  ・イベントハンドラの名称を変更
    >  ・ライブラリの呼び出し先の変更
    >
    > OKですよ。

    ありがとうございます(^^)。
    入れようとしているスクリプトがシステムの構造上、別々のフォルダになっていて、さっそく入れたら、
    ライブラリが呼び出せないとメッセージが出現して、スクリプトをのぞいたら、ライブラリの呼び出し先
    がフォルダまで出なかったもので。
    これを勝手に変えてもいいのかなぁと思い、確認したかったのです。過去に、勝手に変えて作成者から、
    注意を喰らった経験がありますので。。。(T_T)
    プログラムの中身は変えずに、上記の呼び出し元のイベントハンドラの名称とライブラリの呼び出し先を
    変更程度にとどめて運用しようと考えています。

    また、よろしくお願いします。

引用返信 [メール受信/OFF] 削除キー/
■6854 / inTopicNo.7)  ひょっとして、コマンドボタンの[マウス左クリック]イベント?
□投稿者/ ONnoji -(2012/02/08(Wed) 11:55:34)
    2012/02/08(Wed) 15:11:19 編集(投稿者)
    2012/02/08(Wed) 15:06:33 編集(投稿者)
    2012/02/08(Wed) 15:06:02 編集(投稿者)
    2012/02/08(Wed) 12:04:53 編集(投稿者)

    No6853に返信(くおんたむさんの記事)
    > 初めに引っ掛かったのは、マウス左クリックイベントだったかと思います。
    > マウス左クリックイベント中に、
    > Object @ボタン名 { 機能名1 = "開く" , 機能パラメータリスト1 = "ファイル名" , \
    > 機能名2 = "閉じる" , 機能パラメータリスト2 = "保存しない" }
    > Method @ボタン名.Execute()
    > を記述し、実際にそのコマンドボタンをクリックしたら、クリックしたフォームは閉じるのですが、
    > 機能1で呼び出されたフォームが2つ開かれる(同じフォーム)現象が起きたのを覚えています。

    老婆心ながら…(^^ゞ

    ひょっとして、コマンドボタンの[マウス左クリック]イベントのことでしょうか???
    ※外していたら、スルーしてください。

    そうだとすると、コマンドボタンには[マウス左クリック]イベントは馴染みませんよ。

    もしも、コマンドボタンの[マウス左クリック]イベントを利用するならば、

    当該コマンドボタンの機能名1〜4は "なし" が良いと思います。

    なぜかというと、

    コマンドボタンの上でマウス左ボタンをクリックした場合には、

    (a)マウス左クリックイベントハンドラ
        と
    (b)コマンドボタンの機能

       の両方が実行されます。

    そのようなワケで、コマンドボタンの[マウス左クリック]イベントを利用しないで、

    コマンドボタンの機能名1〜4を利用するのが、良いと思います。

    ※[マウス左クリック]イベントは、エラーするとイベント発生が停止してしまいます。
    ※イベント発生が停止した場合、プロパティ(属性)の値をオンに戻す必要があります。

    詳しくは、以下をご一読ください。
          ↓
    コラム1 コマンドボタンの手続き実行
    http://www.geocities.jp/siliconvalley_bay_7565/column01.htm

    <蛇足>

    [マウス左ダウン]、[マウス左アップ]、[マウス左クリック]等のマウスイベントのデバッグに、
    [確認]・[メッセージボックス]・[トレース 確認]コマンドを使うのは適当ではありません。
    ※ダイアログボックスが表示されるコマンドは、以降のイベントの発生を抑止する場合があります。

    マウスイベントのデバッグには、[トレース出力]コマンドが適していますよ。
    【参考】
    −(2)[トレース出力]コマンドを使ってみる−|§9 デバッグ
    http://www.geocities.jp/siliconvalley_bay_7565/guide09.htm#way2

引用返信 [メール受信/OFF] 削除キー/
■6855 / inTopicNo.8)  サンプルをアップしました
□投稿者/ くおんたむ -(2012/02/08(Wed) 22:53:20)
    どうも、ONnojiさん

    > ひょっとして、コマンドボタンの[マウス左クリック]イベントのことでしょうか???

    全く持って、その通りです。

    > そうだとすると、コマンドボタンには[マウス左クリック]イベントは馴染みませんよ。

    やはり、そうなのですね。前述した、イベントを組んで今まで、やってきて気が付いたのが
    最近でした(^_^;)。
    殆どにフォームに使用していたため、気が付かなかったのでした。(全部ヌルフォームで、
    同じ場所に出ているので気が付かなかったのです)

    今は、殆どObject 設定でやっています。

    > 詳しくは、以下をご一読ください。
    >       ↓
    > コラム1 コマンドボタンの手続き実行
    > http://www.geocities.jp/siliconvalley_bay_7565/column01.htm
    > マウスイベントのデバッグには、[トレース出力]コマンドが適していますよ。
    > 【参考】
    > −(2)[トレース出力]コマンドを使ってみる−|§9 デバッグ
    > http://www.geocities.jp/siliconvalley_bay_7565/guide09.htm#way2

    教えて頂いたサイトをじっくりと熟読させていただきます。
    今後の作り方に参考・反映出来ればと思います。


    サンプルをアップします。
    これは、前回の議題の中に、キーダウンイベントが2回実行されるとありました。
    そのサンプルです。

    F1〜F9を押しますと、メッセージボックス(中身は、ONnojiさんより提供頂きましたものです)
    他のキーを押しますと、対象外のキーが押されましたとメッセージが出るようになっています。

    中身を別のものにしようと思いましたが、ONnojiさんより提供頂きました記述がじっくり来るの
    ないかと思い、記載させていただきましたm(_ _)m

    仕様なのか、私の方の桐が狂っている?のか、教えて頂ければ嬉しいです。

    あと、タイトルも「サンプルをアップしました」に変更させていただきます。

Sampling2.lzh
/4KB
引用返信 [メール受信/OFF] 削除キー/
■6856 / inTopicNo.9)  イベントファイル(.kev)に書いてある通りに動作しています
□投稿者/ ONnoji -(2012/02/09(Thu) 10:04:09)
    2012/02/09(Thu) 12:01:37 編集(投稿者)
    2012/02/09(Thu) 11:58:03 編集(投稿者)
    2012/02/09(Thu) 11:49:55 編集(投稿者)
    2012/02/09(Thu) 10:35:20 編集(投稿者)
    2012/02/09(Thu) 10:17:42 編集(投稿者)

    No6855に返信(くおんたむさんの記事)
    > サンプルをアップします。
    > これは、前回の議題の中に、キーダウンイベントが2回実行されるとありました。
    > そのサンプルです。
    > F1〜F9を押しますと、メッセージボックス(中身は、ONnojiさんより提供頂きましたものです)
    > 他のキーを押しますと、対象外のキーが押されましたとメッセージが出るようになっています。
    > 仕様なのか、私の方の桐が狂っている?のか、教えて頂ければ嬉しいです。

    サンプルを拝見したところ、次のように動作しています。

    1. F1〜F9の任意のキーを押す
    2.[フォーム::キーダウン]イベントが発生
    3.イベントハンドラ:フォーム::キーダウン( ) が実行される
    4.一般手続き:cmdTestClick( )が実行される
    5.一般手続き:cmdTestClick( )では、メッセージボックス(一般手続き:INFprcMsgPause)を2度呼び出す

    つまり、イベントファイル(.kev)に書いてある通りに動作しています。

    もしも、メッセージボックス(一般手続き:INFprcMsgPause)を2度表示したくないならば、

    一般手続き:cmdTestClick( )内の、

    2つある 「手続き実行 INFprcMsgPause( &icon, &title, &msg )」 の、

    どちらか一方をコメント行にしてください。

    ちなみに、[フォーム::キーダウン]イベントは1度だけ発生して、
    イベントハンドラ:フォーム::キーダウン( ) も1度だけ実行されています。

    ※一般手続き:INFprcMsgPause( )は、[メッセージボックス]コマンドを実行するものです。
    ※一般手続き:INFprcMsgPause( )は、拙作:INF Tools に添付されています。

    ■トレース出力ウィンドウの内容( utx_list2.1にて清書 )

     ┌when メイン処理を実行開始しました
     └end

     ┌when "フォーム::キーダウン(113,60,0,0)"を実行開始しました
     │
     │┌when "cmdTestClick( )"を実行開始しました
     ││
     ││┌when "INFprcMsgPause(,"cmdTestClick( )","&objectName = PF02\n\n&visible = 1")"を実行開始しました
     ││└end
     ││
     ││┌when "INFprcMsgPause(,"cmdTestClick( )","&objectName = PF02\n\n&visible = 1")"を実行開始しました
     ││└end
     ││
     │└end
     │
     └end


    ■手続きのネスト( utx_list2.1にて作成 )

    名札 メイン

    フォーム::キーダウン
    └ cmdTestClick
      ├ INFprcMsgPause
      └ INFprcMsgPause

    cmdTestClick
    ├ INFprcMsgPause
    └ INFprcMsgPause

    INFprcMsgPause


    ■イベント(.kev)の内容( utx_list2.1にて清書 )

    名札 メイン
     Var 局所 , 文字列 { &ObjBtnName }

     *


    手続き定義開始 フォーム::キーダウン(長整数 &仮想キーコード,長整数 &スキャンコード,長整数 &フラグ,参照 長整数 &処理中止)
     Var 長整数 { &KeyCode = &仮想キーコード }
     If ( &KeyCode => 112 .And &KeyCode <= 120 )
      &ObjBtnName = "PF" + #Str( &KeyCode - 111 , 2 )
      Call cmdTestClick( ) /* ONnojiさんより、確認用サンプル
     Else
      Msgbox "確認" , "他のキーが押されました!"
     End
    手続き定義終了

    手続き定義開始 cmdTestClick( )
     変数宣言 自動,文字列{ &icon, &title = "cmdTestClick( )", &msg }
     変数宣言 自動,文字列{ &objectName }
     変数宣言 自動,数値 { &visible }

     &objectName = &ObjBtnName
     オブジェクト操作 &objectName{ &visible = 画面表示 }

     &msg = "&objectName = " + &objectName
     &msg = &msg + "\n\n&visible = " + #str( &visible )
     手続き実行 INFprcMsgPause( &icon, &title, &msg )

     **** 今回のサンプルは消すのが目的ではないので・・・
     /* &visible = 0
     /*オブジェクト操作 &objectName{ 画面表示 = &visible }
     ***************

     &msg = "&objectName = " + &objectName
     &msg = &msg + "\n\n&visible = " + #str( &visible )
     手続き実行 INFprcMsgPause( &icon, &title, &msg )

    手続き定義終了

    手続き定義開始 INFprcMsgPause( 文字列 &icon, 文字列 &title, 文字列 &msg )
     ** 変数宣言 自動,文字列{ &icon, &title = "INFprcMsgPause( )", &msg }
     変数宣言 自動,文字列{ &iconList = "i,?,!,e" } /* 半角コンマで区切った文字列リスト */
     変数宣言 自動,文字列{ &macro }
     変数宣言 自動,整数 { &at }

     &icon = #半角( #lc( #sstr( &icon, 1, 1 ) ) ) /* &icon はこの手続きの引数 */
     &at = #対応番号( &iconList, &icon )

     &macro = "メッセージボックス &title, &msg" + #cond( &at, ", アイコン = " + &icon ) + ", ボタン指定 = 1, 制御文字展開 = する"
     コマンド &macro

    手続き定義終了


    【参考】
    INFprcMsgPause - ブログ版−桐のイベント道場 - Yahoo!ブログ
    http://blogs.yahoo.co.jp/siliconvalley_bay_7565/833771.html

    INFprcMsgOKCancel - ブログ版−桐のイベント道場 - Yahoo!ブログ
    http://blogs.yahoo.co.jp/siliconvalley_bay_7565/834135.html

引用返信 [メール受信/OFF] 削除キー/
■6857 / inTopicNo.10)  Re[9]: イベントファイル(.kev)に書いてある通りに動作しています
□投稿者/ くおんたむ -(2012/02/09(Thu) 23:02:43)
    どうも、ONnojiさん

    > サンプルを拝見したところ、次のように動作しています。
    >
    > 1. F1〜F9の任意のキーを押す
    > 2.[フォーム::キーダウン]イベントが発生
    > 3.イベントハンドラ:フォーム::キーダウン( ) が実行される
    > 4.一般手続き:cmdTestClick( )が実行される
    > 5.一般手続き:cmdTestClick( )では、メッセージボックス(一般手続き:INFprcMsgPause)を2度呼び出す
    >
    > つまり、イベントファイル(.kev)に書いてある通りに動作しています。

    検証、ありがとうございます。
    私の方も、もう一度見直しました。
    そしてら、5の手続きが2つあったのに気づきました。
    もう少し、よく見れば良かったんですね・・・(^_^;)

    > もしも、メッセージボックス(一般手続き:INFprcMsgPause)を2度表示したくないならば、
    > 一般手続き:cmdTestClick( )内の、
    > 2つある 「手続き実行 INFprcMsgPause( &icon, &title, &msg )」 の、
    > どちらか一方をコメント行にしてください。

    そのようにすることで、1度しか出ないようになりました。


    > ※一般手続き:INFprcMsgPause( )は、[メッセージボックス]コマンドを実行するものです。
    > ※一般手続き:INFprcMsgPause( )は、拙作:INF Tools に添付されています。

    ONnojiさんが、作成されたフリーソフト、utx_list2(清書)を入れることにより、より分かりやすくなりました。
    ありがとうございます!
    今度は、メニューツールバー等を導入しようと、残存のスクリプトを修正中です。

    ここまで、付き合って頂きありがとうございますm(_ _)m
    胸のつかえが取れたかのようにすっきりしました。
    また、質問が生じるかもしれませんが、その時はよろしくお願いします。
解決済み!
引用返信 [メール受信/OFF] 削除キー/



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

このトピックに書きこむ

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

Mode/  Pass/

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

- Child Tree -
- Antispam Version -