FPC compatibility in general #54
Replies: 60 comments
-
Imho, only the ones where deep change was made in code. |
Beta Was this translation helpful? Give feedback.
-
I am a little afraid to break compatibility for msegui himself. What I propose and it works perfectly, is to rename all the tweaked fp* into msefp* and in msegui code replace all call to fp* by msefp*. Tested and works like charm. So for himself, msegui will use msefp*, and you, if you want, you may use the official *fp + your bridge. |
Beta Was this translation helpful? Give feedback.
-
I would say that for now, I prefer not having to rename units because that would add a lot of $IFDEF in BGRABitmap. I understand you don't want MSEgui to be broken when using original FPC files. Though in the long run, avoiding those duplicate files would reduce maintenance and updates. When I have the motivation, I will have a look and try to understand what is the point of |
Beta Was this translation helpful? Give feedback.
-
For easier discussion, please could you provide a test project which shows that problem? |
Beta Was this translation helpful? Give feedback.
-
Yes, that is what we have to do. I will take a look today. |
Beta Was this translation helpful? Give feedback.
-
Here is a sample program:
which does not compile: |
Beta Was this translation helpful? Give feedback.
-
OK, thank you. FYI, I found an interesting example in MSEuniverse: |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
@circular17 |
Beta Was this translation helpful? Give feedback.
-
Ok I will try that. Well I don't know what to do to fix the System-not-found error. |
Beta Was this translation helpful? Give feedback.
-
In "project options, make, directories," replace $TARGET with $TARGETOSDIR. |
Beta Was this translation helpful? Give feedback.
-
There are still other problems (Identifier not found "tmacrolist", etc). I solved them yesterday like a butcher. I am trying to do it in a better way now. |
Beta Was this translation helpful? Give feedback.
-
This one is not so simple to fix:
So temporarily, I comment all these lines:
|
Beta Was this translation helpful? Give feedback.
-
Changing $TARGETOSDIR didn't work for me. I suggest that if you find a way to fix it that you propose your changes to the repository. |
Beta Was this translation helpful? Give feedback.
-
Did you fix the macros?
OK, I will do it. |
Beta Was this translation helpful? Give feedback.
-
Yes, I perfectly understand that but I dont understand if Geany uses the same command line as MSEide that the result can be different. |
Beta Was this translation helpful? Give feedback.
-
Did you see last picture I added later in previous post? |
Beta Was this translation helpful? Give feedback.
-
Fred my friend, I am tired. I will go to sleep. If you want, you can try it by yourself. https://github.com/almindor/lnet Try to compile the lmimewrapper unit in an empty MSEide project and (for example) in an empty Lazarus project. Good night! |
Beta Was this translation helpful? Give feedback.
-
Hello Roland. Good night. OK, I will try. But maybe I miss something. Re-good night. Fre;D |
Beta Was this translation helpful? Give feedback.
-
Yes, indeed, each unit that uses I really hope that the Circular's Bridge will do miracles. |
Beta Was this translation helpful? Give feedback.
-
I guess I have found a solution: |
Beta Was this translation helpful? Give feedback.
-
OK, I start to test your modifications. |
Beta Was this translation helpful? Give feedback.
-
Note that if you test with BGRABitmap you need to change in BGRAClasses the following types like this:
|
Beta Was this translation helpful? Give feedback.
-
I opened, compiled, run many projects using the code from your repository: no problem detected. Je ne sais pas comment tu as fait ça, mais en tout cas, chapeau ! Ce qui m'étonne, c'est que Martin ait inclus ces unités dans MSEgui alors qu'il était possible, apparemment, de s'en passer... |
Beta Was this translation helpful? Give feedback.
-
Cool content que ça fonctionne ! Héhé j'ai plus d'un tour dans mon sac. J'ai utilisé des techniques de "magicien", si l'on peut dire. C'est-à-dire des choses qu'on n'est pas censé faire, mais qui combinées peuvent aboutir à une illusion vraisemblable : remplacer des fonctions virtuelles au lieu de les hériter, tout en les laissant virtuelles pour qu'on puisse dériver encore, en utilisant des classes ayant apparemment le même nom. Je suppose que Martin se satisfaisait juste de hacker les unités en rajoutant |
Beta Was this translation helpful? Give feedback.
-
Je précise que je ne porte pas un jugement sur son approche, je comprends qu'il ait voulu avoir la latitude de changer ce qu'il voulait afin d'obtenir exactement ce dont il avait besoin. |
Beta Was this translation helpful? Give feedback.
-
Sincèrement je suis hyper impressionné par vous deux. Fre;D |
Beta Was this translation helpful? Give feedback.
-
OK, let say it in International English: WOW I just did test with last pull of Circular, trembling when launching the compilation of a big application, and boom OOTB, without cry, clean , fluid, logical. Congrats Magic-Circular and I think we have to upgrade the msegui version number to 5.0.1. |
Beta Was this translation helpful? Give feedback.
-
What did we miss? |
Beta Was this translation helpful? Give feedback.
-
That we are happy about the solution and wondering why Martin did not try that. |
Beta Was this translation helpful? Give feedback.
-
Having a folder with copies of FPC packages that are tweaked with
mclasses
unit leads to incompatibilities when using packages that are not included in the folder.Two solutions to avoid this problem are :
mse
Classes
andmclasses
As Fred suggests we can compare
Classes
andmclasses
to see what are the difference and see what really needs to be tweaked.If no tweaking is needing it would simplify to remove the files from the compatibility folder.
Beta Was this translation helpful? Give feedback.
All reactions