> -- Илья Ермаков писал(а):
> 1) Почему после Dialog.Update не вызывается Restore. Скажите, а где вы храните link на интерактор? В view.prop.link или в каком-нибудь самопальном поле? Controls.Control в обработчике HandleViewMsg сранивает параметр id NotifyMsg со своим prop.link, и если они совпадают, делает guard check и Views.Update. Другое поле он, естественно, не может проверить, и потому пропустит NotifyMsg "мимо ушей". Можно, конечно, написать свой HandleViewMsg2 для NotifyMsg, но лучше просто хранить ссылку в предназначенном поле.
Никаких специальных полей в моём контроле нет. Доступ к данным я получаю через self.item.GetVal. Связь с данными устанавливаю статически через дизайнер форм. Полагаю, что она хранится там, где положено.

> -- Илья Ермаков писал(а):
> А вот горизонтальный скроллинг для текстов и таблиц обычно вручную не обрабатывается, там просто меняется размер отображения, так проще, т.к. ширина текстов обычно невелика.
И горизонтальная и вертикальная прокрутка у меня реализована "вручную", и работает правильно. Но сами полосы скроллинга появляются только если в окне редактирования формы подвигать размеры отображения слегка. После этого прокрутка работает как надо.

> -- Илья Ермаков писал(а):
> Кстати, не надо забывать и об агрегации как заменителе наследования.  Во многих случаях такое решение не только приемлемо, но и единственно возможно: обернуть объект какого-либо закрытого для наследования типа в свой  - потомок от того же абстрактного типа, что и обернутый, и делегировать часть вызовов обернутому объекту. Может быть, это подошло бы и в вашем случае?
Нет, не подошло бы.  Мне надо заменить логику работы таблицы с её данными. В стандартной таблице данные берутся из фиксированной структуры, состоящей из массивов строк. Это черезчур расточительно по ресурсам, кроме того, надо долго ждать, пока эти данные заполнятся из исходных данных. Надо ведь всё преобразовать в строки, выделить память  т.д.
Я делаю динамическую таблицу, которая получает только данные, отображаемые на экране в данный момент. Т. к. типичное число строк в моей задаче 1.5 -5 миллионов. И колонок 5-10.

> -- Илья Ермаков писал(а):
> А вот Copy-Paste действительно помогает. Если время не терпит, иногда  беру исходный код из стандартного модуля и изменяю в нем только то, что нужно. Вообще, открытые коды ББ здорово помогают, без них разобраться и быстро начать работать было бы гораздо сложнее.
Вот где-то я читал, что Copy-Paste - это любимейший китайский способ сохранения и размножения ошибок