gpt4 book ai didi

delphi - 增加 TRichEdit 的大小/限制?

转载 作者:行者123 更新时间:2023-12-02 03:26:05 33 4
gpt4 key购买 nike

我在使用 TRichEdit 时遇到一些问题。

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

我猜想与第一个问题相关的第二个问题是,我似乎限制了 TRichEdit 可以显示的字符数量,因此从剪贴板粘贴会丢失一些数据。

如果我粘贴到 TJvRichEdit (Jedi) 中,效果很好,显然因为这是一个完全不同的组件。

此时此刻,我想要 TRichEdit 的解决方案,因为我正在使用很多过程/函数等,如果我更改为不同的 Rich Edit 类,那么我将不得不编辑很多代码才能工作.

所以基本上我要问的是:

  • TRichEdit 有限制吗?我确信是有的。
  • 如何提高 TRichEdit 的限制以接受更多字符和行等。

请仅提供 TRichEdit 的建议/解决方案。

编辑

没关系找到答案:

RichEdit11.MaxLength := $7FFFFFF0;

最佳答案

引用 newsgroups 中 David Pate 给出的答案:

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

问。 Richedit 可以容纳的文本量有多少限制?答:在这一点上,帮助文件(Delphi 帮助和 Win32 SDK)令人困惑、矛盾且不正确。有 5 个限制需要考虑

  1. 最大容量:“硬连线”限制,即 RichEdit 文本缓冲区的最大大小。它比 2 GB 少了 2 个字节。请注意,这是理论极限;实际上,该限制将由您的计算机内存决定。

  2. Capacity:当前缓冲区的实际大小。默认情况下,它是 64Kb,但可以通过多种方式调整大小。

  3. “键盘限制”:超出此限制,无法通过键盘输入添加字符。它通常与容量不同,但与容量一样,默认情况下为 64Kb,并且可以通过多种方式调整大小。

  4. tRichEdit 对象的 MaxLength 属性。默认值 0 将容量和“键盘限制”设置为 64Kb。

  5. 行数限制:理论上约为 1.34 亿行,但实际上,您获得的行数可能会比这个少得多。最大行数似乎取决于几个因素,包括可用内存量和行的平均长度。我发现我可以获得大约 15 万到 20 万行。另请注意,据报道,Windows 95 Richedit 控件的某些版本有时在添加超过几百行时会引发异常。这似乎是由于控件中的错误造成的,并已在以后的版本中得到纠正。

问。如何增加 tRichEdit 可容纳的文本量?

A.当您以编程方式添加文本时,容量和“键盘限制”都会调整大小以适应要添加的文本。通过以编程方式添加文本,我的意思是使用 tRichEdit.Lines 属性的 Add、Append、AddStrings 或 Assign 方法或 tRichEdit 的 LoadFromFile、LoadFromStream 或 SetTextBuf 方法中的任何一个。请注意,以这种方式添加文本不会更新 MaxLength 属性。

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

关于delphi - 增加 TRichEdit 的大小/限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6049053/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com