Delphi 文字的高度与宽度: Canvas.TextExtent


本文整理自网络,侵删。

 
procedure TForm1.Button1Click(Sender: TObject);
var
  str: string;
  wh: TSize;
  w,h: Integer;
begin
  {前面用过 Canvas.TextWidth、Canvas.TextHeight}
  str := '万';
  w := Canvas.TextWidth(str);
  h := Canvas.TextHeight(str);
  ShowMessage(Format('宽度: %d; 高度: %d', [w,h])); {宽度: 12; 高度: 13}

  {对等宽字体, 多个字符的宽度肯定是倍数关系}
  str := '万一';
  w := Canvas.TextWidth(str);
  h := Canvas.TextHeight(str);
  ShowMessage(Format('宽度: %d; 高度: %d', [w,h])); {宽度: 24; 高度: 13}

  {Canvas.TextExtent 函数可以同时获取字体的高度与宽度, 不过它返回的是一个 TSize 结构}
  wh := Canvas.TextExtent(str);
  w := wh.cx;
  h := wh.cy;
  ShowMessage(Format('宽度: %d; 高度: %d', [w,h])); {宽度: 24; 高度: 13}

  {如果字号改变了, 当然高度与宽度也会随之变化}
  Canvas.Font.Size := 16;
  wh := Canvas.TextExtent(str);
  w := wh.cx;
  h := wh.cy;
  ShowMessage(Format('宽度: %d; 高度: %d', [w,h])); {宽度: 42; 高度: 25}

  {Font.Height 是可读写的}
  Canvas.Font.Height := 32;
  wh := Canvas.TextExtent(str);
  w := wh.cx;
  h := wh.cy;
  ShowMessage(Format('宽度: %d; 高度: %d', [w,h])); {宽度: 52; 高度: 32}
end;

相关阅读 >>

手动创建和部署一个classes.dex 查看更多关于 classes.dex 的文章 文件

Delphi xe6 利用fastmm4检测内存泄漏

Delphi 如何使用通配符删除文件

如何在Delphi中禁用关于“返回值...可能未定义”的警告?

Delphi提示‘error loading midas.dll’的原因及解决方案

Delphi 简单的 "双缓冲" 绘图的例子

Delphi 屏幕取色

Delphi 动态调用chm文件

Delphi 得到ip地址最后一个点后面的值

Delphi webbrowser同时访问两个网址导致程序出错的解决办法

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...