Hi, Some users suggested, that components should be stored in pascal source (optionally). IMO there is one big advantage: Storing in source means no need for the streaming system at runtime, which means no need for published properties/methods at runtime, which would help smart linking to reduce the size of the executable. I have not tested, but it should be quite a bit for the LCL.
The LCL and IDE uses the TWriter of the FCL, which has the ability to write to various formats. There is already a rudimentary pascal writer in lazarus/examples/pascalstream/componentstreampas.pas. There are some issues left that must be solved before it can be used in the IDE: 1. TCollection needs a typecast to the item class 2. forward dependencies 3. the 'with' can create conflicts 4. what to do with DefineProperties? 5. a reader Point 1 should be solvable with a typecast. Point 2 can be solved by first creating all components and then assigning the properties. Point 3 can be solved by using fully qualified identifiers. Point 4 is the real problem. How to store TStrings.Data or TBitmap.Data? You are welcome to solve the open issues. I will then help to use the reader/writer in the IDE. Mattias -- _______________________________________________ Lazarus mailing list [email protected] http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
