Ir al contenido


Foto

Convertir proyecto delphi en proyecto lazarus


  • Por favor identifícate para responder
9 respuestas en este tema

#1 Dmanth

Dmanth

    Member

  • Miembros
  • PipPip
  • 37 mensajes

Escrito 15 mayo 2010 - 08:55

Basicamente eso, alguno de ustedes a intentado convertir algun programa hecho en delphi a lazarus, ¿les a funcionado? porque si logro convertir varios programas que tengo en delphi se me haria mas facil estudiarlos...

se que se le da herramientas --> convertir proyecto delphi a proyecto lazarus pero hay exepciones... me explico, que pasa con los iconos y los sonidos, y el remplazo del codigo es completamente efectivo o tiene errores?

Si alguien tiene informacion al respecto, de como se logra, compartala por aqui, saludos...  (b)
  • 0

#2 Dmanth

Dmanth

    Member

  • Miembros
  • PipPip
  • 37 mensajes

Escrito 15 mayo 2010 - 09:05

Aqui encontre lo basico: http://wiki.lazarus....ersion_Guide/es

se acabaron los problemas muchachos todos los que quieran aprender lean codigo de lazarus proveniente de delphi siempre y cuando la conversion sea exitosa...

suerte  8o|
  • 0

#3 donaldsimoda

donaldsimoda

    Member

  • Miembros
  • PipPip
  • 10 mensajes
  • LocationSan Isidro - Argentina

Escrito 15 mayo 2010 - 09:23

Ojo que el wiki esta desactualizado... El lunes veo de aclarar las diferencias, por ejemplo ya no es necesario generar archivos *.lrs.

Por cierto, buenas, estuve desaparecido mucho tiempo. ;)
  • 0

#4 Héctor Randolph

Héctor Randolph

    501st Legion

  • Moderadores
  • PipPipPip
  • 664 mensajes
  • LocationMéxico

Escrito 15 mayo 2010 - 09:35

Hola Donald

Es un gusto verte por este foro. Que bueno verte participando. (y)

Saludos
  • 0

#5 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 15 mayo 2010 - 09:43

Ojo que el wiki esta desactualizado... El lunes veo de aclarar las diferencias, por ejemplo ya no es necesario generar archivos *.lrs.

Por cierto, buenas, estuve desaparecido mucho tiempo. ;)


Bienvenido a DelphiAccess Donald, espero que te sientas a gusto por aquí. (y)

Salud OS

  • 0

#6 luk2009

luk2009

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.040 mensajes
  • LocationSanto Domingo

Escrito 15 mayo 2010 - 12:05

Delphi Converter
The converter has improved during past few months. The main focus has been in Delphi project conversion. Delphi package conversion should get most of the same improvements automatically but it is not tested much.

I think Delphi converter is a very important piece of Lazarus because new people coming from Delphi often want to try it. They get their first impression of Lazarus from it.
When I started to learn Lazarus last year, it was one of the first things to test. Then it failed to convert most projects. Its quality was not equal to the rest of Lazarus.

On February 2010 I got write access to SVN trunk converter directory. I made the converter code more object oriented. Using object member variables instead of function parameters made it easier to extend the code later. I refactored the code heavily, actually more than really necessary, partly to organize it better and partly to learn what it does.

The initial dialog shows there are three possible targets for the conversion:
* "Lazarus/LCL" -- One way conversion.
* "Lazarus/LCL for Windows only" -- Does not remove or convert windows specific unit names.
* "Both Lazarus/LCL and Delphi" -- Tries to maintain the code compatible with both Delphi and Lazarus using conditional compilation.

Imagen Enviada





Source file conversion

Initially the main goal was to reduce messageboxes and other notifications. Converting a big Delphi project was not realistic because there were so many messages. Now useless questions are removed and notifications go to IDE messagewindow.

Imagen Enviada

Earlier it was possible to comment out not-found unit names in USES section. Now that is extended. The user can either comment them out or search for a unit path during conversion. If the units are found, their path is added to project settings. If user chooses to comment them out, the same units are then commented automatically in following source files.

