J'ai converti mes 2 applications graphiques de Delphi à Lazarus. Les deux applications compilent pour la plate-forme Win32, i386 et avec une interface graphique. Le formulaire principal a été converti à l'aide de l'outil Lazarus et peut être édité à partir d'IDE. Mais lorsque j'exécute une telle application, le formulaire principal n'apparaît pas, seulement un formulaire vierge sans aucun contrôle.Formulaire principal vide dans l'application GUI converti de Delphi à Lazarus
J'ai essayé de déboguer ceci. Il exécute tout le code dans les sections d'initialisation, et exécute le code à partir du projet .lpr, mais quelque chose ne va pas dans CreateForm() car n'exécute pas de code dans l'événement OnCreate du formulaire principal. Dans le journal des événements, je peux voir tous les textes je lui écris avec '<App.Run'
apparaissant après que je ferme ce formulaire vide.
code dans le projet .lpr:
Application.Initialize;
AddToEventLogInfo('App.CreateForm');
Application.CreateForm(TfrmTst, frmTst);
AddToEventLogInfo('App.Run>');
Application.Run;
AddToEventLogInfo('<App.Run');
J'ai vérifié que je suis en mesure de créer des applications simples de l'interface graphique de Lazare, mais à la fois converti GUI applications ne fonctionnent pas comme prévu. Qu'est-ce qui peut être mauvais? Ai-je manqué quelque chose? Peut-être que l'un des nombreux avertissements et astuces que Lazare écrit est important?
Quand je lance mon application Lazarus écrit ceci:
windres: warning: 14: "MAINICON": 1045: duplicate value
windres: warning: 16: 1: 1045: duplicate value
Project "Tst_fpc" successfully built. :)
EDIT:
outil de conversion Lazarus converti .dfm -> .lfm, mais a quelques problèmes avec le fichier .pas. Je devais manuellement:
ajouter des unités Lazarus à des usages:
utilise {$ IFDEF FPC} LCLIntf, LResources, {$ ENDIF}
compilation conditionnelle forme Delphi {$ R * .dfm}:
{$} IFNDEF CPF {$ R * .dfm} { $ ENDIF}
Ajouter .lrs ressource dans le code d'initialisation:
initialisation {$ IFDEF} {$ CPF i myunit.lrs} {$ ENDIF}
Oui, c'était tout. Convertisseur de Lazarus fait fichier .lfm, mais a quelques problèmes avec le fichier .pas. Plus d'infos dans la question mise à jour. –