如何减少tRichEdit的行间距

JO *_*Gng 0 delphi

我使用tRichEdit来设置线条颜色.我想像tMemo一样减少行间距.

当我手动输入字母时,行空间自动减少但是当我使用tRichEdit.lines.add时没有任何反应.

如果不可能有替代品吗?

在此输入图像描述

Ken*_*ite 6

您可以通过发送调整行距EM_SETPARAFORMAT通过SendMessage,设置PFM_LINESPACING在dwMask并提供值的dyLineSpacing值(和设定bLineSpacingRule值,以便在RichEdit知道如何解释是前者).下面的代码在TRichEdit(线条实际上彼此略微重叠)中设置了非常紧密的线间距:

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;
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅EM_SETPARAFORMAT的MSDN文档