Pregunta

He convertido mi 2 aplicaciones GUI de Delphi a Lázaro. Ambas aplicaciones compilan para Win32 plataforma, i386 y con interfaz gráfica de usuario. forma principal fueron convertidos usando la herramienta de Lázaro y se puede editar de IDE. Pero cuando corro dicha aplicación no aparece el formulario principal, única forma en blanco sin ningún tipo de control.

He intentado depurar este. Se ejecuta todo el código en las secciones de inicialización, y se ejecuta el código de .lpr proyecto, pero algo malo sucede en CreateForm () porque no se ejecuta el código en el evento principal forma OnCreate. En evento de registro que puedo ver todo textos que escribo a ella con '<App.Run' que aparece después de cerrar esta forma vacía.

Código de .lpr proyecto:

  Application.Initialize;
  AddToEventLogInfo('App.CreateForm');
  Application.CreateForm(TfrmTst, frmTst);
  AddToEventLogInfo('App.Run>');
  Application.Run;
  AddToEventLogInfo('<App.Run');

he comprobado que soy capaz de crear aplicaciones GUI simple de la Lázaro, pero ambos GUI convertida aplicaciones no funcionan como se esperaba. ¿Qué puede estar mal? ¿Me he perdido algo? Tal vez una de las muchas advertencias y consejos Lázaro escritura es importante?

Cuando ejecuto mi aplicación Lázaro escribe esto:

  windres: warning: 14: "MAINICON": 1045: duplicate value
  windres: warning: 16: 1: 1045: duplicate value
  Project "Tst_fpc" successfully built. :)

EDIT:

herramienta de conversión de Lázaro convertido .dfm -> .lfm, pero tiene algunos problemas con el archivo .pas. Tenía que manualmente:

  1. añadir unidades de Lazarus a usos:

    usos     {$ IFDEF FPC}       LCLIntf, LResources,     {$ ENDIF}

  2. forma condicional compilación Delphi {$ R * .dfm}:

    $ {} IFNDEF FPC {$ R * .dfm} {$ ENDIF}

  3. Añadir .lrs de recursos en el código de inicialización:

    inicialización    {$ IFDEF FPC} {$ i myunit.lrs} {$ ENDIF}

¿Fue útil?

Solución

Me sospechar que la unidad MainForm (supongo que se llama uTest) no tiene un {$ i} utest.lrs en su sección de inicialización. Los .lrs es el archivo de recursos Lázaro, creado a partir de la MML (DFM) en Delphi.

Otros consejos

El formulario vacío es la forma de para el proyecto actual que utilizó el proyecto de Delphi convertido de las herramientas que significa que el proyecto actual está activo.
Prueba esto:

  • En la opción de proyecto cerrar el proyecto actual .
  • En la pequeña ventana principal nombrado como asistente de proyectos, utilice la opción de proyecto de Delphi convertido.

Lo siento que no puedo dar una respuesta directa. Por lo que entiendo que hay un problema un problema con el archivo de recursos. En Delphi Esa es la .res *, no sé cómo se ven en Lázaro. Utilizar un programa como ResEdit, http://www.resedit.net/ , para abrir el archivo de recursos. Lo probé y encontré un icono "carpeta" donde había un MAINICON puesto. Supongo que tiene dos. En ese caso, extraiga uno de ellos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top