Hi Mike,
I fear that is the way to go. In fact having a builder is not bad, but as a developer I also have the choice on native controls to use a builder or not.
I wonder if it isn't the native resize event, which is used to adjust controls at design time, for example. Nevertheless, you might want to have code in it, that depends on a framework of other classes only available at runtime, so the seperate prg is indeed a godd idea.
I wonder if you can't hook calls to such prgs in other things, eg the class browser. At least, as that is available in source code, you could modify it. But it's scope is over, when a class is dragged to a form(class), or is it?
A project hook does not handle each new object, only new classes or other project files/components, so that won't work. But you might use a projekt hook to start some eventhandler each time a new form/formclass is created or modified. You might be able to do something with timers. Monitor what ASELOBJ() gives you at hand and see if it's one of your classes.
At least there is no such secret or magic prefix to eventnames as "design"resize, which might be used to trigger some code at design time. It's not the easiest thing to do such things at design time.
In some case I put some code into controls, that adopts the control layout at init() to the size of the outer container. That doesn't look good at design time, but works without building a builder. And you don't depend on a builder to resize your controls without the side effect, that the inner structure does not follow the outer size.
There is one other easy way: define some property "code" or whatever you like, then set it's value to [=somefunction()] in the designer, that function then is called even at design time, each time the designer opens that class. You just need to have a SET PROCEDURE setting.
That still does not handle resizing at the resize time, but it may be convenient enough. You might include somefunction() that does nothing at runtime in your exe, while you use somefunction() at designtime, that does something to the controls properties. You might try out =somefunction(THIS) to have an object reference, or you might need to make use of ASELOBJ(), haven't tried that yet, just an idea.
Bye, Olaf.