急急如律令 各位大侠:如何在RichEdit中实现文本行距设置? 如有第三方控件,请给出下载地址,不胜感激!!![email protected] 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 set the paragraph line spacing in a TRichedit? uses RichEdit; procedure RE_SetLineSpacing(ARichEdit: TRichEdit; lineSpacing: Byte); var pf2: ParaFormat2; begin FillChar(pf2, SizeOf(pf2), 0); pf2.cbSize := SizeOf(PARAFORMAT2); pf2.dwMask := PFM_LINESPACING; pf2.bLineSpacingRule := lineSpacing; SendMessage(ARichEdit.Handle, EM_SETPARAFORMAT, 0, Longint(@pf2)); end; //Example: Setlinespacing to 1: procedure TForm1.Button1Click(Sender: TObject); begin RE_SetLineSpacing(RichEdit1, 1); end; aiirii(ari-爱的眼睛) 的方法就可以啊 procedure TForm1.RE_SetLineSpacing(ARichEdit: TRichEdit; lineSpacing,SpacingRule: Byte);var pf2: ParaFormat2;begin FillChar(pf2, SizeOf(pf2), 0); pf2.cbSize := SizeOf(PARAFORMAT2); pf2.dwMask := PFM_LINESPACING; pf2.dyLineSpacing := lineSpacing; pf2.bLineSpacingRule:=SpacingRule; SendMessage(ARichEdit.Handle, EM_SETPARAFORMAT, 0, Longint(@pf2)); end; pf2.bLineSpacingRule:=5;pf2.dyLineSpacing设置成20以上就一定有变化了其中bLineSpacingRule=0为单倍行距,1为1.5倍行距,2为双倍行距,5为多倍行距,此三种设置中再设置dyLineSpacing无效,设置bLineSpacingRule=5时,设置dyLineSpacing变化最为明显。另外,需要再richedit2.0以上才有效啊具体使用还是用我上述方法,一定可以的 aiirii的方法是可以的~~procedure TForm1.Button1Click(Sender: TObject); begin RichEdit1.SelectAll; //需要选中~~ RE_SetLineSpacing(RichEdit1, 1); end; 借楼顶的帖子,问一个RichEdit的问题:用流载入到RichEdit的内容如果很大,显示就有延迟,就像死机一样,请问如何知道RichEdit已经载入的多少字节的内容,我好显示读取进度??? aiirii(ari-爱的眼睛) 的方法试过了可我总是设置行间距都没有反应 我再测试了下, 是可以的,但改变不是很好控制你在form中加个 edit1, 用上面的代码试验下:procedure TForm1.Button1Click(Sender: TObject);begin RichEdit1.SelectAll; //需要选中~~ RE_SetLineSpacing(RichEdit1,strtointdef(edit1.Text, 1));end;1, 2, 3 比较明显 上面我提供的方法可以使得行间据尽心微调的。大家可以试一试。而只调节bLineSpacingRule只能实现单倍、1.5倍,双倍行距意义不大 aiirii(ari-爱的眼睛)能留下你的联系方式吗?我有问题想探讨一下 给位老大,现在又出问题了。我用的市dbrichedit 如果用上面的代码的话就会报数据库不在edit 和insert状态。如果换成richedit就会显示出全选的效果,很难看, 用了很多办法 如将 焦点转移 等等,给位有什么好方法解决吗! 麻烦大家帮我想想办法,分不够可以再加! 有劳了!!:) //屏蔽全选的效果~~RichEdit.Perform(EM_HIDESELECTION,1,0); try { TODO }finally RichEdit.Perform(EM_HIDESELECTION,0,0);end;//行距的修改属于内容的修改,所以TDataSet只读的情况是不能修改的~~ Exe文件的输出函数的利用 一人简单的问题 DLL的问题,在线等候,急急急 一个非常棘手的问题? 请教各位大侠:如何动态获取表中各个字段的描述信息? 去一家新的公司做系统分析,请大家帮忙,先散分了 急!!Delphi怎么调用dll中的函数?一定加分 paradox表格输入问题(急!急!急!!!!!!!!!!!) 请问怎么能将BDE登陆过后保存的密码清除掉? 请问那位高手一个关于Excell的问题。 在调试过程中,如何跳过诸如ONPAINT或TIMER的事件! 简单,这是错误如何解决,在线等
RichEdit; procedure RE_SetLineSpacing(ARichEdit: TRichEdit; lineSpacing: Byte);
var
pf2: ParaFormat2;
begin
FillChar(pf2, SizeOf(pf2), 0);
pf2.cbSize := SizeOf(PARAFORMAT2);
pf2.dwMask := PFM_LINESPACING;
pf2.bLineSpacingRule := lineSpacing;
SendMessage(ARichEdit.Handle, EM_SETPARAFORMAT, 0, Longint(@pf2));
end; //Example: Setlinespacing to 1:
procedure TForm1.Button1Click(Sender: TObject);
begin
RE_SetLineSpacing(RichEdit1, 1);
end;
lineSpacing,SpacingRule: Byte);
var
pf2: ParaFormat2;
begin
FillChar(pf2, SizeOf(pf2), 0);
pf2.cbSize := SizeOf(PARAFORMAT2);
pf2.dwMask := PFM_LINESPACING;
pf2.dyLineSpacing := lineSpacing;
pf2.bLineSpacingRule:=SpacingRule;
SendMessage(ARichEdit.Handle, EM_SETPARAFORMAT, 0, Longint(@pf2));
end;
pf2.dyLineSpacing设置成20以上就一定有变化了
其中bLineSpacingRule=0为单倍行距,1为1.5倍行距,2为双倍行距,5为多倍行距,此三种设置中再设置dyLineSpacing无效,设置bLineSpacingRule=5时,设置dyLineSpacing变化最为明显。另外,需要再richedit2.0以上才有效啊
具体使用还是用我上述方法,一定可以的
begin
RichEdit1.SelectAll; //需要选中~~
RE_SetLineSpacing(RichEdit1, 1);
end;
用流载入到RichEdit的内容如果很大,显示就有延迟,就像死机一样,请问如何知道RichEdit已经载入的多少字节的内容,我好显示读取进度???
可我总是设置行间距都没有反应
你在form中加个 edit1, 用上面的代码试验下:procedure TForm1.Button1Click(Sender: TObject);
begin
RichEdit1.SelectAll; //需要选中~~
RE_SetLineSpacing(RichEdit1,strtointdef(edit1.Text, 1));
end;1, 2, 3 比较明显
而只调节bLineSpacingRule只能实现单倍、1.5倍,双倍行距意义不大
RichEdit.Perform(EM_HIDESELECTION,1,0);
try
{ TODO }
finally
RichEdit.Perform(EM_HIDESELECTION,0,0);
end;//行距的修改属于内容的修改,所以TDataSet只读的情况是不能修改的~~