Used unit names can also be replaced by other unit names. Regular expression syntax for replacement is supported.


Form file conversion


The other big part of conversion is the DFM form file conversion. Some properties of Delphi components do not exist in the equivalent LCL components. They can be deleted, either automatically or interactively.
A bigger problem are Delphi components which don't exist in LCL at all. It is important to replace them with a "fall-back" LCL component, especially if they are containers and have more components inside them.
Now the components can be replaced and regular expression syntax is supported, just like for unit name replacement.
Imagen Enviada


Issues

The converter is not ready yet. These are some issues and problems I must solve.

Replacement names for both units and components are hard-coded. Soon they will be stored in a XML configuration file and the user can edit them.

A complex codetools function CheckLFM is used for scanning the form file. It stops working when there are errors in source. There are often errors in a unit under conversion so this is a problem.
I must study and fix the codetools functions or even replace them with something.

Replacing a component with a "fall-back" LCL component leads to more unknown properties. It must be solved somehow.

Juha
Posted by Juha at 3:29 PM 0 comments


Articulo original aqui.....

El convertidor ha mejorado durante los últimos meses. El foco principal ha sido la conversión del proyecto Delphi. Conversión de Delphi paquete debe obtener la mayoría de las mismas mejoras de forma automática pero no se ha probado mucho.

Creo convertidor de Delphi es una pieza muy importante de Lázaro, porque la gente nueva que viene desde Delphi a menudo quieren intentarlo. Obtienen su primera impresión de Lázaro de ella.
Cuando empecé a aprender a Lázaro el año pasado, fue una de las primeras cosas que probar. Entonces no pudo convertir la mayoría de los proyectos. Su calidad no era igual al resto de Lázaro.

En febrero 2010 tengo acceso de escritura al directorio de SVN convertidor de tronco. Hice el código de convertidor más orientado a objetos. Uso de variables de objeto en lugar de miembros de los parámetros de función hace que sea más fácil hacer extensivo el código más tarde. Yo refactorizar el código en gran medida, en realidad más de lo necesario realmente, en parte para organizarla mejor y en parte para aprender lo que hace.

El diálogo inicial muestra que hay tres posibles objetivos para la conversión:
* "Lazarus / LCL" - Una forma de conversión.
* "Lazarus / LCL sólo para Windows" - No eliminar o convertir ventanas nombres específicos unidad.
* "Tanto Lazarus / LCL y Delphi" - Trata de mantener el código compatible con Delphi y Lazarus utilizando la compilación condicional.



Fuente conversión de archivos

Inicialmente, el objetivo principal era reducir messageboxes y otras notificaciones. La conversión de un gran proyecto de Delphi no era realista, porque no había tantos mensajes. Ahora las preguntas inútiles se eliminan y las notificaciones van a IDE messagewindow.



Antes era posible comentar nombres de las unidades no encontrado en la sección de Usos. Ahora que está extendida. El usuario puede a comentar o búsqueda de un camino unitario durante la conversión. Si las unidades se encuentran, a su paso se agrega a la configuración del proyecto. Si el usuario opta por ellos en comentario, las mismas unidades se comentó entonces automáticamente en los siguientes archivos de código fuente.

nombres usados unidad también puede ser reemplazado por otra unidad nombres. sintaxis de las expresiones regulares para el reemplazo es compatible.


Formulario de la conversión de archivos


La otra parte importante de la conversión es la conversión de la forma de fichero DFM. Algunas propiedades de los componentes de Delphi no existen en los componentes LCL equivalente. Pueden ser eliminado, ya sea automáticamente o de forma interactiva.
Un problema mayor son componentes Delphi que no existen en LCL en absoluto. Es importante para reemplazarlos por un "retorno" componente de LCL, especialmente si son recipientes y tienen más componentes en su interior.
Ahora los componentes pueden ser sustituidos y sintaxis de las expresiones regulares con el apoyo, al igual que para la sustitución de la unidad nombre.



