delphi 字符串(包含中英文、数字、符号)的对齐  
官方Delphi 学习QQ群: 682628230(三千人)
频道

delphi 字符串(包含中英文、数字、符号)的对齐


我们知道,当字符串中包含中英文、数字、符号时,两行文本即使个数相同,也未必能对齐。UI 看着很不舒服。
写了个对齐函数,让字符串都定长,就对齐了。

{ 获取字符串宽度;包含中英文、数字等 }
function GetStringWidth(const strValue: string; const font: TFont): Integer;
var
 DC      : HDC;
 hSavFont: HFont;
 Size    : TSize;
begin
 DC       := GetDC(0);
 hSavFont := SelectObject(DC, font.Handle);
 GetTextExtentPoint32(DC, PChar(strValue), length(strValue), Size);
 SelectObject(DC, hSavFont);
 ReleaseDC(0, DC);
 Result := Size.cx;
end;

{ 对齐字符串;即固定长度 }
function AlignStringWidth(const strValue: string; const font: TFont; const intMaxLen: Integer = 200): String;
var
 intLen: Integer;
begin
 Result := strValue;
 intLen := GetStringWidth(strValue, font);
 if intLen >= intMaxLen then
   Exit;

 while true do
 begin
   Result := Result + ' ';
   if GetStringWidth(Result, font) >= intMaxLen then
     Break;
 end;
end;


记录一下。
————————————————
版权声明:本文为CSDN博主「dbyoung」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dbyoung/article/details/112556389


推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.040300130844116 seconds