问题标签 [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.
delphi - 如何在 Delphi 7 中获取 TTNTRichEdit unicode 内容?
如何获取/设置 unicode (utf8/utf16) 格式的 TTNTRichEdit RTF 内容?我使用 TStringStreams 的 TRichEdit.loadFromStream/saveToStream 方法来设置 RTF 内容。但它只对非标准 ASCII 字符使用依赖于语言环境的 ANSI 代码。(4x : \`f5
) 但是如果用户将他/她的项目带到另一台具有不同语言环境的计算机上,我会遇到麻烦。民族特色将消失。EM_STREAMIN/EM_SREAMOUT 消息 SF_UNICODE 标志只能与 SF_TEXT 结合,而不是 SF_RTF。
delphi - 如何滚动到用户在查找对话框中输入的“找到”单词
我对包含 find 对话框的 delphi 表单进行了丰富的编辑。用户输入要找到的单词,程序正确地突出显示“找到”的单词——这很好用。然而,我想要的是让程序滚动,以便找到的单词的第一次出现出现在 Richedit 框中的第一行。如果用户然后单击“下一步”(查找对话框),则滚动继续,以便单词的下一个出现出现在第一行,依此类推。有谁可以帮我离开这里吗?
delphi - 如何在 Delphi 的画布上渲染和缩放 RTF
您好,我需要将格式化文本集成到用 Delphi 编写的旧应用程序中,然后将其渲染到画布中(GDI - 是的史前技术,需要支持 Win Vista 及更高版本)。我尝试使用 html 和 rtf 来完成此任务,但两者各有利弊。我决定使用 rtf 和 TRichEdit 作为编辑器。它具有漂亮的界面,并且很容易编写所需的功能。问题在于渲染(已经解决了该部分)并以合理的图像质量和线性缩放(或几乎线性)对其进行缩放。我已经尝试了两种方法:
- 渲染成位图然后缩放 - 很好的线性缩放,但可怕的像素化图像 - 正如预期的那样
- 通过 TRichEdit 功能进行缩放,然后渲染为位图 - 清晰的图像,但线性缩放消失了。
还有其他方法吗?谢谢。
delphi - TRichEdit - 如何添加具有大小变化的空行?
我有字符串数组,我想在其中一些之间添加一个较小的空行。所以我有一个代码:
并且大小更改适用于第一行(带点),但 test1 和 test2 之间的线与它们(18)的大小相同 =\
有什么建议么?
delphi - 如何使用 Delphi (Xe10) 在 TRichedit 中选择某些表行
我有一个 TjvRichedit 控件,其中包含一个表格,其中一些行/单元格填充了文本。我想选择一些整行(例如行 firstLine 和 firstLine+1)并将它们复制到剪贴板(或流)。我使用下面的代码:
但它从 firstLine 到 firstLine+3 选择(甚至从下一个表中选择行!)。如果我减少长度(例如 SelLength:= 2),它会选择两行!请问我该怎么做我想要的?
delphi - Delphi TRichEdit 页面设置
我有一个定义页面设置的 RTF 文档:
在我的应用程序中,我使用 aTRichEdit
来显示文档。
TRichEdit
有 aTPanel
作为它的,Parent
并且正在使用Align=alClient
and AlignWithMargins=True
。
我将面板设置Width
为16840 * PixelsPerInch/1440
(1123 像素),我看到它等于页面的宽度,如 MSWord 中所示(比例 = 100%)。
将 RichEdit 的值设置Margins
为794 * PixelsPerInch/1440
(53 像素),Width
RichEdit 的值小于它必须的值,或者边距大于它们必须的值(与 MSWord 相比)。
没有边框,没有其他边距,除了我在代码中设置的:
的值paperW
给出了正确的面板宽度(与 MSWord 相比),但 和 的值Lm
给出了Rm
更大的边距,因此 RichEdit 变得更窄。
如何计算正确的边距以使 RichEdit 具有与 MSWord 相同的布局?
这可能会有所帮助。我注意到:
TRichedit
在左侧留出大约 10 像素的空间(在此空间之后开始渲染)。除了 margins.left 之外,是否有可以解决此问题的参数?TRichedit
不会呈现任何比其宽度更宽的表格(MSword 这样做会调整边距)。因此,TRichedit 翻译了其边缘之外的所有内容。
上面的结果是左边距看起来比必须的要宽,如果它是卷绕器,它会截断表格的右侧。
html - 向 TRichEdit 添加真正的超链接支持
我需要支持 TRichEdit 中的“友好名称超链接”,我发现的所有解决方案都基于 autoURLs ( EM_AUTOURLDETECT ),它通过检测用户输入的以 www (或 http) 开头的字符串来工作。
但我想将链接放在不以 www 开头的字符串上。示例:“下载”。
arrays - Delphi TRichEdit 到数组和本地存储
我正在寻找有关如何将 TRichEdit 放入数组并将其保存到本地文件(例如:File.dat)的信息。目标是存储大量文本、描述和它的“名称”。
我想我必须从:
并使用以下内容添加数据:
- 如何创建数组,并使用“名称”对其进行操作(添加、删除...)?
- 如何保存它(数组),并从本地存储轻松加载它?(例如:文件.dat)
我在这里找到了一些信息,但无法使某些东西正常工作。
谢谢你的时间。
[编辑 18/09/2017]
我仍在寻找解决方案,并尝试找到将我的信息保存到本地文件的方法。
我要测试的实际代码是:
因此,希望保存MessageArray,但还没有找到如何做到这一点。我看过SuperObjet,但找不到如何处理它。Omxl 看起来很棒而且很简单,但免费试用...... :(
delphi - TRichEdit 在更改自动换行时添加空白行(任何重新创建属性)
以下是在 Embarcardero RAD Studio 10.2 中找到的。我没有看过其他版本。
如果您TRichEdit
的表单上有一个包含现有文本(超过 1021 个字符),并更改WordWrap
(或任何其他重新创建窗口)属性,则组件有时会在现有文本的中间插入额外的空白行。它似乎取决于 CR/LF 字符的位置。
为了演示该问题,请将以下文本粘贴到Delphi 中窗体Lines
的 a 属性中:TRichEdit
上面示例文本的目的是在您到达最后一行(“x”本身)时有 1024 个字符(计算前几行末尾的 CR/LF)。之后发生的事情并不重要。
现在,在您的 中使用上述文本TRichEdit
,并且仍处于设计模式,切换WordWrap
属性几次。(如果您将表单设置为在运行时执行,也会发生同样的事情。)如果您的 Delphi 和我的一样,最后一行(“x”本身)将开始与前面的行分开作为新行行被插入。
如果您更改第 13 行的长度 - 添加或删除一个字符 - 问题似乎消失了。
我说“似乎消失了”,因为 CR/LF 的 1022/1023 位置不是唯一的敏感位置。我发现了更多(在玩更大的文本时),但并不总是在 1k 边界上(我认为,没有详细研究)。
我发现了问题WordWrap
,但它发生在任何重新创建窗口句柄的属性上(我认为)——当然BorderStyle
也有同样的作用。
有没有其他人看过这个?是否有人可以在 Delphi 10.3 中尝试上述测试以查看它是否已修复,这是否太过分了?
可能唯一可靠的修复(如果 10.3 没有修复它)是避免使用TRichEdit
,或者 - 这是我测试问题的下一步 - 创建和使用插入代码的派生,以在句柄重新创建期间保存和恢复内容。还有其他想法吗?
更新在运行时,只有当PlainText
属性为真时才会出现问题。在设计时,无论该属性是否为真都会发生。