<br><br><div class="gmail_quote">On Tue, Jan 18, 2011 at 4:02 PM,  <span dir="ltr"><<a href="mailto:michael.vancanneyt@wisa.be">michael.vancanneyt@wisa.be</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<div class="im"><br>
<br>
On Tue, 18 Jan 2011, Max Vlasov wrote:<br>
<br>
</div><div><div></div><div class="h5"><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
On Tue, Jan 18, 2011 at 2:11 PM, <<a href="mailto:michael.vancanneyt@wisa.be" target="_blank">michael.vancanneyt@wisa.be</a>> wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<br>
<br>
 Hmm, Michael, I understand you here, but I think that the main drawback<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
about application-wide (so possibly run-time only) is about losing<br>
design-time magic. For example when you have 10 panels, go change some<br>
...<br>
</blockquote>
<br>
The whole point is to avoid having to do the same task all over again.<br>
Remember, a typical app of mine has more than 1000 forms.<br>
<br>...<br>
<br>
</blockquote>
<br>
Ok, now I see, your initial idea is really simple and working, the one I<br>
suggested maybe needs a little more thinking about worth it or not<br>
implementing. I know it can work, but for the time being looks a little bit<br>
too complex<br>
<br>
For yours I have something in mind. Is it possible to create something<br>
similar to TApplicationEvents (in terms of accessing special places in the<br>
LCL) and this component that will introduce an event<br>
<br>
TOnCreateComponent: procedure (Sender: TObject; Component: TComponent) of<br>
object;<br>
<br></blockquote></div></div>
I could then create a global object that sets this handler.<br>
This should be implemented in TReader or in TComponent.AfterCreate, so I can do it myself in the classes unit if necessary.<br>
<br>
There is only one drawback in this system: it will be called for all created<br>
components. This means that there will be a huge If/then/else, and that<br>
there is only 1 handler possible.<br>
<br>
My system will be significantly faster, and is easily controllable on a<br>
per-component basis.<div><div></div><div class="h5"><br>
<br></div></div></blockquote><div><br>As for the speed, I think you're more familiar with internals than me so you'd better decide yourself :) <br><br>just two things about events that I like a little more:<br>
<br>Just to clarify, did I understand the logic behind your objects correctly, should they self-register somewhere from their create's? <br><br>- If objects are self-created, the context of the changes is hidden. It's sometimes very hard to remember why this particular object looks differently to what one saw in the desiginer. Calling some self-registered objects from deep within LCL is just hidding this changes far from the developer. <br>

<br>- Sometimes when one have options to implement or not to implement a brand-new object (TLabelDefaults in your example), it depends on the value of this. So when I have some exotic component I probably will use twice or third times, making additional "else if" is sometimes easier than implementing a new object, even if I understand that the latter is more effective. <br>

 <br>Max</div></div>