Thanks for the quick response!
Here are the important characteristics of Delphi's and VS.NET's (MS is always one to copy a good idea when they see it...) layout manager:
a) By default, emulates a null (or xy) layout manager's simplicity.
What this means is that you can drag a control from the tool palette and drop it anywhere on the form and you're done. Many simple applications that can define a static form size (like a simple dialog box) will use this layout since it's simple and effective. The downside to null layout is that the controls will not reposition or resize dynamically if the container's size changes.
Although this is the default behavior of the (let's call it delphi layout manager) delphi layout manager it actually achieves this by making controls have a default top, left anchor...
b) Very easy to make controls react intelligently to changes in a container's size.
In a nutshell what this type of layout manager does is allow the GUI designer to draw an interface using the simple XY/null layout approach and then, once it's laid out, rapidy turn it into a dynamic layout that resizes intelligently with the form or container to which it is bound.
The concept of anchors is what provides the power. Examine this diagram:
Top Anchor
Left Anchor [CONTROL] Right Anchor
Bottom Anchor
Each anchor can be turned on or off. Establishing a left anchor will cause the control to maintain it's x coordinate pixel position relative to the container's left edge. Likewise, establishing a right anchor will cause the control to maintain it's x coordinate pixel position relative to the container's right edge. If BOTH a left and right anchors are established then the control's width will expand with the expansion of the container's width.
The top and bottom anchors are in a similar relationship to one another with regard to the control's y coordinate pixel position and height.
The best way to check out how this works in practice is to download a trial version of either delphi or vs.net and give it a shot. I work on thick-client GUIs in VS.NET for my day job and Java for my hobby programming and I' ve never needed more than this layout manager provides on the VS.NET side of the fence and am constantly frustrated by the confusing array of layout managers on the Java side.
For the sake of Java users everywhere who are dangerously unaware of the power of this layout manager approach I implore you to spend some time examinging this layout manager and the benefits it provides.
If I can be of any additional assistence please don't hesitate to contact me via email at
will@digitalelite.com.
Thanks for taking the time to read this request but I've been beating this war drum on a few Java IDE sites and there just seems to be no appreciation of the ease of use that VS.NET provides to programmers at the tool level, as opposed to the language level. I've personally seen VS.NET programmers take an interest in Java only to be turned off by having to wrap their heads around a plethora of layout managers that are completely unnecessary to get the job done.
Thanks again,
Will
PS: The VS.NET and Delphi layout managers also support the concept of "docking" but it's not nearly as useful as the anchoring concept as it's implemented in these products.