2) Исправить коды, чтобы порядок не имел значения - не представляется правильным решением.
Поразмысливши за рюмкой чая, прихожу к такому заключению: в природе существуют, видимо, два типа свойств.
Те, которые являются фактически аргументами конструктора, и без них немыслимо само создание объекта
И те, которые являются действительно свойствами, до создания объекта они бессмысленны, и действительно придают объекту некие новые качества
И тут мне представляется, что как раз нельзя поменять местами установку св-в именно этих разных типов
А о том, чтобы порядок не имел значения для однотипных - можно говорить, наверное
3) Логично было бы делать конструирование кодов в этом аспекте примерно так
#pas
Obj := THiObj.Create(Control, Arg1, Arg2);
Obj.prop1 := Prop1;
Obj.prop2 := Prop2;
Obj.prop3 := Prop3;
....
Следовательно, не может предоставить эту информацию для CodeGen
Можно попробовать более универсальный подход, в котором конструктор нашего объекта создает лишь контейнер для аргументов, а "настоящий" конструктор сосредоточен в некотором методе Init
#pas
Obj := THiObj.Create;
Obj.Control := Control;
Obj.Arg1 := Arg1;
Obj.Arg1 := Arg2;
Init;
....
Obj.prop1 := Prop1;
Obj.prop2 := Prop2;
Obj.prop3 := Prop3;
....
Собственно, и "создание линков для всей схемы" можно присоединить к этой второй секции
И код для мультика можно сформировать так же: есть код конструктора, устанавливающий "аргументы" для всей схемы - первая секция, в которой "настоящие конструкторы" еще не запускались
Есть метод Init, который эти "настоящие конструкторы" запускает, и устанавливает все св-ва
Безусловно, присвоения тех аргументов или св-в, которые являются внешними - в кодах мультика опущены.
И тогда инициализацию мультика можно сделать по схеме, как и для штатного элемента, как показано выше.
Вот и возникает ясность с внесением изменений в интерфейс взаимодействия между средой и пакетом
Среда должна рассказать для CodeGen не только о значении интерфейсного св-ва, но и сообщить его некие атрибуты
Почему я смешал первые два вопрос в одну кучку...
Потому-что от второго не было бы никакого результата, без техники настоящего поста - мы все равно не смогли бы соблюсти идеологию KOL и получить 30К на пустую форму
А если оставить только первую позицию - результат какой-то будет, только фиг кто его увидит, пока второй пункт не присовокупим
P.S. На всякий случай, предвидя ссылки на всезнающий FTCG: ничего он не знает, если мы ему об этом не скажем.
Если некий скрипт (типа pcontrol.hws из Дельфи-2) разбирается с сотней св-в контрола, то он и понятия не имеет об особенностях конкретного элемента: что хоть в св-ве и стоит какой-нибудь clRed, ничего не надо устанавливать
Типа, мало ли чего на заборе пишут.