【发布时间】:2012-03-14 14:04:53
【问题描述】:
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,带圆环和变音符
- 字节:57 00 66 03 27 03
- 在 Chrome 17 中渲染:
- 在 Internet Explorer 9 中呈现:
- 使用 Segoe UI 在记事本中呈现:
- 使用 Consolas 在记事本中呈现:
- 在浏览器中以无衬线字体呈现:W̧̊
- 在浏览器中以
monospaced字体呈现:W̧̊
【问题讨论】:
-
这可能会导致从 Delphi 2009 复制源代码作为答案。无论如何都要 +1
-
@TLama:这就是为什么我将它标记为最后一个没有更好的宽字符串支持的 Delphi 版本(让 David 远离我!)
-
Tnt组件套装在
TntSysUtils.pas中有WideWrapText -
我有一个梦想,有一天我会醒来,我的 D5 怪物应用程序会神奇地转变为 XE2...:/
-
@DavidHeffernan 让你安静!就这个问题而言,假装我处于“现代”时代。 :)
标签: delphi localization internationalization delphi-2007