Три компонента, работающие вместе:
* CompA, потомок TComponent, компонент mastermind, который знает много вещей и связывает их вместе
* CompB, потомок TComponent, добывает некоторые данные из своего CompA и обрабатывает их.Может, помимо прочего, предоставлять CompC данные для представления
- Имеет опубликованное свойство типа CompA
* CompC, потомок TComponent, поверхность рисования потомка TFrame, которую можно установить во время разработки, чтобы использовать CompB в качестве поставщика данных
- Имеет опубликованное свойство типа CompA
- Имеет опубликованное свойство типа CompB
Мне кажется, я помню, что прочитал, хотя не могу указать, где, что движок Delphi для потоковой передачи читает все компоненты из.dfm и строит граф зависимостей.Этот график затем используется для создания всех компонентов в правильном порядке.Для перечисленных компонентов это должен быть сначала CompA (поскольку он не использует ни один из других), затем CompB (он использует CompA и должен быть создан после) и, наконец, CompC, поскольку он обладает свойствами обоих других типов компонентов.
Этого не происходит.CompC создается до CompB.Если я изменить порядок в файле .dfm с помощью текстового редактора, он работает.Значения свойств не используются ни в каких конструкторах, только в загруженных процедурах.Но действительно ли должен быть способ заставить его работать независимо от порядка компонентов в dfm?
Я уже два дня бьюсь головой об стену, мне нужен кто-то, кто скажет мне, какиеКлючевое слово, которое я забыл, или какая у меня ошибка в дизайне.