У нас обычно для этого используются динамические контейнеры - все что внутри можно создавать/удалять по команде. Пока руки не дошли.
Как я понимаю, в HiAsm вообще недоработан механизм динамического создания экземпляров компонентов.
Не очень понятно, как это должно выглядеть на уровне схемы.
Текущий вариант - динамический контейнер, где есть массив экземпляров компонентов.
Предполагаю, мог бы быть такой вариант. У каждого компонента (который реализован классом) есть:
- методы doConstruct/doDestroy
- свойство AutoCreate. Если True - компонент работает как обычно. Иначе для создания экземпляра нужно вызвать doConstruct
- событие onConstruct - выдаёт ссылку на созданный экземпляр компонента. Такую ссылку можно присваивать переменным, передавать по схеме.
Вопрос в том, а как работать с экземпляром компонента, ссылка на который находится в переменной. Тогда в компонент можно добавить верхнюю точку типа TargetObj, и тогда при подключенной точке все методы компонента будут работать именно с этим объектом.
Но это опускает автора схемы "на уровень ниже", добавляя много рутинной работы по контролю за созданными объектами, что отвлекает от основной логики программы.
Можно добавить специальный компонент "Ссылка на объект" в форме менеджера. Тогда вместо протяжки связи к точке TargetObj, можно делать аналогичное свойство с привязкой к менеджеру. А точка использовалась бы, например, при работе с массивами объектов.
Ответов: 4628
Рейтинг: 749
|
|||
карма: 26 |
|