|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
06.08.2010, 21:49 | #1 |
Форумчанин
Регистрация: 15.11.2007
Сообщений: 229
|
Прогрузить Image в память
Добрый день!
Ситуация следующая: Есть Panel, на ней несколько Image'ев, некоторые имеют координату больше чем Panel.Width, т.е. находятся вне зоны видимости. Затем эти Image выводятся в зону видимости, т.е. становятся видны. И в этот момент, перехода картинки из невидимой зоны, в зону видимости программа подвисает на некоторое время (да картинки 1024*768 ~100 мс), всё бы ничего страшного, но картинок может быть много, и подвисание начинает раздражать. После того как Image "прогрузился" его можно убрать в зону невидимости, вывести опять и "подвисать" не будет. Из этого следует вопрос. Как этот Image прогрузить?
Компьютер не подчиняется законам физики: глюки возникают из ниоткуда, файлы исчезают в никуда, а вес измеряется в метрах.
|
06.08.2010, 22:02 | #2 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
Хм.. Сложно сказать, мне кажется к этим вещам у вас доступа нет, это уже система у себя кэширует скорее всего. Но можно попробовать сделать имиджу Refrresh или Repaint, хотя вряд-ли поможет.
Можно решить вопрос иначе, юзать PaintBox, никуда его не двигать, а только обновлять в нем изображение, копируя откуда нужно. Но тут конечно, все вручную, такого удобства, как с имиджами на панели, не будет.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
06.08.2010, 23:10 | #3 |
Форумчанин
Регистрация: 15.11.2007
Сообщений: 229
|
Refresh, Repaint, Update не помогает. Отсылать Image'у сообщение WM_PAINT и прочие тоже не помогает.
Я всё же думаю, и надеюсь что доступ к этому есть, ведь когда картинка показывается она кэшируется, думаю это делает сам Image, а не система, по крайней мере надеюсь на это Удобство тут не так важно, важно чтобы работало. Думаете что если использовать PaintBox, то тормозить не будет? Каким образом тогда загружать картинки? Как TImage или как TPicture? Мне всё же кажется что при отрисовке на PaintBox всё равно будет происходить какая-то прогрузка.
Компьютер не подчиняется законам физики: глюки возникают из ниоткуда, файлы исчезают в никуда, а вес измеряется в метрах.
|
07.08.2010, 02:00 | #4 | ||
Студент, не
Старожил
Регистрация: 29.01.2009
Сообщений: 2,067
|
Цитата:
Цитата:
Form1.DoubleBuffered:=True; Panel1.DoubleBuffered:=True; и.т.д. - пробовали?
I am the First of Cyber Evolution...
I am the First to Program your Future... |
||
07.08.2010, 02:15 | #5 | |
Форумчанин
Регистрация: 15.11.2007
Сообщений: 229
|
Нет, оно не в памяти.
Цитата:
У Panel свойство DoubleBuffered = True. Форма здесь не причём, она роли не играет. Я думаю есть некая функция на API для прогрузки самой картинки в память. Думаю нужно копать в эту сторону. Но что именно делать я не знаю, где эти API функции и прочее. Может быть кто-нибудь знает такую функцию или как примерно найти выход?
Компьютер не подчиняется законам физики: глюки возникают из ниоткуда, файлы исчезают в никуда, а вес измеряется в метрах.
Последний раз редактировалось Stilet; 09.08.2010 в 08:25. |
|
07.08.2010, 12:34 | #6 |
Форумчанин
Регистрация: 03.02.2010
Сообщений: 178
|
TImage всегда в памяти, изображение может загружаться из разных мест, но тоже в память и там оно и остается. Опиши нормально задачу, что ты хочешь получить и как ты это делаешь сейчас, после этого можно будет думать где и кто тормозит.
|
07.08.2010, 12:55 | #7 |
Пользователь
Регистрация: 22.04.2010
Сообщений: 19
|
попробуй загрузить изображение в TBitmap (или TJpeg, смотря что у тебя за формат), а потом нарисовать его в паинтбоксе. При перемещении перерисовывай на новое место на паинтбоксе. Поидее не должно томозить
Помогу с bass.dll новичкам.
ICQ: 588911177 |
08.08.2010, 09:43 | #8 | ||
Форумчанин
Регистрация: 15.11.2007
Сообщений: 229
|
Цитата:
Весь процесс я описал в первом посте. Если что-то не понятно, то спрашивайте. Или переписать? Цитата:
Компьютер не подчиняется законам физики: глюки возникают из ниоткуда, файлы исчезают в никуда, а вес измеряется в метрах.
|
||
08.08.2010, 11:09 | #9 | ||||||
Форумчанин
Регистрация: 03.02.2010
Сообщений: 178
|
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
||||||
08.08.2010, 19:59 | #10 |
Форумчанин
Регистрация: 15.11.2007
Сообщений: 229
|
2 x128:
Код:
Компьютер не подчиняется законам физики: глюки возникают из ниоткуда, файлы исчезают в никуда, а вес измеряется в метрах.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Image одной формы = Image другой формы | DimR | Microsoft Office Excel | 2 | 21.04.2010 23:08 |
динамическая память | zhenya.ya | Помощь студентам | 2 | 24.02.2010 20:58 |
Память | Ghennadiy | Общие вопросы Delphi | 9 | 25.08.2009 09:23 |
Вопрос по Image (скачанная картинка не хочет выводиться в Image) | Radnor | Мультимедиа в Delphi | 2 | 06.07.2009 02:20 |
Память процесса | BlackOmen | Общие вопросы Delphi | 3 | 24.10.2008 20:16 |