频道分类

Delphi 设置RichEdit的行间距

作者:admin 来源: 日期:2020/11/23 18:55:42 人气: 标签:

 
procedure TForm1.Button3Click(Sender: TObject);
var
  pf: PARAFORMAT2;
begin
  FillChar(pf, sizeof(paraformat2), #0);
  pf.cbSize := SizeOf(paraformat2);
  pf.dwMask := PFM_LINESPACING  ;   //需要设置上 PFM_LINESPACING 标志,bLineSpacingRule和dyLineSpacing才可能有效

//  pf.bLineSpacingRule := 0;   //单倍行距,dyLineSpacing的值将被忽略
//  pf.bLineSpacingRule := 1;   //1.5倍行距,dyLineSpacing的值将被忽略
//  pf.bLineSpacingRule := 2;   //两倍行距,dyLineSpacing的值将被忽略
//  pf.bLineSpacingRule := 3;   //用dyLineSpacing以缇为单位指定行间距,当此值小于单倍行距时,效果为单倍行距
//  pf.bLineSpacingRule := 5;   //用dyLineSpacing/20指定行间距

  pf.bLineSpacingRule := 4;   //用dyLineSpacing以缇为单位指定行间距
  pf.dyLineSpacing := RichEdit1.Font.Size * 20 + 20 * 4; //这是笔者大概计算的,可以根据字体大小调节的,行间最小距离,大字体时可能出现上下行重叠,可以设置为300或者自己计算

  RichEdit1.SelectAll;   //只对选择的文本有效,***重要***
  SendMessage(RichEdit1.Handle, EM_SETPARAFORMAT, 0, LPARAM(@pf));
  RichEdit1.SelStart := 0;
  RichEdit1.SelLength := 0;
end;