2008-11-18 27 views
5

Tengo una aplicación totalmente compatible con Unicode en Delphi 2006. Reemplacé todas las cadenas AnsiStrings con WideStrings, reemplacé todos los controles VCL con controles TNT y cambié todas las funciones de cadena de AnsiStrings a WideStrings. Parece que todo ese trabajo fue en vano, porque voy a tener que revertirlo todo. ¿Hay alguna forma de que Trick Delphi 2009 piense que las extensiones Widestrings son de hecho UnicodeStrings?Transmitir una aplicación Delphi 2006 unicode a Delphi 2009

+0

Por cierto, no dude en aceptar una respuesta aquí ..... –

Respuesta

13

No, realmente no lo es. Pero no se arrepentirá del trabajo para realmente habilitar Unicode su aplicación.

Los controles TNT se pueden reemplazar fácilmente con los controles normales de VCL. Puede hacerlo simplemente usando el asistente de GExperts (http://www.gexperts.org) que reemplaza un tipo de control con otro automáticamente.

Luego, puede cambiar todas sus declaraciones WideString por cadenas normales. String es ahora un alias para UnicodeString, por lo que todas sus cadenas pueden contener datos Unicode muy bien.

BTW, el autor de los controles de TNT, Troy Wolbrink, ahora prefiere ampliamente Delphi 2009 a sus propios controles.

+1

Y si pudiera decir, que algunos de los mejores recursos que hay para convertir su código a delphi unicode son los documentos escritos por un tipo nombrado nick. Además, hay un libro bastante bueno de Marco Cantú, que cubre la conversión en profundidad. Hay muchas razones, y hay mucho que pagar para permitir que su aplicación vaya a Delphi nativo de Unicode. Lo hice por al menos una docena de aplicaciones principales. –

+0

Bueno, shucks, Warren. :-) –

0

La principal ventaja de TNT Controls es que solo funciona como un programa Ansi en Windows 9x. No es unicode completo. Si desea soporte completo Unicode en todas partes (como Stringlist.LoadFromFile, Form.OnKeyPress), es bueno pasar a Delphi 2009.

+0

Incluso reemplacé listas de cadenas en todas partes con WideStringLists. ¿Los archivos de texto son unicode en Delphi 2009? Reemplacé los archivos de texto con Filestreams. – Steve

+0

Puede cargar texto unicode con la lista de cadenas extensas, pero no puede cargar texto del archivo con un nombre de archivo no ansi, tan simple como lo hizo con los nombres de archivo ansi. – samir105

0

He hecho lo mismo en una aplicación que utilizó diferentes archivos XML como entrada. En mi caso, estaba trabajando con UTF-8 (por lo que podíamos usar cadenas regulares) a lo largo del programa y solo se convirtió a WideString para fines de visualización (controles TNT).

Quité las conversiones entre WideString y UTF-8 y reemplacé los controles TNT con controles VCL normales a mano, ya que solo había un puñado de formularios.

La conversión tomó alrededor de una hora con la prueba. El código es más simple y el programa es notablemente más rápido.

Cuestiones relacionadas