Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Отрисовка OLE объектов при запуске приложения  [new]
webinc
Member

Откуда:
Сообщений: 110
Доброго времени суток!
Есть форма на которой расположен TabControl, на закладках которого расположено порядка 35+ диаграмм в виде OLE объекта MSGraph.Chart.8. Проблема заключается в том что при запуске формы эти диаграммы очень медленно отрисовываются, моргая (на долю секунды появляется рамка объекта, потом исчезает) сквозь TabControl.
Попытка поиграться со свойствами Visible, Enabled, RowSource, UpdateMethod ни к чему не привели. Да, после загрузки формы диаграммы корректно реагируют (становятся невидимые, нередактируемые, пустые и т.п.) но долгая загрузка формы и моргание остается.
Сталкивался кто-нибудь с такой проблемой и можно ли ее решить?
10 окт 19, 14:54    [21991344]     Ответить | Цитировать Сообщить модератору
 Re: Отрисовка OLE объектов при запуске приложения  [new]
Konst_One
Member

Откуда:
Сообщений: 11492
Public Sub EchoOff() 
 
Application.Echo False 
 DoCmd.Hourglass True 

'здесь открывайте свою форму
'или используйте аналогично  при событии активации нужной формы


'когда уже всё загрузилось
 Application.Echo True 
 DoCmd.Hourglass False 
 
End Sub
10 окт 19, 14:59    [21991354]     Ответить | Цитировать Сообщить модератору
 Re: Отрисовка OLE объектов при запуске приложения  [new]
webinc
Member

Откуда:
Сообщений: 110
Konst_One,

К сожалению эта отрисовка происходит уже после открытия формы. OnCurrent происходит до начала отрисовки. Т.е. непонятно куда вставлять
 Application.Echo True 
 DoCmd.Hourglass False 
10 окт 19, 15:14    [21991378]     Ответить | Цитировать Сообщить модератору
 Re: Отрисовка OLE объектов при запуске приложения  [new]
webinc
Member

Откуда:
Сообщений: 110
Konst_One,

В момент отрисовки все контролы доступны и видно как диаграммы заполняются от последней к первой. В идеале хотелось бы сделать эту инициализацию при первом открытии соответствующей закладки чтобы сократить общее время загрузки формы (при открытии отрисовывать диаграммы только первой звкладки) и избавиться моргания.
10 окт 19, 15:30    [21991396]     Ответить | Цитировать Сообщить модератору
 Re: Отрисовка OLE объектов при запуске приложения  [new]
Konst_One
Member

Откуда:
Сообщений: 11492
возможно разве что попробовать смещать содержимое неактивных закладок за пределы видимости экрана, это проблема ассинхронности работы ole-контейнеров
10 окт 19, 15:34    [21991400]     Ответить | Цитировать Сообщить модератору
 Re: Отрисовка OLE объектов при запуске приложения  [new]
webinc
Member

Откуда:
Сообщений: 110
Konst_One,

Повесил отключение отрисовки на OnUpdate последней диаграммы, а включение на первую + флаг на проверку что бы только один раз срабатывало. От мерцания избавило, но скорость загрузки формы увы такая и осталась.
10 окт 19, 15:58    [21991426]     Ответить | Цитировать Сообщить модератору
 Re: Отрисовка OLE объектов при запуске приложения  [new]
Konst_One
Member

Откуда:
Сообщений: 11492
скорость загрузки и не изменится. поразбирайтесь с самими диаграммами, зачем вам столько на одном экране, может стоит показывать по одной ?
10 окт 19, 16:12    [21991439]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить