2012-03-14 5 views
7

Delphi tiene una función WrapText:wrapText para WideString en Delphi

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

Ahora necesito una versión que maneja WideStrings:

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

existe tal función escrita en algún lugar ya?

ADVERTENCIA: No todas cadena de caracteres de ancho es de 2 bytes

por lo que me temo que escribirlo

actualización: Ejemplo de un personaje que lleva más de 2 -bytes para representar:

capital América W con el anillo y cedilla

  • Bytes: 57 00 66 03 27 03
  • dictada en Chrome 17: enter image description here
  • rendida en Internet Explorer 9: enter image description here
  • rendida en Bloc de notas usando Segoe UI: enter image description here
  • dictada en Bloc de notas usando Consolas : enter image description here
  • rendida en su navegador en fuente sans serif: w
  • rendida en su navegador en monospaced fuente: W̧̊
+2

Esto conducirá probablemente a copiar la fuente del Delphi 2009 como la respuesta. +1 de todos modos – TLama

+5

@TLama: Es por eso que lo etiqueté como la última versión de Delphi que no tenía mejor soporte de banda ancha (para mantener a David alejado de mi!) –

+4

El traje de componente Tnt tiene 'WideWrapText' en' TntSysUtils.pas' – kobik

Respuesta

3

Como se ha mencionado por KOBIK, TNT UnicodeControls tiene una unidad TntSysUtils que incluye la siguiente función:

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

sitio de descarga alternativo es here.