- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
(如果您能更好地理解和定义我的问题,请有人编辑标题。)
我遇到的问题是 RichEdit 的样式格式“恢复”回默认的“无”又名 []
,然后返回到我设置的任何内容,粗体或斜体示例。
问题所在 - 我认为,因为我不知道它是如何破坏事情的 - 是一个过程(REMainLinesCheck),它检查 RichEdit 中的行数并删除第一行,直到达到某个点(一次最多显示 14 行)如下所示:
while REMain.Lines.Count > 14 do
REMain.Lines.Delete(0);
我在向 RichEdit 添加行的其他过程中出现了 6 次上述过程,但它们都没有更改 RichEdit.SelAttributes.Style
,只有一次,只添加了一个粗体行,如下所示:
REMain.SelAttributes.Style := [fsBold];
REMain.Lines.Add('something');
REMainLinesCheck;
所以我删除了除那一个之外的所有出现,并开始四处寻找,没过多久就发现它实际上工作得很好,正常添加的常规和粗体行以及删除的多余行 - 没有问题。但是,一旦我将 REMainLinesCheck 过程重新引入到另一个过程中(为了清楚起见,我们将其称为 Proc3Lines,因为这就是它的作用:添加 3 行,然后调用对多余行的检查),此 Proc3Lines 后面的每一行都应该是粗体不是...根据我在这里的经验,REMainLinesCheck 似乎在 Proc3Lines 中做了一些事情,因为没有它一切都很好。
显然不是一圈程序互相调用,而是代码的其他部分与这个RichEdit无关,更何况我不改RichEdit.SelAttributes.Style
除了我已经展示的一个地方之外,在 REMain 的任何地方,同一单元中还有另一个 RichEdit,我确实像这样更改了其行的样式,但这不可能以任何方式相关......可以吗? (不,没有,我刚刚检查过。)
基本上:Delphi 到底是什么?它不能比这更简单,而且我仍然失败,有人可以解释和/或解决这个问题吗?提出问题,如果有不清楚的地方,我会尽可能详细地说明。
最佳答案
要将格式应用于新添加的行,请使用以下命令:
procedure TForm1.Button1Click(Sender: TObject);
var
LineIndex: Integer;
begin
LineIndex := RichEdit1.Lines.Add('Something');
RichEdit1.SelStart := RichEdit1.Perform(EM_LINEINDEX, LineIndex, 0);
RichEdit1.SelLength := RichEdit1.Perform(EM_LINELENGTH, RichEdit1.SelStart, 0);
RichEdit1.SelAttributes.Style := [fsBold];
end;
关于delphi - Richedit 样式格式自行更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10645033/
我有一个包含源代码的 TRichEdit 控件。我想设置单行的背景颜色。 我知道如何设置文本 颜色,但是否也可以设置背景颜色?我不是在谈论整个控件的整个背景颜色,我只是在谈论如何更改一行。 我真的必须
我正在将文本从delphi TRichedit 控件输出到打印机。有一个背景图像,所以我使用具有此逻辑的 EM_FORMATRANGE ... myrichedit.Perform(EM_FORMAT
我创建一个新应用程序,放置 TRichedit 并将 PlainText 属性设置为 true。然后,我运行该应用程序并将一些富格式文本粘贴到 RichEdit 中。 我希望它显示为纯文本,但它会显示
添加一行后,我需要将 RichEdit 滚动到最后。我有一个单独的形式的 RichEdit,我根本不想获得焦点。我尝试了经常建议的解决方案: RichEdit.Lines.Add(someText);
(如果您能更好地理解和定义我的问题,请有人编辑标题。) 我遇到的问题是 RichEdit 的样式格式“恢复”回默认的“无”又名 [],然后返回到我设置的任何内容,粗体或斜体示例。 问题所在 - 我认为
RichEdit 控件在成为其他控件的父控件时停止绘制文本。 这是一个功能还是一个错误?是否可以使 RichEdit 成为其他控件的父控件? 查看下一个应用: -- Form1.dfm --- obj
我希望 RichEdit 处理超链接,因此我按照以下说明进行操作:http://delphi.about.com/od/vclusing/l/aa111803a.htm 以下是我对代码所做的更改: i
当我使用多个 RichEdit 控件时,我的行为非常奇怪: LoadLibrary("Msftedit.dll"); RichEdit = CreateWindow("RICHEDIT50W", ""
我想向 RichEdit 控件添加彩色文本行。但我面临的问题是颜色变化不仅限于我选择的文本。我所做的是: 获取当前光标位置 -> 插入文本 -> 获取光标位置 -> 选择范围 -> 为其着色 -> 取
我需要你的帮助!所以,我正在创建一个带有语法高亮器的 RichEdit,我是这样做的: SendMessage(hWin, WM_SETREDRAW, false, 0);
有人知道是否有类似 Memo/RichEdit 的东西吗?需求:对行进行编号,从流中加载大文件(超过 5 MB)。 最佳答案 Developer Express有一套广泛的 VCL 组件,其中包括一个
如何在 RichEdit 中将某一特定行加粗? 最佳答案 丰富的编辑控件中的格式设置如下: 选择要应用格式的文本。 将该格式应用于所选内容。 事情是这样的: RichEdit1.SelStart :=
我有一个 Richedit,允许我的用户格式化和查看我的应用程序中显示的错误消息。 我现在需要能够仅将文本(无格式)导出到他们的故障单系统使用的另一个数据库。 我已经尝试了所有我能想到的纯文本组合,但
我以前从来不需要使用 TRichEdit,一直使用 TMemo。 当我添加 TMemo 等文本时,我希望 RichEdit 自动滚动到末尾。看看添加一些数据后的样子: 如您所见,滚动条保留在顶部,但我
我在计算 Richedit (Delphi XE) 中的字符数时遇到问题。对于每一个新行,我都会多得到两个字符,但在文本中它们不存在。 示例:这里有 15 个字符,但由于换行,richedit 给出了
我试图在 RichEdit 中保存然后恢复垂直滚动位置。 存储滚动位置的全局变量: SI: TScrollInfo; 此代码保存滚动位置: FillChar( SI, SizeOf(SI), #0 )
Delphi 中的大多数 TWinControl 后代都有一个重写方法 CreateParams 来定义它的子类,例如:'EDIT'、'COMBOBOX'、'BUTTON'、'RICHEDIT' 等。
如果您在 Richedit 中加载一些文本,然后单击鼠标左键 + 移动鼠标滚轮,文本将放大或缩小,而不会丢失文本大小格式。 是否有一种简单的方法可以通过几行代码来实现此功能(放大/缩小)? 谢谢 射线
我试图在 RichEdit 中保存然后恢复垂直滚动位置。 存储滚动位置的全局变量: SI: TScrollInfo; 此代码保存滚动位置: FillChar( SI, SizeOf(SI), #0 )
我有一个 TRichEdit。当我选择一些文本并单击另一个元素时,所选文本的选择消失。有没有办法保持这个选择,当 TRichEdit 失去它的焦点时?谢谢! 最佳答案 TRichEdit 有一个属性H
我是一名优秀的程序员,十分优秀!