<p style="padding:0 0 0 0; margin:0 0 0 0;">I've got one objection to AlignControls() method. It's implementation in LCL differs from Delphi.</p>

<p style="padding:0 0 0 0; margin:0 0 0 0;">While in Delphi it comes with parameter AControl: TControl - currently aligned control, in LCL</p>

<p style="padding:0 0 0 0; margin:0 0 0 0;">is this parameter always <strong>nil</strong> but method is triggered many times (as many controls container has).</p>

<p style="padding:0 0 0 0; margin:0 0 0 0;">Therefore I am careful with using it; it can easily lead to redundant calculations.</p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>

<p style="padding:0 0 0 0; margin:0 0 0 0;">Vojtěch </p>

<p style="padding:0 0 0 0; margin:0 0 0 0;">______________________________________________________________<br />
> Od: Juha Manninen <juha.manninen62@gmail.com><br />
> Komu: Lazarus mailing list <lazarus@lists.lazarus.freepascal.org><br />
> Datum: 22.05.2014 12:21<br />
> Předmět: Re: [Lazarus] TCoolBar improvements<br />
></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;">On Thu, May 22, 2014 at 12:50 PM, Vojtěch Čihák <vojtech.cihak@atlas.cz> wrote:<br />
> I can also look for some optimalization,<br />
> CalculateAndAlign is the most time consuming method, so I'll<br />
> check if it's not called redundantly.<br />
<br />
I don't think it is called redundantly but the calls to Invalidate and<br />
ReAlign trigger LCL to call AlignControls and Resize excessively. The<br />
right way is to move the logic from CalculateAndAlign to AlignControls<br />
and CalculatePreferredSize. See my original component, IMO this part<br />
of its design was good.<br />
<br />
Juha<br />
<br />
--<br />
_______________________________________________<br />
Lazarus mailing list<br />
Lazarus@lists.lazarus.freepascal.org<br />
<a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus</a></p>