memo宽度是定值,怎么计算Memo的高度? memo宽度是定值,怎么计算Memo的高度?使得Memo在不用滚动条的情况下显示所有字符。wordwrap 为true. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 加载后用Memo1.Height := Memo1.Lines.Count * 14;试一下,好象效果不是太好 那得計算一下不同字體下的字符會占用多少memo的寬度和高度 weizi2000(秋风啊) 这样不行呀,还有字体大小呢,不可以是固定值。 Memo1.Height := Memo1.Lines.Count * round(Memo1.Font.Size * Memo1.Font.PixelsPerInch / 50 ); SendMessage(Memo.Handle, EM_GETPARAFORMAT, 0, Longint(@pf2));看能不能得到 procedure TForm1.Button1Click(Sender: TObject);var vControlCanvas: TControlCanvas;begin vControlCanvas := TControlCanvas.Create; try vControlCanvas.Control := Memo1; vControlCanvas.Font.Assign(Memo1.Font); Memo1.ClientHeight := vControlCanvas.TextHeight('|') * (Memo1.Lines.Count + Ord(Copy(Memo1.Lines.Text, Length(Memo1.Lines.Text), 1) = #10)) + 3; Caption := IntToStr(vControlCanvas.TextHeight('|')); finally vControlCanvas.Free; end;end; 哈,这个是我以前做过的模仿Windows Paint中的写字的那种效果,可惜放在家里了,又懒得去重写了。不过道理是一样的,得到每一行字体的高度,再乘以Memo.Lines.count,得到一个值,再把Memo的高设为这个值就可以了。 aiirii(ari-爱的眼睛)的方法很短,只是没写pf2是什么意思,因此我没办法试验。希望知道pf2是什么意思。zswang(伴水清清)(专家门诊清洁工) 能很好的解决问题,只是QStdCtrls文件中的TMemo不能解决,稍微修改一下即可。谢谢。 请教关于函数内部的资源的释放。 关于com的问题 木马 delphi 中运用 sql语句,想要将两个库的不同记录选出来,怎么办?? 进来看看 斑竹请将反日帖子置顶!!! [斑竹勿删]--非常感谢CSDN的各位朋友,本人的产品(邮件服务器)在研发过程中得到各位的大力支持,多谢大家! 一个小问题:如何将 rtf 格式的文件转成 .doc 的格式? indy控件中怎么给邮件添加附件(!!!!) 关于检测串口是否打开的问题 如何在IE中显示一个窗体D6 送分 再次联合对日本进行最强攻击 关于INDY TCP client (客户端)和server(服务端)控件的问题。
这样不行呀,还有字体大小呢,不可以是固定值。
看能不能得到
var
vControlCanvas: TControlCanvas;
begin
vControlCanvas := TControlCanvas.Create;
try
vControlCanvas.Control := Memo1;
vControlCanvas.Font.Assign(Memo1.Font);
Memo1.ClientHeight := vControlCanvas.TextHeight('|') *
(Memo1.Lines.Count +
Ord(Copy(Memo1.Lines.Text, Length(Memo1.Lines.Text), 1) = #10)) + 3;
Caption := IntToStr(vControlCanvas.TextHeight('|'));
finally
vControlCanvas.Free;
end;
end;
不过道理是一样的,得到每一行字体的高度,再乘以Memo.Lines.count,得到一个值,
再把Memo的高设为这个值就可以了。