В событиях контролов нет событий, связанных с изменением данных в DataSet. В событиях DataSet нет очевидной связи с формой(Свойства у DataSet не содержат ссылок на форму или я их не нашел). Как при событие изменения DataSet, менять свойства контролов, создавать новые контролы? По факту наверное нужен путь в событие DataSet: DataSet.xxxx.xxxx.xxxx.Window или способ создать на эллементе событие "change".
Краткий итог: Control - dlData - Dataset. Задача решаеться через событие dlDataOnDatasetDataChange.
Нравится
В окне есть невизуальный компонент dlData, используйте его события. В обработчиках можно напрямую обращаться к самой форме или ее элементам.
к полю привязывается объект DataField, у которого есть ParentDataset.
При изменении DataField срабатывает Dataset/OnDatasetDataChange, которое вызывает (перед или после выполнения - так и не разорался) DatasetLink/OnDatasetDataChange. А DatasetLink является объектом окна - вот вам и связь
"Александр Кудряшов" написал:В окне есть невизуальный компонент dlData, используйте его события. В обработчиках можно напрямую обращаться к самой форме или ее элементам.
Такое обращение не работает.
Непосредственное обращение к эллементам работает. Спасибо.
используйте
var q = Self
или
var w = dlData.ParentWindow
"Андросов Дмитрий" написал:используйте
var q = Self
или
var w = dlData.ParentWindow
Спасибо. Все таки странно, что на котролах нет DataChange, а нужно лезть dlData, в котором общие события, там ставить анализ, что приходит и дописывать уже нужный код.
"Борисов Михаил Евгеньевич" написал:Все таки странно, что на котролах нет DataChange
В обычных, не привязанных к БД, есть.
Возможно, события нет ещё и потому, что к одному полю может быть привязано больше одного визуального компонента.
Так как датаконтролы связаны с полем датасета, а у датасета в свою очередь можно определить обработчик события OnDatasetDataChange – для датаконтролов не выносили событие OnChange (чтобы не дублировать).
У простых контролов нет связки с датасетом, поэтому событие OnChange вынесено.
"Борисов Михаил Евгеньевич" написал:Control - dlData - Dataset
Window - Control - DataField - Dataset - dlData - Window
или
Control - Window - dlData - Dataset - DataField
"Андросов Дмитрий" написал:Борисов Михаил Евгеньевич пишет:
Control - dlData - Dataset
Window - Control - DataField - Dataset - dlData - Window
или
Control - Window - dlData - Dataset - DataField
Если говорить о доступе, то первое неверно, я так понял. Если говорить о последовательности событий, то хз, уже сто раз писали, что нужна табличка с цепочками событий с основными задачами которые в них решаются(но по названиям все же очевидно).
"Борисов Михаил Евгеньевич" написал:Если говорить о доступе, то первое неверно, я так понял
ну да :exclaim:
Window - Control - DataField - Dataset
"Борисов Михаил Евгеньевич" написал:Если говорить о последовательности событий, то хз, уже сто раз писали, что нужна табличка с цепочками событий с основными задачами которые в них решаются(но по названиям все же очевидно).
В SDK приведены основные события элементов и их описание. Например: http://www.terrasoft.ru/sdk/!!MEMBERTYPE_Methods_IDatasetEvents.html
"Андросов Дмитрий" написал:Борисов Михаил Евгеньевич пишет:
Если говорить о доступе, то первое неверно, я так понял
ну да
Window - Control - DataField - Dataset
выяснили же, что с dlDataOnDatasetDataChange можно непосредственно вызывать контролы по имени. Цепочка Window - Control - DataField - Dataset - dlData говорит о том что вам нужно обращаться к Dataset что бы обратиться к Control.
"Бондарь Наталия" написал:Борисов Михаил Евгеньевич пишет:
Если говорить о последовательности событий, то хз, уже сто раз писали, что нужна табличка с цепочками событий с основными задачами которые в них решаются(но по названиям все же очевидно).
В SDK приведены основные события элементов и их описание. Например: http://www.terrasoft.ru/sdk/!!MEMBERTYPE_Methods_IDatasetEvents.html
Такую документированность видел только в MIT проектах(бесплатных). За образец, считаю MSDN.
Михаил Евгеньевич, Ваше пожелание передано техническим писателям и будет рассмотрено при формировании последующей документации.