2011/6/27 Mattias Gaertner <[email protected]> > On Mon, 27 Jun 2011 16:31:56 -0300 > "[email protected]" <[email protected]> wrote: > > > 2011/6/27 Mattias Gaertner <[email protected]> > > > > > > > > TComponent uses linear searches/notifications for each operation. So > > > 1000 components is a bad idea. > > > LCL adds even more searches/notifications, so 300 components is a bad > > > idea. > > > > > > > > And to make 4000 or 10000 components a good idea, what's must be changed? > > A lot. > Are you sure you need that many components? For example some components > uses TCollection and other classes to handle thousands of objects. > Maybe if you explain what you want to achieve people can give an advice. > > Maybe I started my components with a wrong concept. Each component, represents a memory (or a set of memories) on a remote device (like a PLC) that can be read and/or written. These components can be linked with edits, labels, progress bars and others controls created to show/modifies/stores the value of these components.
For now, I did only small projects using these components (using ~150 tags or components). Today, I started my first big project. On the first time, using the component wizard, I inserted 255*5+1 components. This action takes some time. After this, I tried using my wizard again, to insert 4000 components, and after this the IDE freezes. I thought use the TCollection, but I don't know if I can represent the following configuration (it's a example, it can have how many PLCBlocks, BlockItems, TagBit, PLCNumbers or PLCStrings the owner of project wants): Owner (TCollection) | |-> PLCBlock (now, each below is a component) | | | |-> BlockItem (0..n items) | |-> BlockItem | | | | | |-> TagBit (0..n items) | |-> PLCBlock | | | |-> BlockItem (0..n items) | |-> PLCNumber (0..n items) | |-> TagBit (0..n items) | |-> PLCString (0..n items) Some idea? The best regards, Fabio
-- _______________________________________________ Lazarus mailing list [email protected] http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
