Delphi中用于WideString的WrapText

时间:2012-03-14 14:04:53

标签: delphi localization internationalization delphi-2007

Delphi有一个WrapText函数:

function WrapText(const Line, BreakStr: string; const BreakChars: TSysCharSet; MaxCol: Integer): string;
function WrapText(const Line: string; MaxCol: Integer): string;

现在我需要一个处理WideStrings的版本:

function WrapTextW(const Line: WideString; MaxCol: Integer): WideString;

是否已在某处写过这样的函数?

  

警告:并非每个宽字符串字符都是2字节

     

这就是为什么我害怕写它

更新:占用超过2个字节的字符示例:

  

资本拉丁语W与ring和cedilla

     
      
  • 字节:57 00 66 03 27 03
  •   
  • 在Chrome 17中呈现:enter image description here
  •   
  • 在Internet Explorer 9中呈现:enter image description here
  •   
  • 使用Segoe UI在记事本中呈现:enter image description here
  •   
  • 使用Consolas在记事本中呈现:enter image description here
  •   
  • 在浏览器中以sans-serif字体呈现:W̧̊
  •   
  • 在浏览器中以monospaced字体:W̧̊
  • 呈现   

1 个答案:

答案 0 :(得分:3)

正如kobik所述,TNT UnicodeControls有一个单位TntSysUtils,其中包含以下功能:

function WideWrapText(const Line, BreakStr: WideString; const BreakChars: TSysCharSet;
  MaxCol: Integer): WideString; overload;
function WideWrapText(const Line: WideString; MaxCol: Integer): WideString; overload;

备用下载网站为here