ニュースグループからの David Pate による回答の引用:
次の注意事項は、Windows Richedit バージョン 1 コントロールを使用する Delphi のバージョンに適用されます。これには、バージョン 7 より前の Delphi のすべてのバージョンが含まれることを理解しています。
Q. リッチエディットが保持できるテキストの量の制限は? A. ヘルプ ファイル (Delphi ヘルプと Win32 SDK) は、この点で紛らわしく、矛盾しており、正しくありません。考慮すべき5つの制限があります
最大容量: 「ハードワイヤード」制限、つまり、RichEdit のテキスト バッファの最大サイズ。2 Gb 未満の 2 バイトです。これは理論上の限界であることに注意してください。実際には、制限はコンピュータのメモリによって決まります。
容量: 現在のバッファの実際のサイズ。デフォルトでは 64Kb ですが、いくつかの方法でサイズを変更できます。
「キーボード制限」: キーボードから入力して追加できない文字の制限。多くの場合、容量とは異なりますが、容量と同様に、デフォルトで 64Kb であり、いくつかの方法でサイズを変更できます。
tRichEdit オブジェクトの MaxLength プロパティ。デフォルトの 0 は、容量と「キーボード制限」の両方を 64Kb に設定します。
行数の制限: 理論的には約 1 億 3,400 万ですが、実際にはこれよりもはるかに少なくなることが予想されます。行の最大数は、使用可能なメモリの量や行の平均長など、いくつかの要因に依存するようです。15 万から 20 万行程度を取得できることがわかりました。また、Windows 95 の Richedit コントロールの一部のリリースでは、数百行を超える行が追加されると例外がスローされることがあると報告されていることにも注意してください。これは、コントロールのバグによるもので、後のリリースで修正されているようです..
Q. tRichEdit が保持できるテキストの量を増やすにはどうすればよいですか?
A. プログラムでテキストを追加すると、容量と「キーボード制限」の両方が、追加されるテキストに対応するようにサイズ変更されます。プログラムでテキストを追加するとは、tRichEdit.Lines プロパティの Add、Append、AddStrings、または Assign メソッド、または tRichEdit の LoadFromFile、LoadFromStream、または SetTextBuf メソッドのいずれかを使用することを意味します。この方法でテキストを追加しても、MaxLength プロパティは更新されないことに注意してください。
B. MaxLength プロパティを使用する。これにより、「キーボード制限」が MaxLength に渡された値に設定されます。また、既存の容量が MaxLength 未満の場合、「キーボード制限」に合わせて容量を増やします。MaxLength を使用して Capacity を減らすことはできず、渡された値が現在コントロール内にあるテキストの長さより短い場合、MaxLength を変更しても効果がないことに注意してください。容量と「キーボード制限」を同じ値に増やすには、tRichEdit.MaxLength を目的の値に設定します。オブジェクト インスペクタで最大サイズを設定するには、値 2147483645 ($7FFFFFFD) を使用します。プログラムで設定するには、.MaxLength := System.MaxInt-2; を使用する方が簡単です。EM_LIMITTEXT および EM_EXLIMITTEXT メッセージを使用して「キーボード制限」と容量を変更することもできますが、