<br><br><div class="gmail_quote">On 16 November 2010 10:32, Michael Van Canneyt <span dir="ltr"><<a href="mailto:michael@freepascal.org">michael@freepascal.org</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, 16 Nov 2010, Frank Church 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>
I realized the wisdom of Bo's approach to creating components at run-time<br>
and setting the properties in code only 2 days go.<br>
<br>
I overwrote some of my newer code with older code, and although I restored<br>
the *.pas from git, I forgot about the*.lfm where the SQL was stored. It was<br>
only hours later that I realized the the update code was in the components<br>
that I restored it.<br>
<br>
Initialzing non-visual components from form properties is an evil which is<br>
best avoided.<br>
</blockquote>
<br></div>
I think your mileage may vary. I work with lots of custom components in<br>
Delphi and Lazarus (in fact, I never use the 'standard' ones, always<br>
descendants or third-party components, installed in the IDE). In 12 years, I never experienced any of the problems you describe.<br>
Not in Lazarus, not in Delphi.<br>
<br>
So I cannot say that my experience supports your conclusion.<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
It will be good if Lazarus can generate the source code to initialize<br>
components at the start of a program, rather than stream them in, hopefully<br>
in a future version. It makes revision control much easier, a lot more<br>
transparent.<br>
</blockquote>
<br></div>
I am all for such a feature (to each his own, after all), but I don't think it solves any real problems. You admitted you made a mistake in your VCS, but you blame the lazarus way of doing for it. This is definitely not logical to me.<br>
<font color="#888888">
<br>
Michael.</font><div><div></div><div class="h5"><br>
<br></div></div></blockquote><div><br>I am not blaming Lazarus as such, as Delphi does the same, but when I do a diff of a .lfm file it is obvious to me that things would be much clearer from source code generated at runtime, rather than looking at the properties text in source. Runtime source code can also be formatted properly or even have an order of generation so stuff don't get move around much. It can even be generated in separate files, or as Graeme said in some private section of the file.<br>
<br>Eg. when you move components around sometimes for the sake of accessing other components properties to change them, it creates a lot of noise in the diffs, as positions in most cases  are irrelevant to a lot of components.<br>
<br>Setting properties in code is fine, and some design IDE component can be used to generate the source code to initialize them at runtime.<br><br>To be honest it is something I noticed some time ago, but never realized how hard it could hit if you made some error or forgot about something.<br>
<br>Perhaps Graeme will permit the inclusion of that kind of facility into Lazarus in some future version, and component designers can include it in their component design.<br><br><br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div><div class="h5">
--<br>
_______________________________________________<br>
Lazarus mailing list<br>
<a href="mailto:Lazarus@lists.lazarus.freepascal.org" target="_blank">Lazarus@lists.lazarus.freepascal.org</a><br>
<a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus" target="_blank">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Frank Church<br><br>=======================<br><a href="http://devblog.brahmancreations.com">http://devblog.brahmancreations.com</a><br>