我需要更改默认页面RichEditorViewer
的字体颜色属性,但我找不到控件名称或属性名称,我需要帮助...
RichEditorViewer
的{{1}}(我需要更改字体颜色):
这是我正在使用的代码:
InfoBeforePage
答案 0 :(得分:1)
您可能正在寻找 InfoBeforeMemo :TRichEditViewer组件,该组件位于页面 InfoBeforePage
此页面(NewNotebookPage)是TWizardForm(TSetupForm)的属性。
我们走了:
TRichEditViewer = class(TMemo)
property RTFText: AnsiString; write;
property UseRichEdit: Boolean; read write;
end;
所以你需要改变属性 RTFText 这是纯粹的AnsiString。
这意味着它是纯文本,没有属性'Font'或类似。 RTF文本是特殊格式的简单文本,如下所示:
{\ rtf1 \ ansi {\ fonttbl \ f0 \ fswiss Helvetica;} \ f0 \ pard这是一些{\ b 粗体}文本。\ par}
因此,如果您需要更改字体,则需要手动解析它 - 例如将 fswiss Helvetica 更改为您想要的字体并将所有内容保存回来。
有关RTF的更多信息,请访问:http://en.wikipedia.org/wiki/Rich_Text_Format
答案 1 :(得分:1)
这是简单的RTF文档,其中包含许多属性更改:
以下是适当的代码:
{\ RTF1 \ ANSI \ ansicpg1250 \ deff0 \ deflang1051 {\ fonttbl {\ F0 \ fnil \ fcharset0 Calibri;} {\ f1 \ fnil \ fcharset0 Times New Roman;}} {\ colortbl ; \ red0 \ green77 \ blue187; \ red255 \ green0 \ blue0;} {* \ generator Msftedit 5.41.21.2510;} \ viewkind4 \ uc1 \ pard \ sa200 \ sl276 \ slmult1 \ lang9 \ f0 \ fs22你好。这是\ cf1蓝色文本\ cf0。 \ cf2这个文字是红色\ cf0。 这是\ i italic \ i0& \ b bold \ b0。\ par \ f1甚至将字体更改为 时间是可能的。 \ fs44此文本为22尺寸。\ f0 \ fs22 \ par \ par \ par}
可以使用标记 \ cfX 更改颜色 \ cf0 ,其中X是您想要的颜色编号。
颜色保存在文档头部的colortbl中(因为RGB值,缺少黑色):
{\colortbl;\red0\green77\blue187;\red255\green0\blue0;}
所以black = cf0,blue = cf1,red = cf2等。
要确定新文本,只需将新文本分配给RTFText变量:
WizardForm.InfoBeforeMemo.RTFText := '{\rtf1\ansi\ansicpg1250\deff0\deflang1051{\fonttbl{\f0\fnil\fcharset0 Calibri;}{\f1\fnil\fcharset0 Times New Roman;}}
{\colortbl ;\red0\green77\blue187;\red255\green0\blue0;}
{\*\generator Msftedit 5.41.21.2510;}\viewkind4\uc1\pard\sa200\sl276\slmult1\lang9\f0\fs22 Hello. This is \cf2 blue text\cf0 . \cf2 And this text is red\cf0 . This is \i italic \i0 & \b bold\b0 .\par
\f1 Even changing font to Times is possible. \fs44 This text is 22 size.\f0\fs22\par
\par
\par
}';
在上面的示例中,我将蓝色文字的颜色更改为红色。