TRichEditも64KBの制限があるのでしょうか?

解決


武田  2006-11-02 21:43:42  No: 23715

いつもお世話になっています。環境は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


うんと  2006-11-03 00:45:02  No: 23716

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;

ですね。

文字化けは経験ありません。


武田  2006-11-03 05:44:31  No: 23717

「うんと」さん、さっそくありがとうございます。
やはり文字化けするのです。この掲示板にRichEditで過去ログを検索すると「\par って何ですか? 」という質問がありますが、同じように行頭?に\parがついてやたらと8080がつきます。
RichEditでGoogleを検索すると結構バグの話題が出てきますが、Wordwrapのバグの話が出てきません。
気になるのはRichEdit2の件、あといろいろインストールすると、古いRichEditが上書きされることがあるという記事がありました。
この辺をもう少し調べてみたいと思います。
systemu32フォルダには検索するとRichEdit20.dllとRichEdit32.dll
があります。これらがTRichEditコンポーネントを使うとロードされるのでしょうか?
よろしくお願いします。


武田  2006-11-03 10:37:05  No: 23718

うんとさん、自己レスです。
解決しました。テキストファイルのサイズは350KB、35000行くらいあります。
この件が書かれているサイトをやっと探しました。
http://www.slis.keio.ac.jp/~anakata/delphi/myfaq.html#Q02
ここに次のように書いてありました。
「RichEditコントロールでも、そのままでは編集を行った時点で問題が発生します。この場合はMaxLengthプロパティを十分に大きな値(100000000とか)に設定することで回避できます」
その通りに設定したら解決しました。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加