Closed circular17 closed 4 years ago
I guess I have found a solution: https://github.com/mse-org/mseide-msegui/pull/11
I guess I have found a solution:
11
OK, I start to test your modifications.
Note that if you test with BGRABitmap you need to change in BGRAClasses the following types like this:
TStream = Classes.TStream;
TPersistent = Classes.TPersistent;
TStrings = Classes.TStrings;
TStringList = Classes.TStringList;
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...
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 mclasses
. Cela fonctionne si on est peu à utiliser le projet parce qu'on peut toujours rajouter des unités, mais cela a ses limites. De ce fait, à mon humble avis, il n'a pas visé la compatibilité, comme par exemple le fait qu'il ait ajouté une propriété memory
à l'objet de base tstream
, ce qui ne me semble pourtant pas nécessaire.
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.
Sincèrement je suis hyper impressionné par vous deux. Circular, ta solution est géniale, je ne sais pas pourquoi Martin ne l'a pas utilisée. Roland ta profonde lucidité reste légendaire .
Fre;D
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.
let say it in International English
What did we miss?
That we are happy about the solution and wondering why Martin did not try that.
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.