![]() |
|
Модераторы: Snowy, Alexeis, MetalFan |
![]()
|
|
| AndreyZ53 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 22.8.2008 Репутация: 1 Всего: 2 |
Доброго времени суток дорогие форумчане!
Я обращаюсь с такой проблемой. У меня на форме (главной) на всю ширину и высоту установлен DBGridEh, в котором отображается 30-40 записей. Данная форма у меня прячется в трей, в течение дня. То есть, пользователь открыл с трея, данные обновились, он посмотрел, что необходимо и дальше ее свернул. Вопрос заключается в том, что когда разворачиваем программу из трея, окно программы, где расположен грид, не отображается в течение 1-2 секунд, я прикладываю картинку, как у меня отображается грид. Через 2 секунды, все данные в нем обратно нормально отображаются. Вопрос вот в чем, можно как-то сделать, чтобы при разворачивании из трея, грид сразу нормально отображался с формой, а не ждать 1-2-3-4 секунды (если компьютер работает 1-2 дня, то когда приходишь и разворачиваешь из трея, оно около 3-5 секунд перерисовывает). ![]() Заранее спасибо за какие-то советы, помощь и так далее! --------------------
https://itbases.ru/ |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Судя по картинке это Windows XP, который страшно любит экономить оперативку, даже если ее 8 гигов будет. Как только прога улетает в трей он радостно выгружает ее из оперативы и свопит на диск. При попытке показа возникают ошибки доступа к памяти медленная операция доставания из свопа. Можно поэкспериментировать вот с этой функцией SetProcessWorkingSetSize - она позволяет менять рабочий набор программы (в оперативке) позволяя держать больше данных программы. Можно изначально задать проге побольше оперативки, а можно вместо того, чтобы сразу показывать окно, сначала вызвать SetProcessWorkingSetSize, заставив Windows загрузить бОльший рабочий набор в оперативу, а затем только вызывать у форм функцию Show. После вызова функции Hide можно напротив вызвать SetProcessWorkingSetSize с параметрами -1 -1, т.е. вернуть состояние по умолчанию.
А может в кешировании нуждается не сама прога, а только данные, к которым обращается грид. Т.е. для отрисовки он опрашивает свой источник данных, а источник данных не торопиться. Нет данных нечего рисовать, вот и ждет. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| AndreyZ53 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 22.8.2008 Репутация: 1 Всего: 2 |
Alexeis, Хм, спасибо большое за совет. Действительно, я попробовал воспользоваться Вашей функцией и у меня получилось. Программа почти сразу же отрисовывает мой грид, правда она сейчас больше памяти потребляет, эдак на 10 МБ где-то.
Плюсую Вам, если что-то пойдет не так, я обращусь еще, если не против Вы --------------------
https://itbases.ru/ |
|||
|
||||
![]()
|
| Правила форума "Delphi: Звук, графика и видео" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |