TEditの選択範囲

SelStartとSelLengthで取得しますよね。でも何か変なんです。

ちょっと忙しくて詳しい発生状況調べてないけど、CCB2007+Vistaの環境でこれらを参照するとズレるのです。どうやらUnicodeでの文字数で帰ってくるみたいです。なんじゃこりゃ。

WindowsのテキストボックスはUnicode化されているのを、VCLでムリにAnsi文字に変換してる(と思う)ので、そこで選択範囲に関する処理でコード変換が抜けたのかなーっと推測。ソース読めば分かるのかな。

そしてコレをWin2kで動かしたらちゃんとAnsi文字の文字数で帰ってくるから性質が悪い。XPは試してないです。逆に、BCB6+Win2kで作成したものをVistaで実行すると、これはちゃんとAnsi文字数で帰ってくる。うむー。

仕方ないので一旦「あああ」とか入れて、全選択→SelLengthで文字数取得、その取得文字数でどっちの文字コード文字数になってるのか調べる仕組みを組み込むハメに。

バグ報告しとくべきかなぁ。でもきっとダレか出してるよね!