Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

"Заморозить" TWebBrowser на время перезагрузки страницы


Дмитрий С ©   (2010-12-12 11:45:00) 

Суть в чем:
Пользователь нажимает кнопку, после чего необходимо обновить содержимое TWebBrowser-а и прокрутить (scroll) его в то же положение, что он и был.
Делаю так:
- Сохраняю положение скроллов
- Обновляю страницу (на это уходит порядка 1 сек)
- Восстанавливаю положение скроллов.
Что видит пользователь, нажимая на кнопку:
- Старые данные
- Шапку страницы (около 1 сек)
- Новые данные
Что надо, чтобы видел пользователь:
- Старые данные (около 1 сек)
- Новые данные

DHTML не применим, т.к. страница слишком сложная, чтобы ее переделать, используются скрипты с document.writeln для ее построения, с вызовами external.

Вобщем вопрос: можно как нибудь заморозить изображение браузера, а после загрузки показать новое изображение.
Вариант в лоб (показ другого контрола со снимком страницы) пока оставлю напоследок.


sniknik   (2010-12-13 07:58:00) [1]

> скрытием WB
зачем? прятки противоречат
> Что надо, чтобы видел пользователь:
> - Старые данные (около 1 сек)
> - Новые данные

> но при показе или при анлоке WB перерисовывается выполняя, видимо, EraseBackground и моргает.
просто "разлочить" позже.


Дмитрий С   (2010-12-13 07:51:00) [2]


> sniknik ©   (12.12.10 22:35) [4]
>
> а LockWindowUpdate что не работает?

Работает. Странная функция какая-то: Only one window can be locked at a time. Гарантии нет, что кто-нибудь другой не будет ею пользоваться, ведь неизвестно как там этот WebBrowser устроен.


> Медвежонок Пятачок ©   (12.12.10 20:03) [3]
>
> Как раз с аяксом переделка будет минимальной.
> Если взять к примеру прототайп.
> Будет и модальность диалоговых окон и недоступность остальной
> страницы и все что хочешь.

Проблема не в недоступности, это я и сам на js могу сделать. Проблема в том, то скролл страницы "скачет" при обновлении. А переделать то что уже есть на ajax сложно. На это нет времени, ни оплаты.

Вариант с LockWindowUpdate, скрытием WB, перекрытием WB на время работает отлично, но при показе или при анлоке WB перерисовывается выполняя, видимо, EraseBackground и моргает. DoubleBuffered не помогает


sniknik   (2010-12-12 22:35:00) [3]

а LockWindowUpdate что не работает?


Медвежонок Пятачок   (2010-12-12 20:03:00) [4]

Как раз с аяксом переделка будет минимальной.
Если взять к примеру прототайп.
Будет и модальность диалоговых окон и недоступность остальной страницы и все что хочешь.


Дмитрий С   (2010-12-12 19:22:00) [5]


> Сергей М. ©   (12.12.10 16:48) [1]
> Может таки обратить свой взор в сторону AJAX, пока не поздно
> ?

Сам понимаю, что это правильное решение будет, но думаю стоит ли овчинка выделки.

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

В общем, сделал пока через снимок страницы. К тому же и небольшое затемнение удалось сделать.


Сергей М.   (2010-12-12 16:48:00) [6]

Может таки обратить свой взор в сторону AJAX, пока не поздно ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо