<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Jun 23, 2016 at 10:00 AM, Mattias Gaertner <span dir="ltr"><<a href="mailto:nc-gaertnma@netcologne.de" target="_blank">nc-gaertnma@netcologne.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">On Thu, 23 Jun 2016 09:35:15 +0200<br>
Martin Grajcar <<a href="mailto:maaartinus@gmail.com">maaartinus@gmail.com</a>> wrote:<br>
<br>
>[...]also BaseParentClientSize, which gets taken from the actual parent,<br>
<span class="">> which has zero size at the moment.<br>
<br>
</span>...which is a show stopper for right anchoring.<br></blockquote><div><br></div><div>Yet it works well with my hack saying "don't store parent size".</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
>[...]<br>
<span class="">> BaseBounds/BaseParentClientSize is set when you call SetBounds (e.g.<br>
> > when setting Left, Top, Width, Height).<br>
><br>
> My debugger agrees with you. I don't ask why so complicated. ;)<br>
<br>
</span>One part Delphi compatibility, one part flexibility for custom controls.<br>
<br>
<br>
>[...]<br>
<span class="">> > > The zero-client-size parent is a TPage, but I can't claim it guilty as I<br>
> > > couldn't reproduce my problem in a small example.<br>
> ><br>
> > Do you mean it does work in a small example, but it does not in your<br>
> > complex application?<br>
> ><br>
><br>
> Exactly. I thought that there might be a bug in TNotebook/TPage leading to<br>
> zero client area, but this isn't the case.<br>
<br>
</span>Let's see if I can follow you:<br>
Do you mean, when you set the bounds and anchors of the control the<br>
BaseParentClientSize is 0,0 and Parent.ClientRect has non 0 values?<br></blockquote><div><br></div><div>No, exactly the opposite:</div><div><font face="monospace, monospace">BaseParentClientSize.cx = 850<br></font></div><div><font face="monospace, monospace">Parent.Width = ParentClientRect.Right = ParentClientRect.Left = 0</font><br></div><div><br></div><div>So not storing the parent size seems to make sense.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
>[...]<br>
<span class="">> I sort of intentionally did not use it: I use no align and no autosize<br>
> (just anchors), so I though I won't need it.<br>
<br>
</span>Without Disable/EnableAlign the AutoSize algorithm kicks in after each<br>
property change. And because anchoring is context sensitive, it is<br>
better to make sure. Also it avoids some overhead, which can load a<br>
form much faster.<br></blockquote><div><br></div><div>OK, I keep using DisableAlign.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
>[...]<br>
<span class="">> However, for the future, I'm curious if there's a simple way of storing<br>
> additional information for a control without subclassing it. Let's say, I<br>
</span>> need to store the *original* font size of *every* control. And I don't want<br>
<span class="">> to run to any problems when the control gets freed.<br>
<br>
</span>There is no LCL-built-in user storage space. You need to use<br>
subclassing or some other objects to store your settings.</blockquote><div><br></div><div>OK, let's forget it for now.</div></div></div></div>