问题标签 [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 回答
164 浏览

delphi - 如何让Delphi备忘录组件(TMemo、TcxMemo)重新计算换行符?如何防止固定换行?

我正在尝试使用 Delphi (Delphi 2009) TMemo 和 TcxMemo 组件 - 我有 WordWrap=True 和 Scrollbars=[vertical scrollbar] 并且我正在添加 4 个非常长的文本行。备忘录组件自动将这些行包装成多行并创建垂直滚动条。

然后我调整了备忘录组件的大小,例如因为表单变得更大了。坏事是保留了换行,备忘录组件不会重新计算换行,这就是为什么在文本的右侧添加了大空白。

我希望备忘录组件应该重新包装文本,这是直观的。但它不会发生吗?这是错误吗?有财产吗?

只有在设计时添加文本时才会出现此问题。设计时设计者在固定位置包装并保存文本,并且显然将带有原始文本中没有的附加换行符的文本保存在 dfm 中。所以 - 这是某种错误。

0 投票
2 回答
245 浏览

delphi - 获取 FMX TMemo 中的插入符号位置(行和字符)

我尝试在包含两个标签的状态栏中显示备忘录插入符号的位置。

我试过这个:

这两个值似乎代表了备忘录左侧和顶部的实际位置。

是否可以将其作为行(行)和列(字符)?

我想澄清一下,我使用firemonkey是为了能够将我的项目编译到 windows 和 linux 上。

谢谢你的回答。

塞尔蒂奇克。

0 投票
1 回答
107 浏览

delphi - 右键单击 TMemo 控件时如何执行我的自定义操作?

在 Delphi 10.4.2 32 位 VCL 应用程序中,当用户(左或右)单击TMemo控件(处于ReadOnly模式)时,我需要执行不同的操作:

DoAction2包括调用一个特定的对话框。

但是,当我右键单击 Memo 控件时,会TMemo显示控件的本机上下文菜单,并且DoAction2不会执行:

在此处输入图像描述

我尝试使用以下代码停用备忘录控件的右键单击上下文菜单:

但它不起作用:右键单击备忘录控件时仍会显示上下文菜单。

那么如何在右键单击备忘录控件时停用本机上下文菜单并执行我的操作?

0 投票
1 回答
96 浏览

delphi - 如何在 TMemo 中选择文本的第二个副本

TMemo里面有一个 with 文本,例如:

我使用一个简单的函数来选择第一次找到文本的时间

我使用AnsiLowerCase了这样我就可以找到文本而无需适当的大写。

那么,如何才能选择备忘录中第二次出现的“文本”呢?

0 投票
0 回答
41 浏览

user-controls - 修改现有 FMX 控件的正确方法是什么?

我需要修改内置 FMX TMemo 控件的行为。我以前从未这样做过,并且想知道正确的方法是什么。在C:\Program Files (x86)\Embarcadero\Studio\21.0\source\fmx我发现有几个相关文件:

  • C:\Program Files (x86)\Embarcadero\Studio\21.0\source\fmx\FMX.Memo.iOS.pas
  • C:\Program Files (x86)\Embarcadero\Studio\21.0\source\fmx\FMX.Memo.Android.pas
  • C:\Program Files (x86)\Embarcadero\Studio\21.0\source\fmx\FMX.Memo.Win.pas
  • C:\Program Files (x86)\Embarcadero\Studio\21.0\source\fmx\FMX.Memo.Types.pas
  • C:\Program Files (x86)\Embarcadero\Studio\21.0\source\fmx\FMX.Memo.Style.pas
  • C:\Program Files (x86)\Embarcadero\Studio\21.0\source\fmx\FMX.Memo.Style.New.pas
  • C:\Program Files (x86)\Embarcadero\Studio\21.0\source\fmx\FMX.Memo.pas

我应该将它们复制到我当前项目文件夹的根目录并开始编辑它们吗?我应该将TMemo这些文件重命名为其他名称,还是可以只使用TMemo?我还应该怎么做才能让我的应用程序代码识别它们而不是内置的TMemo

顺便说一句,我在 Windows 上使用 Delphi 10.4.2。

0 投票
1 回答
48 浏览

clipboard - 在 C++Builder 中将多个字符串粘贴到 TMemo

我有一个来自 TListView 控件的字符串向量。我想将它们复制到剪贴板,然后将它们粘贴到 TMemo 控件中,这样列表中的每一行都在 TMemo 中的单独一行上。到目前为止,我尝试过的所有内容都粘贴为一行。但是在 TMemo 中复制/粘贴多行就可以了。想法?

谢谢!

0 投票
1 回答
108 浏览

delphi - How to interfere when user presses CTRL+X and still keep TMemo's default CTRL+X behavior?

I have a TMemo on the form and I've set an OnChange event for it. I hope the OnChange event not to be triggered when the user presses Ctrl+X in the memo. But Ctrl+X just cuts the text selection, which will for sure trigger the OnChange event. How can I prevent that?

I've tried to detect Ctrl+X in the KeyUp event, and if the user pressed Ctrl+X I unbind the memo's OnChange event and programmatically cut the text again. But this doesn't work, and I don't how to programmatically send Ctrl+X.