Hi Juha, I compiled ess-model from your git repo on win32. Had to add 3 TODO's to make it compilable for win32.
Tried to commit the changes to your git-repo. It was the first time I used git and it looks like my user-settings were not very good. The name used to commit was "master". I have changed my settings so next time it should be better. That's it for the moment. Will play around with the sources as soon as I have some spare time. Thank you very much for your incredible work you did for the DelphiToLazarus Convertion stuff !!!! Regards, Sam --- Juha Manninen <[email protected]> schrieb am Mo, 3.5.2010: Von: Juha Manninen <[email protected]> Betreff: [Lazarus] Challenge of converting a Delphi project An: [email protected] Datum: Montag, 3. Mai, 2010 13:52 Uhr Hi I have been converting EssModel Delphi program, partly as an exercise and partly because it could develop into a useful program or component. It is a reverse engineering class diagram tool. I am facing more problems than expected. This is not related to Delphi converter in Lazarus but to the manual editing after it. First, the code uses a trick. It typecast controls like TForm to a local TCrackControl just to reach the protected TControl.OnMouseDown and such. type TCrackControl = class(TControl); // <-- empty local class var found: TControl; cc: TCrackControl; and later: // 'found' can be TForm or anything. cc:=TCrackControl(found); // <-- error cc.OnMouseDown := ... It gives 'RunError(219)', and the whole Lazarus may become unstable. The typecast is actually OK because the controls inherit from TControl and OnMouseDown is defined there. According to Mattias this system is even used in Lazarus itself. In a small test project the same system worked for me, too. ??? The program used interfaces heavily, actually in a clever way. I thought they cause the above problem and changed the code quite much to get rid of interfaces. No difference, it still doesn't work. Next problem: I noticed there are TActions defined in a DataModule which is created in MainForm.OnActivate handler, and the actions are used in form's menu and button. I thought it causes problems and I copied everything from DataModule to MainForm. I set the actions carefully like they were before and now menu items work but open-button does not. The exact same action is triggered by menuitem but not by button! So, this refactoring didn't solve any problems but created a new one. And then: before the program closes it writes recent files to registry. It gives an error when writing a string, although I can find the "reg.xml" file it wrote. The same thing works in my small test project without errors. All the program's behavior is defined in project file, pascal source code and form files. Am I correct? So, WHAT CAN CAUSE SUCH PROBLEMS? I have used many many hours already trying to solve this. The program itself is not very important now, I could as well forget it. I just feel uncomfortable when there are errors which I can't explain. Besides I am supposed to improve Delphi converter but now I am not even able to convert a program myself... My tests happened on Linux, with GTK2 and QT. If someone likes to look at the code, please do this: $ git clone git://github.com/JuhaManninen/Pascal.git It is not big. At least it should be easy to verify the MainForm.OpenButton doesn't work while it should, even though the program hasn't done anything yet. Regards, Juha -- _______________________________________________ Lazarus mailing list [email protected] http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
-- _______________________________________________ Lazarus mailing list [email protected] http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
