いつもお世話になっています。環境はWindowsXP Delphi6 Personalです。
メモ帳を作成していますが、TMemoコンポーネントは64kで長文は処理できないと聞いていましたのでTRichEditコンポーネントを使うことにしました。
DelphiのDemosフォルダにあるRichEditのデモプログラムでチェックしているのですが、Wordwrapで文字化けしますが、なにか解決する方法があるのでしょうか。TRichEditも64kbの制限があるのでしょうか。
テストテキストファイルは、適当なものがないためDelphiのpasをtxtに変更してコピーしながら2500行90KBを作成しました。
デモプログラムに添付されているサンプルrtfファイルをコピーしてファイルサイズを大きくしたファイルでも同じでした。
RichEditのデモプログラムに
procedure TMainForm.Button1Click(Sender: TObject);
begin
if Editor.WordWrap = true then Editor.WordWrap:=false else Editor.WordWrap:=true;
を追加して実行しています。
よろしくご指導ください。m(_ _)m
XP 2000 NT なら TMemo でさえ 64k の制限はありません。
TRichEdit なら Windows95 以降の 32bit OS すべてで 64k の 制限はありません。
> if Editor.WordWrap = true then Editor.WordWrap:=false else Editor.WordWrap:=true;
これは
Editor.WordWrap := not Editor.WordWrap;
ですね。
文字化けは経験ありません。
「うんと」さん、さっそくありがとうございます。
やはり文字化けするのです。この掲示板にRichEditで過去ログを検索すると「\par って何ですか? 」という質問がありますが、同じように行頭?に\parがついてやたらと8080がつきます。
RichEditでGoogleを検索すると結構バグの話題が出てきますが、Wordwrapのバグの話が出てきません。
気になるのはRichEdit2の件、あといろいろインストールすると、古いRichEditが上書きされることがあるという記事がありました。
この辺をもう少し調べてみたいと思います。
systemu32フォルダには検索するとRichEdit20.dllとRichEdit32.dll
があります。これらがTRichEditコンポーネントを使うとロードされるのでしょうか?
よろしくお願いします。
うんとさん、自己レスです。
解決しました。テキストファイルのサイズは350KB、35000行くらいあります。
この件が書かれているサイトをやっと探しました。
http://www.slis.keio.ac.jp/~anakata/delphi/myfaq.html#Q02
ここに次のように書いてありました。
「RichEditコントロールでも、そのままでは編集を行った時点で問題が発生します。この場合はMaxLengthプロパティを十分に大きな値(100000000とか)に設定することで回避できます」
その通りに設定したら解決しました。
ありがとうございました。
ツイート | ![]() |