我使用tRichEdit设置线条颜色。我想像tMemo那样减少行间距。
当我手动输入字母时,行空间自动减少,但是当我使用tRichEdit.lines.add时没有任何反应。
如果不可能有替代品吗?
答案 0 :(得分:6)
您可以通过EM_SETPARAFORMAT
SendMessage
发送PFM_LINESPACING
,dwMask
设置dyLineSpacing
并提供bLineSpacingRule
值(和设置值)来调整行间距TRichEdit
值,以便RichEdit知道如何解释前者。下面的代码在procedure TForm1.FormCreate(Sender: TObject);
var
Para: TParaFormat2;
begin
Para.cbSize := SizeOf(Para);
Para.dwMask := PFM_LINESPACING;
Para.bLineSpacingRule := 4; // Use exact twips specified
Para.dyLineSpacing := 120; // Ridiculously small value
SendMessage(RichEdit1.Handle, EM_SETPARAFORMAT, 0, LPARAM(@Para));
end;
中设置了非常紧密的行间距(这些行实际上彼此略微重叠):
{{1}}
有关详细信息,请参阅EM_SETPARAFORMAT
的MSDN文档