Inno Setup,如何更改RichEditorView的颜色

时间:2013-04-16 20:21:12

标签: inno-setup pascal pascalscript

我需要更改默认页面RichEditorViewer的字体颜色属性,但我找不到控件名称或属性名称,我需要帮助...

RichEditorViewer的{​​{1}}(我需要更改字体颜色):

Setup screenshot

这是我正在使用的代码:

InfoBeforePage

2 个答案:

答案 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
}';

在上面的示例中,我将蓝色文字的颜色更改为红色。