メインコンテンツへスキップ

xpa 3.2へマイグレーション後のCaretPosGet()関数について

コメント

7件のコメント

  • Tanda

    ファンクションキーの使用ですとか、フォーカスの移動しないイベントならOKのようですね。

  • Tomonari

    ISHIJIMA様、tanda様

    お早い返信ありがとうございます。
    ボタンクリックのように、一旦エディットコントロールから
    フォーカスが離れるような場合は上手くいかないのでしょうかね。


    ISHIJIMA様
    >ユーザーイベントのパラメタに桁数項目を作成します。
    >ボタンを押した時のユーザーイベントのパラメタにCaretPosGet()を入れます。
    >イベント内に桁数項目を作成します。
    >そうするとそこに桁数が入ってきます。

    この場合はボタンクリックでも上手くいくのでしょうか?
    ユーザーイベントを作成してパラメータ等作成してみましたが上手くいかなかったので。
    これは、ユーザーイベントを作成して、そのイベントをボタンクリックした時のイベントから
    呼び出すような仕組みでよろしいのでしょうか?

    宜しくお願い致します。

  • Tomonari

    ISHIJIMA様

    ありがとうございます。教えて頂いた方法で、カーソルの位置を取得することができました。


    ただ、位置は取得できましたが、実際その位置に挿入しようとするとやはり
    元の文字列全体に上書きしたようになってしまいました。

    ClipAdd(挿入文字列)
    ClipWrite()
    MarkText(カーソル位置-1,0)
    イベントの貼り付け

    以上のような流れで作成していますが、元の文字列が全て削除され、挿入文字列のみが表示されます。
    やはりボタンクリックした時に、全選択になっているようでそのあたりが関係しているのでしょうか。
    ご存知でしたら教えていただけますでしょうか。

    再度、質問のような形になり申し訳ございません。

  • Tomonari

    ISHIJIMA様

    ありがとうございました。サポートに確認したいと思います。

     

  • Tomonari

    お世話になります。

    サポートにはまだ確認していませんが、

    先ほどの文字列挿入の件ですが、MarkText()の仕方がまずいみたいで、

    第二引数の'文字数'でこれがマークする文字数を表す数値ですが、ここで0を指定すると

    Magic uniPaaS V1Plusではちょうど指定場所に挿入されるのですが、Magic xpa だと

    元の文字列が消えてしまう現象が起きていました。

    引数に1以上を指定すれば、uniPaaSと同じ動きみたいです。

    ただ今回は、カーソル位置に挿入したいので引数に1以上を指定しますと、その文字数だけ

    上書きされるので、そのあたりをサポートに確認しようとおもいます。

     

  • Tomonari

    ISHIJIMA様

    いろいろとありがとうございます。

  • Tanda

    現在のMagicのフォームエディタは、MicrosoftのVisual Studioのフォームデザイナーを使用していますので、それが原因かもしれませんね。

サインインしてコメントを残してください。