<br><br><div class="gmail_quote">On Thu, Aug 18, 2011 at 1:57 AM, Graeme Geldenhuys <span dir="ltr"><<a href="mailto:graemeg.lists@gmail.com">graemeg.lists@gmail.com</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">On 15 August 2011 10:48, Michael Schnell wrote:<br>
><br>
> I never tried this, but I feel that IDEs (integrating code editor, GUI<br>
> designer, make process, and debugger) have been invented for a purpose.<br>
<br>
</div>I agree with all except the "gui designer" part. Layout Managers are<br>
by far the better choice compared to something like Delphi or Lazarus<br>
or MSEgui and even fpGUI's UI Designer gives. Java hit the nail on the<br>
head. Why define a UI with co-ordinates, then sit with problems like<br>
overlapping components, components that don't scale, locked to a<br>
specific DPI etc.<br></blockquote></div><br><br>For my projects in Delphi I did this with a control that was inspired by table layouts of HTML (I called it TControlAligner, it is a TGraphicControl descendant without own drawing, its bounds are used as a "container"). It has Controls property (TCollection descendant) and direction (vertical/horizontal). Every collection item has a reference to a control on the form (that can be simple control or another TControlAligner) and different properties. The main property of the item that affects the position is Cells which is either weight (equivalent of % of html tables) or pixels, and when all requirements is set and this TControlAligner is placed (or its bounds changed) it does the best it can do with all the requirements of the collections items (as with html tables where cells can require % of the width or exact pixels). <br>

<br>Adding new aligners and using it for items of another aligner can build very complex layouts not using direct coordinates at all.  Seems like the port of this component works in Lazarus. If the concept is worth considering I can provide the source for further review by the developers. <br>

<br>Max<br><br>