为TMemo / TRichEdit提供更多内存

时间:2009-11-06 22:27:00

标签: delphi

有没有办法为Memo或RichEdit分配更多内存(如果使用大文件)

感谢

3 个答案:

答案 0 :(得分:6)

使用LocalAlloc分配内存,然后使用em_SetHandle消息将其提供给编辑控件。如果编辑控件需要更多空间,您可以处理en_ErrSpace通知。 MSDN描述了"About Edit Controls" article中的过程。但它不适用于富编辑控件;他们不会将数据存储在连续的缓冲区中,例如编辑控件。

答案 1 :(得分:4)

不是加载整个文件,而是将控件用作数据的“窗口”不是更好吗?只需在用户向上或向下滚动时加载数据,加载更多数据(并删除一些数据)。

答案 2 :(得分:3)

我建议切换到另一个编辑控件,如SynEdit(它可以在几毫秒内加载80 MB的文本文件)。