Все компоненты, включая потомков TFrame
, должны иметь возможность конструироваться с использованием конструктора, унаследованного от TComponent
. В противном случае они не могут быть использованы должным образом во время разработки. Если для вас приемлемо ограничение времени разработки, вы можете переопределить этот конструктор и вызвать исключение. Это предотвратит размещение компонента на форме во время разработки. Просто предоставьте некоторый другой конструктор, который требует других параметров.
Из-за требований времени разработки все компоненты должны иметь возможность существовать, при этом некоторые или все их свойства по-прежнему имеют значения по умолчанию. Это не означает, что компоненты должны делать полезные вещи, пока они находятся в этом состоянии, но они должны быть в состоянии оставаться в этом состоянии до бесконечности. Например, все должно быть в порядке, чтобы поместить компонент в форму, сохранить форму и закрыть Delphi с намерением возобновить проектирование формы позднее. Компонент должен позволять сохранять и восстанавливать себя, даже если все его свойства еще не настроены для конечного использования.
Мой предпочтительный вариант - применять правила компонента только во время выполнения. Убедитесь, что все свойства установлены в разумные значения, прежде чем разрешить их использование. Вы можете использовать утверждения для обеспечения правильного использования ваших компонентов. Потребители ваших классов будут учиться очень быстро, если они не закончили настраивать ваши компоненты в своих формах.