首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >增加TRichEdit的大小/限制?

增加TRichEdit的大小/限制?
EN

Stack Overflow用户
提问于 2011-05-18 18:02:41
回答 1查看 5.5K关注 0票数 3

我和TRichEdit有一些问题。

第一个问题是,如果我试图将大量文本从剪贴板粘贴到一个空的TRichEdit中,它会截断文本的底部。

我猜想,第二个问题与第一个问题有关,我似乎仅限于TRichEdit可以显示多少个字符,因此从剪贴板上粘贴掉了一些数据。

如果我粘贴到一个TJvRichEdit (绝地),这很好,显然,因为这是一个完全不同的组成部分。

此时,我想为TRichEdit提供一个解决方案,因为我正在使用大量的过程/函数等等,如果我更改为一个不同的TRichEdit类,那么我将不得不编辑大量代码才能工作。

所以基本上我要问的是:

  • TRichEdit有限制吗?我相信这是存在的。
  • 如何增加TRichEdit的限制,以接受更多的字符和行等。

请只为TRichEdit提供建议/解决方案。

编辑

不要紧的是通过以下方法找到答案:

代码语言:javascript
复制
RichEdit11.MaxLength := $7FFFFFF0;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-18 20:34:41

引用新闻组大卫·佩特的回答

以下备注适用于使用Windows Richedit version 1控件的Delphi版本。我知道这包括版本7之前的所有Delphi版本(我不知道在Windows的各种NT/2000版本上运行在这些版本中编译的程序时的情况,尽管Windows XP的行为正如所述)。

问:一个Richedit所能持有的文本数量的限制是什么?答:帮助文件(Delphi和Win32 SDK)在这一点上是混乱、矛盾和不正确的。有五个限制需要考虑

  1. 最大容量:“硬连线”限制,即RichEdit的文本缓冲区的最大大小。它比2GB少2个字节。请注意,这是理论上的限制;在实践中,限制将由计算机的内存决定。
  2. 容量:当前缓冲区的实际大小。默认情况下,它是64 it,但可以通过多种方式调整大小。
  3. “键盘限制”:通过键盘输入不能添加字符的限制。它通常与容量不同,但与容量一样,它默认为64 is,可以通过多种方式调整大小。
  4. MaxLength对象的tRichEdit属性。默认的0将容量和“键盘限制”设置为64 of。
  5. 线数限制:理论上这大约是1.34亿,但在实践中,你可以期望得到的比这个少得多。最大行数似乎取决于几个因素,包括可用的内存量和行的平均长度。我发现我可以得到大约15万到20万行。还请注意,据报道,Windows 95 Richedit控件的某些版本在添加超过几百行时有时会抛出异常。这似乎是由于控件中的一个错误,并在以后的版本中得到了纠正。

问:我如何增加tRichEdit可以保存的文本数量?

当您以编程方式添加文本时,将调整容量和“键盘限制”以适应所添加的文本。通过编程添加文本,我的意思是使用tRichEdit.Lines属性的任何添加、追加、tRichEdit.Lines或赋值方法,或者使用tRichEdit的LoadFromFile、LoadFromStream或SetTextBuf方法。请注意,以这种方式添加文本不会更新MaxLength属性。

通过使用MaxLength属性。这将“键盘限制”设置为传递给MaxLength的值。如果现有容量小于MaxLength,则还会增加与“键盘限制”匹配的容量。请注意,您不能使用MaxLength来减少容量,如果传递的值小于控件中当前文本的长度,则更改MaxLength不会产生任何影响。若要将容量和“键盘限制”提高到相同的值,请将tRichEdit.MaxLength设置为所需的值。若要在对象检查器中设置最大大小,请使用值2147483645 ($7FFFFFD)。要以编程方式设置它,使用.MaxLength := System.MaxInt-2;更简单。EM_LIMITTEXT和EM_EXLIMITTEXT消息也可用于更改“键盘限制”和容量,但我通常不建议使用它们,因为如果使用,您将不会更新MaxLength属性。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6049053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档