如何确定Tmemo的行距 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我查了一下资料,这样写好象可以,但对字体设为中文时不准确procedure TForm1.Button1Click(Sender: TObject);var TM:TextMetric; Hand:THandle; OldFont:HFont; DC:HDC; RowSpace,tempint:Integer; //tempint为可以显示的行数 Rect:TRect;begin DC:=GetDC(memo1.Handle); //获取设备上下文句柄 Try OldFont:=SelectObject(DC,Memo1.Font.Handle); //设置当前对象 Try GetTextMetrics(DC,TM); Memo.Perform(EM_GETRECT, 0, longint(@Rect)); tempint := (Rect.Bottom - Rect.Top) div (TM.tmHeight + TM.tmExternalLeading); RowSpace:=tm.tmInternalLeading; Finally SelectObject(DC,OldFont); //还原当前对象 end; finally ReleaseDC(Memo1.Handle,DC); //释放HDC end; showmessage(inttostr(RowSpace));end; 中文字似乎可以用tm.tmExternalLeading来取得,所以可以取两者的最大值,不过好象有个别字体得到的都是0,比如Fixedsys。至于这是什么道理我也说不上来。:-)RowSpace:=Max(tm.tmInternalLeading, tm.tmExternalLeading); 包含数字变量的sql查询怎么写 SOS 我错在哪儿了? 连接oracle的ODAC有问题,急需!用过的就进来看看,没有用过的来凑凑热闹! 把一个ACCESS数据库中的表或者视图弄到另一个access数据库这个过程怎么操作? 100分求《奇思异想编程序 delphi篇》一书!得到即给分!!!!万谢!!!1 兄弟们,帮帮忙呀 请赐教! 急求delphi如何控制两个MeidaPlayer播放wav文件声音大小? 在线等待! 提醒各位老驴,拿个"吉"字可以制作护身符,感兴趣进来看 关于压缩问题! 请问高手如何在DBGrid控件中灰化显示一条记录,在线等待!!! 谁不看就后悔
procedure TForm1.Button1Click(Sender: TObject);
var
TM:TextMetric;
Hand:THandle;
OldFont:HFont;
DC:HDC;
RowSpace,tempint:Integer; //tempint为可以显示的行数
Rect:TRect;
begin
DC:=GetDC(memo1.Handle); //获取设备上下文句柄
Try
OldFont:=SelectObject(DC,Memo1.Font.Handle); //设置当前对象
Try
GetTextMetrics(DC,TM);
Memo.Perform(EM_GETRECT, 0, longint(@Rect));
tempint := (Rect.Bottom - Rect.Top) div (TM.tmHeight +
TM.tmExternalLeading);
RowSpace:=tm.tmInternalLeading;
Finally
SelectObject(DC,OldFont); //还原当前对象
end;
finally
ReleaseDC(Memo1.Handle,DC); //释放HDC
end;
showmessage(inttostr(RowSpace));
end;
所以可以取两者的最大值,不过好象有个别字体得到的都是0,比如Fixedsys。
至于这是什么道理我也说不上来。:-)
RowSpace:=Max(tm.tmInternalLeading, tm.tmExternalLeading);