问题标签 [trichedit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5276 浏览

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

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

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

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

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

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

所以基本上我要问的是:

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

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

编辑

没关系使用以下方法找到答案:

0 投票
2 回答
242 浏览

delphi - 从 D2005 升级到 D2010 : TRichEdit

以下代码在 D2005 上运行良好:

但在 D2010 中,此代码以纯文本而不是 rtf 格式输出文本。

为了解决我正在使用以下代码的问题

如何将 rtf 文本从数据库导入 TRichEdit,而无需在此过程中使用文件?我尝试了 这个问题的解决方案, 但它不起作用,它以纯文本显示,每个字符之间有一个空格。

谢谢山姆

0 投票
1 回答
2574 浏览

delphi - 如何更改 TRichEdit 中某些字符的颜色?

我正在做一个 Delphi 7 项目,我必须让用户输入一个数字(层向下)来构建一棵圣诞树,但我还需要将输出显示为*(星号)。我在编辑 TRichEdit 中的某一行星星时遇到问题,以使颜色随机变化,就像真正的圣诞树发光一样。

0 投票
1 回答
3437 浏览

delphi - 将 TRichEdit 绘制到画布上

我正在尝试在 Delphi XE 中实现支持 RTF 的工具提示窗口。为了呈现富文本,我使用了屏幕外的 TRichEdit。我需要做两件事:

  1. 测量文本的大小。
  2. 绘制文本

为了完成这两个任务,我编写了这个方法:

Range参数是传入的,所以我可以在这个方法之外使用计算出来的尺寸。MustPaint 参数确定是否应计算范围 (False) 或绘制 (True)。

为了计算范围,我调用这个方法:

画它:

问题在于,虽然它计算了一个 438 像素宽和 212 像素高的矩形,但它实际上绘制了一个非常宽(被剪裁)且只有 52 像素高的矩形。

我打开了自动换行,尽管我的印象是不需要这样做。

有任何想法吗?

0 投票
3 回答
1138 浏览

delphi - Delphi 用彩色文本组件替换 TRichEdit 以提高性能

我目前在我的一个软件(在 Delphi 7 中)中使用 TRichEdit 作为“实时”事件日志查看器,我最近对我的软件进行了分析,TRichEdit 消耗了超过 40% 的软件 cpu 时间。

我只想测试其他组件以比较性能,该组件必须具有:

  • 线条着色(可能是 LINE 语法颜色,因为不同颜色的线条有不同的前缀或 HTML 着色等)。
  • 轻松保存到文件功能(到 RTF 或 HTML)。
  • 免费或开源。
  • 性能好。即使是“大文件”(可能是 200 Mo)作为查看器。

信息:我还看过这篇文章,但对我来说没有很好的答案。

0 投票
1 回答
1427 浏览

delphi - 在 TRichEdit 中设置 EM_AUTOURLDETECT 后如何检测 URL 链接?

我正在尝试使用 EM_AUTOURLDETECT 消息为 TRichEdit 组件实现 URL 检测。
我对以下代码有疑问

它虽然有效,但我必须在这些设置之后更改 TRichEdit 的文本,以使其检测到已写入文本中的 URL。这就是问题所在,因为我的 TRichEdit 在应用此功能时处于只读模式。

执行此代码以强制 TRichEdit 检测已写入文本中的 URL 后,我应该怎么做?
我正在查看文档,但没有提到这样的事情。

谢谢

0 投票
1 回答
1675 浏览

delphi - 打印带有背景颜色的richedit

我正在将文本从 delphi TRichedit 控件输出到打印机。有一个背景图像,所以我使用 EM_FORMATRANGE 和这个逻辑......

...并且工作正常,除了在呈现文本时它始终具有白色背景,而不管richedit的颜色如何。知道为什么吗?

编辑:来自发表的评论:

RangeRANGEFORMAT, 并被赋予如下值:

0 投票
1 回答
669 浏览

winapi - Richedit 2.0 控件忽略 WM_PAINT 消息的 WParam?

我已经阅读了很多关于尝试对 Richedit 控件进行双缓冲的问题,但没有看到对这个特定问题的任何直接答案(如果有微软官方声明的引用/链接,那就太好了)。

这是我一直用于测试的一些代码(VCL/Delphi/Borland Builder 6.0):

如果我在继承::WndProc() 之前调用 BeginPaint() (将消息传递给那些不知道 VCL 的控件),那么控件不会在我的内存 DC 或实际窗口 DC 上绘制任何内容。如果我改为调用 GetDC(),控件仍然不会在内存 DC 上绘制,但它会直接在窗口 DC 上绘制。我通过注释掉我的 BitBlt() 调用来确认这一点。如果没有注释掉,客户区全黑(意味着控件根本没有在内存 DC 上绘制),如果我注释掉那行,控件正确绘制(这意味着它忽略了 WParam 内存 DC 并直接进入窗口 DC)。

虽然听起来我已经回答了我自己的问题,但我真正想要的是其他人的确认(链接到 MS KB 文章或 MSDN 会很棒,所以我可以向我的老板展示:),以及实现双缓冲的其他可能的想法? 我不能使用我发现的大多数技巧,比如将控件隐藏在屏幕外或使用 WM_PRINT,因为我需要这个控件才能真正用于用户输入和滚动条,它不仅仅是用于显示的只读。

此外,该控件使用的是 RichEdit 2.0,即使我使用的是 VCL.. 它已被修改为将窗口创建为“richedit20a”类。我还确认 VCL 层根本没有弄乱绘画,所以在纯 win32 代码中应该看到同样的行为。

0 投票
2 回答
1634 浏览

delphi - Delphi 7 TRichTextEdit 框中的文本无法正确显示

使用delphi 7 TRichEdit组件,通过复制和粘贴从msword文档中导入RTF数据,但是如果数据包含在一个框中,则无法正确显示,即

在此处输入图像描述

请协助

0 投票
1 回答
6609 浏览

windows - 更改某些非文本字符的字体时,如何使 TRichEdit 在 Windows 7 上表现得像写字板?