Cuestiones

El convertidor no está listo todavía. Estas son algunas cuestiones y problemas que debe resolver.

nombres de las dos unidades de repuesto y los componentes están codificados de forma rígida. Pronto se almacenarán en un archivo de configuración XML y el usuario puede editar.

Una función compleja Codetools CheckLFM se utiliza para escanear el archivo de formulario. Se deja de funcionar cuando hay errores en la fuente. A menudo hay errores en una unidad en proceso de conversión por lo que este es un problema.
Tengo que estudiar y fijar el Codetools funciones o incluso reemplazarlos con algo.

Sustitución de un componente con un "retorno" componente de LCL conduce a más propiedades desconocidas. Se debe resolverse de alguna manera.


  • 0

#7 robert01

robert01

    Advanced Member

  • Miembros
  • PipPipPip
  • 162 mensajes
  • LocationArgentina

Escrito 15 mayo 2010 - 12:47

Hola
yo he convertido varios proyectos a lazarus, aunque son pequeños pero lo hice todo en forma manual.

Saludos
  • 0

#8 donaldsimoda

donaldsimoda

    Member

  • Miembros
  • PipPip
  • 10 mensajes
  • LocationSan Isidro - Argentina

Escrito 15 mayo 2010 - 02:52

Hola
yo he convertido varios proyectos a lazarus, aunque son pequeños pero lo hice todo en forma manual.

Saludos


Igual yo, de hecho hay un artículo en mis blogs sobre el tema, que también esta algo des actualizado,  dado que ahora se puede usar directamente solo los lfm lo cual es de gran ayuda, siendo super fácil comparar dfms contra lfms y mantenerlos sincronizados.

Cuando se creo el wizard que se menciona en este hilo, participe de su evaluación y mejoras con el creador. La conclusión siempre fue que sería ideal que existiera algun wrapper en lazarus que ignorara las propiedades inexistentes en lazarus, y que si estan presentes en los dfm. De esta manera se podría utilizar un
unico archivo fuente (como ya se puede hacer con varios IFDEFS) y un solo archivo para los forms (ahora es necesario dfm para delphi y lfm para lazarus).

Es muy prometedor este concepto y no es muy complejo, pero lleva tiempo obviamente.

Incluso el wrapper podría traducir classes inexistentes en lazarus, en fin, imagínense que sería un asistente genial.

El problema es encontrar el tiempo para comenzar el proyecto, yo algo converse con los desarrolladores les gusto la idea, pero se necesita horas hombre para ello. Creo que es lo que nos falta a todos... Porque no han inventado aun los dias de 26 horas? :p

Saludos
  • 0

#9 donaldsimoda

donaldsimoda

    Member

  • Miembros
  • PipPip
  • 10 mensajes
  • LocationSan Isidro - Argentina

Escrito 15 mayo 2010 - 02:53


Ojo que el wiki esta desactualizado... El lunes veo de aclarar las diferencias, por ejemplo ya no es necesario generar archivos *.lrs.

Por cierto, buenas, estuve desaparecido mucho tiempo. ;)


Bienvenido a DelphiAccess Donald, espero que te sientas a gusto por aquí. (y)

Salud OS


Gracias amigo.
  • 0

#10 Dmanth

Dmanth

    Member

  • Miembros
  • PipPip
  • 37 mensajes

Escrito 15 mayo 2010 - 04:52

Bienvenido al forum, gracias por la ayuda, casi nunca da tiempo yo casi ni duermo tratando de alcanzar a algunos compañeros que ya saben de programacion.... y no me alcanza el tiempo...

El transformador de proyectos y codigo funciona bien solo unos detalles...

En cuanto al wiki, si hay que meterle info porque andamos cortos de informacion en español... hasta que salga el libro de "Introduccion a Lazarus" traducido a nuestro idioma.
  • 0




IP.Board spam blocked by CleanTalk.