问题标签 [tmemo]

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 回答
155 浏览

user-interface - 在 Lazarus 中为 GUI 组件设置动画时如何避免闪烁

TMemo在我的 GUI 应用程序中左右移动一个对象。问题是,TMemo一旦运动开始,我的字母就会闪烁。

我已经查过了,显然,设置DoubleBuffering我的主窗体的属性应该对我有帮助,但它没有。所以我尝试在所有正在移动的对象上将该属性设置为 true,但仍然存在闪烁。

Lazarus中有没有什么方法可以实现GUI组件的无闪烁动画?我是拉撒路的新手,所以我现在有点盲目地搜索解决方案。我真的很感激一些帮助。

为了提供更多的上下文,这里是我如何为我的动画制作动画TMemo:我有TTimer一个间隔值为 10 的 a,它的OnTimer事件TMemo连续移动我的左右。为了使运动稍微平滑一些,我添加了一个简单的余弦插值函数。

最后是代码:

余弦插值:

0 投票
1 回答
193 浏览

delphi - 如何在 TMemo 中获取文本位置(以像素为单位)?

我想在 TMemo 中获取文本(aWord)的像素位置/位置。我的代码是这样的:

最初它工作正常,但是当我向下滚动备忘录时,我在最后一行收到范围检查错误。

向下滚动时如何获取位置?


官方文档说:

如果字符已滚动到编辑控件的客户区域之外,则返回的坐标可能为负数。坐标被截断为整数值。

我不知道如何解释这个。

0 投票
0 回答
26 浏览

delphi-10-seattle - 在 TMemo 后代中获取屏幕线与 TStrings 线的对应关系

TRichEdit设置样式时会在弹出菜单中造成过多的访问冲突和问题,因此我正在尝试制作一个简单的彩色TMemo后代,其中每一行都Lines可以用自己的颜色作为一个整体进行绘制。

我无法从 Windows 影响编辑控件,但可以在其上绘制字符串。

起初我试图遍历Lines属性,但它导致了滚动问题。所以我决定直接使用 Win API 从编辑控件中查询字符串。

现在除了颜色之外,一切都画得很好:从 Windows 编辑控件请求的行是屏幕行,而不是Lines属性 whenWordWrap := True;ScrollBars := ssVertical;.

如何找出屏幕 ->Lines行号对应关系?

更新

我一直以为TMemo在它的收藏中保留了原始线条Lines,但实际上它Lines只是在添加一个项目后就破坏了它。当自动换行打开时,添加一个非常长的行会将其转换为多个屏幕行。

但!令人惊讶的是,Windowsedit控件内部在控件调整大小时将原始行保持为一个整体。

0 投票
1 回答
409 浏览

firemonkey - 更改 Firemonkey TMemo 组件中选定子字符串后面的背景颜色

我希望通过在子字符串后面绘制黄色背景,以编程方式将焦点设置在(Delphi 10.3.1)Firemonkey TMemo 组件中的特定子字符串上。下面的代码在正确的位置绘制了一个黄色矩形,但该矩形似乎叠加在文本上,从而隐藏了它。是否有一些 TMemo 属性可以用来避免这种情况?如果没有,推荐的修复方法是什么?

提前感谢您的任何建议。

0 投票
1 回答
97 浏览

delphi - Firemonkey 风格的 TMemo 没有获得焦点

我在表单上删除了一个TMemo和一个常规TStyleBookTMemo我通过添加TRectangleto编辑了自定义样式,background因此TMemo现在具有不同的背景颜色,并将TMemo.StyleLookup属性更改为实际StyleName,但在运行时TMemo无法获得焦点。

StyleBook_StyledMemo

我错过了什么?

0 投票
0 回答
140 浏览

android - Firemonkey TMemo OnChangeTracking Android 上的奇怪行为

有没有人有同样的问题,然后在运行时创建 TMemo 触发 OnChangeTracking 只有然后 TMemo 是空的(没有行)并且只针对第一个输入的符号。然后所有的文字都被删除了吗?

如果 TMemo 是在设计时创建的,它就可以正常工作。此行为仅在 Android 上。iOs 和 Winows 都可以。是德尔福的错误,还是有什么我可以修复的?我现在用的是Delphi 10.3 Update 1,不知道10.3.3有没有问题

这是一个小视频: https ://photos.app.goo.gl/NE4Gd9qkMVMKAnoe9

0 投票
1 回答
413 浏览

delphi - 如何禁用 TMemo 的弹出菜单?

我在我的桌面应用程序中使用 Firemonkey TMemo 组件,我希望当用户在 Memo 上单击鼠标右键或长按时,不会弹出默认菜单。

0 投票
1 回答
189 浏览

c++ - 将 Vcl::Controls::TCaption aka (System::UnicodeString) 转换为 const char *

我目前正在使用 C++Builder 创建一个将文本复制到用户剪贴板的应用程序。我已经放置了一个TMemo控件,我想将它包含在一个const char *变量中,如下面的代码所示:

当我编译程序时,它会抛出错误

从 'Vcl::Controls::TCaption'(又名 'System::UnicodeString')到 'const char *' 没有可行的转换

这是将文本复制到剪贴板的代码:

0 投票
2 回答
177 浏览

delphi - 如何找出 tmemo 组件中的字符数?

我想要做的是制作一个按钮,用于获取备忘录中的字符数量并将其输出到标签中

如果这似乎是一个愚蠢的问题,我深表歉意,但我仍在学习 Delphi。

0 投票
0 回答
133 浏览

delphi - 如何在使用 Delphi 进行拼写检查后给单词加下划线

我正在尝试开发具有拼写检查功能的文本编辑器。我可以成功地检测到错误的单词。

许多文本编辑器在这样的错误单词下划线(红色)。

在此处输入图像描述

我怎样才能以这种方式在任何单词下划线?任何 TMemo、TRichEdit 或 TSynEdit 解决方案都是可以接受的。