Editor_GetText()で大きさの取得が出来ない
-
wchar_t *p = NULL;
int siz = Editor_GetText(hwnd, 0, p);
で、テキスト全体の大きさが取得できそうなんですが、ゼロが返されます。
何が間違っているのでしょうか。なお、Editor_GetLine()は問題ありません。よって、全体の行数を得てからこれを使って各行を足し合わせれば要求は満たされるんですが...
| tokumei | 返信 -
プラグインの開発、お疲れ様です。
Editor_GetText ですが記述方法は問題ないと思います。
動作しないとなると Mery のバージョンの問題かもしれません。Editor_GetText
が実装されたのは Ver 2.6.10 以降なので、正式版の Ver 2.6.7 あたりでは動作しません。> なお、Editor_GetLine()は問題ありません。よって、全体の行数を得てからこれを使って各行を足し合わせれば要求は満たされるんですが...
Ver 2.6.7 との互換性のあるプラグインを作る場合はバージョンが 2.6.10 以降かどうかで判定して、それより古いバージョンなら全体の行数を得て足し合わせる感じになります。
if CheckAppVersion(2, 6, 10) and (CharsEnabled or LinesEnabled) then begin FWordCount[3] := Editor_GetText(FActiveHandle, 0, nil); if FWordCount[3] > 0 then Dec(FWordCount[3]); FWordCount[4] := Editor_GetLines(FActiveHandle, POS_LOGICAL); FWordCount[5] := Editor_GetLines(FActiveHandle, POS_VIEW); Dec(FWordCount[3], FWordCount[4] - 1); end;
一応、現在リリース中のプロ生ちゃんプラグインで使用している部分のソースです。Delphi で恐縮ですが…。
| Kuro | 返信 -
2.6.7でした。
お騒がせしました。> プラグインの開発、お疲れ様です。
>
> Editor_GetText ですが記述方法は問題ないと思います。
>
> 動作しないとなると Mery のバージョンの問題かもしれません。Editor_GetText
> が実装されたのは Ver 2.6.10 以降なので、正式版の Ver 2.6.7 あたりでは動作しません。
>
> > なお、Editor_GetLine()は問題ありません。よって、全体の行数を得てからこれを使って各行を足し合わせれば要求は満たされるんですが...
>
> Ver 2.6.7 との互換性のあるプラグインを作る場合はバージョンが 2.6.10 以降かどうかで判定して、それより古いバージョンなら全体の行数を得て足し合わせる感じになります。
>
> 一応、現在リリース中のプロ生ちゃんプラグインで使用している部分のソースです。Delphi で恐縮ですが…。| tokumei | 返信