Migrar Delphi 2007 a 10.1 Berlin
Hola a todos
No tengo mucha experiencia en Delphi, pero me han encargado migrar una aplicación que está en Delphi 2007 a la última versión 10.1 Berlin. ¿Alguien podría decirme si existe alguna utilidad o herramienta que facilite dicha migración? Por el momento he intentado realizarla de manera artesanal, pero me encuentro con un montón de errores, algunos de ellos no sé muy bien por qué se producen. Muchas gracias por adelantado por vuestra ayuda. Un saludo |
No debería dar ningún error, si tienes instalado los componentes que se utilizan.
|
Cita:
Lo primero es que instales todos los componentes externos que tienes en la versión 2007 en la nueva. A partir de ahí es posible que sí salga algún error, pero hay que tratarlos de forma específica. Por ejemplo, es posible que algún componente haya cambiado en sus propiedades o métodos (me refiero a los externos). Es posible que alguna función de Delphi haya quedado obsoleta, deberás cambiarlas por las nuevas. Cita:
Deberías ir colocando el texto de los errores y te podemos indicar a qué se refieren o cómo solucionarlos. |
Cita:
Muchas gracias por vuestras respuestas. En principio tengo instalado lo mismo que tenía en la aplicación de 2007, Delphi y Report Builder. De hecho, el proyecto que estoy tratando de compilar contiene unos componentes desarrollados internamente, que los utiliza la aplicación que tendré que migrar. Adjunto un detalle de los errores que tengo: c:\program files (x86)\embarcadero\studio\18.0\bin\dcc32.exe -$J+ -$D1 --no-config -M -Q -Z -TX.bpl -AGenerics.Collections=System.Generics.Collections;Generics.Defaults=System.Generics.Defaults;WinType s=Winapi.Windows;WinProcs=Winapi.Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE -I"c:\program files (x86)\embarcadero\studio\18.0\lib\Win32\release";C:\Users\Cibernos\Documents\Embarcadero\Studio\18.0 \Imports;"c:\program files (x86)\embarcadero\studio\18.0\Imports";C:\Users\Public\Documents\Embarcadero\Studio\18.0\Dcp;"c:\pro gram files (x86)\embarcadero\studio\18.0\include";"c:\program files (x86)\embarcadero\studio\18.0\RBuilder\Lib\Win32" -LEC:\Users\Public\Documents\Embarcadero\Studio\18.0\Bpl -LNC:\Users\Public\Documents\Embarcadero\Studio\18.0\Dcp -NSData.Win;Web.Win;Soap.Win;Xml.Win;Bde;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;D ata;Datasnap;Web;Soap;Winapi;Datasnap.Win;System.Win; -O"c:\program files (x86)\embarcadero\studio\18.0\lib\Win32\release";C:\Users\Cibernos\Documents\Embarcadero\Studio\18.0 \Imports;"c:\program files (x86)\embarcadero\studio\18.0\Imports";C:\Users\Public\Documents\Embarcadero\Studio\18.0\Dcp;"c:\pro gram files (x86)\embarcadero\studio\18.0\include";"c:\program files (x86)\embarcadero\studio\18.0\RBuilder\Lib\Win32" -R"c:\program files (x86)\embarcadero\studio\18.0\lib\Win32\release";C:\Users\Cibernos\Documents\Embarcadero\Studio\18.0 \Imports;"c:\program files (x86)\embarcadero\studio\18.0\Imports";C:\Users\Public\Documents\Embarcadero\Studio\18.0\Dcp;"c:\pro gram files (x86)\embarcadero\studio\18.0\include";"c:\program files (x86)\embarcadero\studio\18.0\RBuilder\Lib\Win32" -U"c:\program files (x86)\embarcadero\studio\18.0\lib\Win32\release";C:\Users\Cibernos\Documents\Embarcadero\Studio\18.0 \Imports;"c:\program files (x86)\embarcadero\studio\18.0\Imports";C:\Users\Public\Documents\Embarcadero\Studio\18.0\Dcp;"c:\pro gram files (x86)\embarcadero\studio\18.0\include";"c:\program files (x86)\embarcadero\studio\18.0\RBuilder\Lib\Win32" -K00400000 --description:"Citi Editors" -NBC:\Users\Public\Documents\Embarcadero\Studio\18.0\Dcp -NHC:\Users\Public\Documents\Embarcadero\Studio\18.0\hpp\Win32 CitiEditors.dpk ...\CitiEditors\CitiPatterns.pas(8,29): warning W1050: W1050 WideChar reduced to byte char in set expressions. Consider using 'CharInSet' function in 'SysUtils' unit. ...\CitiEditors\CitiPatterns.pas(109,57): warning W1050: W1050 WideChar reduced to byte char in set expressions. Consider using 'CharInSet' function in 'SysUtils' unit. ...\CitiEditors\CitiPatterns.pas(193,26): error E2010: E2010 Incompatible types: 'AnsiChar' and 'Char' ...\CitiEditors\CitiPatterns.pas(218,19): error E2003: E2003 Undeclared identifier: 'DateSeparator' ...\CitiEditors\CitiPatterns.pas(218,64): error E2010: E2010 Incompatible types: 'string' and 'Integer' ...\CitiEditors\CitiPatterns.pas(232,23): error E2003: E2003 Undeclared identifier: 'TimeSeparator' ...\CitiEditors\CitiPatterns.pas(232,37): warning W1058: W1058 Implicit string cast with potential data loss from 'string' to 'ShortString' ...\CitiEditors\CitiPatterns.pas(235,30): warning W1058: W1058 Implicit string cast with potential data loss from 'string' to 'ShortString' ...\CitiEditors\CitiPatterns.pas(238,36): warning W1058: W1058 Implicit string cast with potential data loss from 'string' to 'ShortString' ...\CitiEditors\CitiPatterns.pas(261,11): error E2003: E2003 Undeclared identifier: 'DecimalSeparator' ...\CitiEditors\CitiPatterns.pas(319,42): warning W1050: W1050 WideChar reduced to byte char in set expressions. Consider using 'CharInSet' function in 'SysUtils' unit. ...\CitiEditors\CitiPatterns.pas(381,48): warning W1050: W1050 WideChar reduced to byte char in set expressions. Consider using 'CharInSet' function in 'SysUtils' unit. ...\CitiEditors\CitiPatterns.pas(401,30): error E2010: E2010 Incompatible types: 'AnsiChar' and 'Char' ...\CitiEditors\CitiPatterns.pas(403,29): error E2010: E2010 Incompatible types: 'AnsiChar' and 'Char' ...\CitiEditors\CitiEdit.pas(7,35): error F2063: F2063 Could not compile used unit 'CitiPatterns.pas' |
Parece que la primera unit que te está dando problemas es esta: ...\CitiEditors\CitiPatterns.pas
¿A qué componente o paquete pertenece? No es estandard de Delphi. ¿Los has instalado correctamente? ¿Al instalarlos no te han dado problemas? |
Hola
Efectivamente, no es un paquete standard. El módulo CitiPatterns.pas es el que estoy intentando compilar (el proyecto contiene otros módulos, pero parece que sólo éste genera errores y advertencias). Una vez compilado, debo proceder a instalarlo. Adjunto el código, por si aporta algo de información. Muchas gracias.
|
Bienvenido a clubdelphi, como siempre aconsejamos a los nuevos, no olvides leer nuestra guía de estilo, gracias por tu colaboración :)
Recuerda poner los tags al código fuente, ejemplo: Gracias :) |
¿Esos componentes no tienen versión actualizada?
|
No, es un componente desarrollado por el equipo que diseñó la aplicación, y es el componente lo que estoy intentando compilar en la versión 10.1 y que me está generando estos errores.
Muchas gracias. |
Entonces en este caso, tendrás que hacer la traducción.
Deja a un lado el EXE e intenta eliminar los Hints y Warnings de este fichero cuando lo compilas/Instalas. Código:
...\CitiEditors\CitiPatterns.pas(8,29): warning W1050: W1050 WideChar reduced to byte char in set expressions. Consider using 'CharInSet' function in 'SysUtils' unit. Código:
...\CitiEditors\CitiPatterns.pas(193,26): error E2010: E2010 Incompatible types: 'AnsiChar' and 'Char' Código:
...\CitiEditors\CitiPatterns.pas(218,19): error E2003: E2003 Undeclared identifier: 'DateSeparator'
Código:
...\CitiEditors\CitiPatterns.pas(232,23): error E2003: E2003 Undeclared identifier: 'TimeSeparator' |
Muchas gracias. Intentaré hacerlo así, a ver qué consigo.
Un saludo |
A medida que vayas resolviendo, ves colocando los que te van quedando...
|
Hola, me parece que Embarcadero renovó la página para apoyar en la migración de aplicaciones desde versiones anteriores, probablemente te ayude la información que publicaron:
https://www.embarcadero.com/es/rad-i...upgrade-center Saludos. |
^\||/^\||/^\||/
No conocía ese link. |
Muchas gracias por el enlace. Creo que me será útil, porque ya he solucionado algunos errores y ahora se me presenta uno relacionado con el BDE (DBTables). Por lo que he visto en este enlace y buscando por Internet, el BDE está ya obsoleto y creo que en el enlace de Embarcadero da algunas nociones sobre cómo migrar a FireDAC.
Muchas gracias a todos de nuevo. |
Buenas de nuevo
Sigo trabajando en la migración de mi aplicación, y tengo un problema que llevo unos días intentando resolver y no consigo hacerlo: "[dcc32 Fatal Error] Functions_Ado.pas(7): F2613 Unit 'DBTables' not found." Como comenté en la respuesta anterior, he visto que el BDE de Delphi ha quedado obsoleto, pero no sé cómo sustituirlo por algún componente nuevo. He leído por ahí que aun es posible descargar el BDE para Delphi 10.1, pero hace falta ser un usuario registrado para poder descargarlo. La licencia que voy a usar está en proceso de gestión, por lo que no puedo descargarlo hasta que la tenga, y además, me gustaría migrar la aplicación sustituyendo los componentes obsoletos por los más actualizados. ¿Podéis orientarme sobre cómo hacerlo? Muchas gracias por adelantado. Un saludo |
Si buscas sobre "Migrate BDE FireDAC" encontrarás bastantes links al respecto. Hay alguna utilidad de Embarcadero que te ayuda a hacerlo y alguna comercial que promete hacerlo de forma automática (aunque no las he probado).
Revisa los links. Todo dependerá del tamaño de tu aplicación y del uso que hagas de los componentes. Lo que sí parece recomendable es que sustituyas el BDE . http://docwiki.embarcadero.com/RADSt...ons_to_FireDAC https://community.embarcadero.com/bl...th-delphi-10-1 https://www.youtube.com/watch?v=_ttdy9_2rWo ... |
Buenas
Efectivamente, viendo por ahí había encontrado una equivalencia entre los nombres (variables, módulos, etc.) entre BDE y FireDAC. Sigo avanzando. Muchas gracias de nuevo. |
Buenos días
Después de intentar seguir con la migración, al abrir una de las aplicaciones que pretendo migrar, el IDE se queda colgado ("not responding") y no consigue terminar de abrirla. He dejado el equipo incluso 24 horas intentando abrirla sin ningún resultado. ¿A alguien le ha sucedido alguna vez? ¿Sabéis por qué puede estar pasando esto? Muchas gracias por adelantado. |
Crea un proyecto nuevo y ves añadiendo los formularios uno a uno del proyecto original.
A ver si detectas si el problema es de alguno concreto o del proyecto en sí. |
La franja horaria es GMT +2. Ahora son las 17:26:00. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi