Как можно динамически менять значение EditWindowUSI в зависимости от выделенной записи в реестре?

Нравится

5 комментариев

Обычно EditWindowUSI - это атрибут, соответственно Вы можете его переприсвоить в зависимости от необходимых условий.

Очень обширный и объясняющий ответ....
Атрибуты на то и есть, что из можно читать и изменять.

Вопрос в другом, как динамически его менять при переходу по записям реестра. Как корректно сделать это.

При переходе по записям реестра генерируется событие OnDatasetAfterPositionChange даталинка dlData. В обработчике этого события нужно прописать логику определения, какая именно запись выбрана (в обработчике можно напрямую обращаться к полям датасета Dataset.Values('...')), а затем прописать необходимый USI окна редактирования в свойство EditWindowUSI объекта базового реестра BaseGridArea через присвоение BaseGridArea.EditWindowUSI = 'wnd_YourWndEdit'

Я уже сдела похожим образов, только не BaseGridArea.EditWindowUSI, а просто Attributes("EditWindow.USI") = '...'

Возможно Ваш вариант также рабочий, не проверял. Просто при отображении окна редактирования (а это делается в базовых скриптах) используется BaseGridArea.EditWindowUSI, поэтому я его попытался изменить во время выполнения, проверил, что окно действительно подменяется, а затем порекомендовал Вам такой путь решения.

Показать все комментарии