增加 TRichEdit 的大小/限制



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

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

第二个问题,

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

如果我粘贴到TJvRichEdit(绝地武士)中,那工作正常,显然是因为这是一个完全不同的组件。

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

所以基本上我要问的是:

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

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

编辑

没关系找到答案:

RichEdit11.MaxLength := $7FFFFFF0;
引用

David Pate在新闻组中给出的答案:

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

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

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

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

  3. "键盘限制":无法通过从键盘键入来添加字符的限制。它通常与容量不同,但与容量一样,默认情况下为 64Kb,可以通过多种方式调整大小。

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

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

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

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

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

相关内容

  • 没有找到相关文章

最新更新