|
0 / 0 / 0
Регистрация: 03.02.2013
Сообщений: 104
|
||||||
MS Access Загрузка изображений28.12.2023, 11:53. Показов 1166. Ответов 16
Метки нет (Все метки)
Здравствуйте! Помогите пожалуйста чем сможете. Есть база данных acsess. Есть таблицы Exponat м Images. Один экспонат имеет много изображении. Изображение загружаю через OpenDialog связывая по id и exponatid (таблица Images). А изображений каждого экспоната показываю при клике dbgrid в panel. Теперь есть одна большая проблема:-(. Изображений долго загружается в Panel. Как то можно ли решить эту проблему. Заренее большое всем спасибо
0
|
||||||
| 28.12.2023, 11:53 | |
|
Ответы с готовыми решениями:
16
Загрузка/Отображение изображений в БД Загрузка Изображений В Image Загрузка изображений из компьютера |
|
|
|
| 28.12.2023, 13:29 | |
|
в приведенном коде так и написано
но загрузка с диска тоже не бесплатная хочется теперь узнать - а "долго" - это сколько конкретно? вряд ли у вас два десятка картинок грузятся с диска? а если 2-3, то даже на обычном HDD это не должно быть хоть какой-то проблемой
0
|
|
|
820 / 435 / 38
Регистрация: 05.05.2022
Сообщений: 2,996
|
|
| 28.12.2023, 14:50 | |
|
Долго - это сколько? С винта jpg размером мегов в 5 будет загружаться заметное время даже в программе-просмотровщике, при этом они могут визуально "ускорять" загрузку, сначала грузя в грубом виде, а потом нормально сглаживая.
У меня есть подозрение, что там просто большие файлы, которые грузятся в превью 100х100. Тогда надо делать превьюшки мелкие, как оно везде делается. В общем пишите какие файлы, сколько их. Как время работы соотносится с временем работы прог, вроде Fast Stone ImageViewer или ACDSee (если она жива).
0
|
|
|
0 / 0 / 0
Регистрация: 03.02.2013
Сообщений: 104
|
|
| 28.12.2023, 17:23 [ТС] | |
|
Разрешение фотографии 1920*1100. Размер файла 1 мб. В каждом экспонате по 10 фотографий максимум. До загрузки всех фотографий ушло где то 2 минуты (это только когда выбираю один экспонат). При этом программа зависает до загрузки всех фотографий.
0
|
|
|
820 / 435 / 38
Регистрация: 05.05.2022
Сообщений: 2,996
|
|
| 28.12.2023, 18:19 | |
|
Тогда надо подключать юнит Diagnostics и использовать TStopwatch для замеров, где именно тормозит. Ну или хотя бы GetTickCount, при таком времени загрузки ее точность достаточна.
Неплохо бы еще проверить линейность времени загрузки от количества данных. Вдруг где-то квадратичная зависимость есть. Но мне уже не нравится, что используется фильтр. Фильтр - это хорошая штука для быстрой фильтрации уже загруженных небольших наборов данных, но накладывать его надо уже поверх выбранного Select'ом с условием.
0
|
|
|
184 / 37 / 8
Регистрация: 14.04.2019
Сообщений: 238
|
|
| 28.12.2023, 21:22 | |
|
Вообще-то мне кажется, что TPanel обычно используется в других целях
Попробуйте просто один TImage на форме. Будет тормозить? А если 10 раз подряд то же изображение грузить?
0
|
|
|
0 / 0 / 0
Регистрация: 03.02.2013
Сообщений: 104
|
|
| 28.12.2023, 21:50 [ТС] | |
|
Тогда надо подключать юнит Diagnostics и использовать TStopwatch для замеров, где именно тормозит. Ну или хотя бы GetTickCount, при таком времени загрузки ее точность достаточна.
Неплохо бы еще проверить линейность времени загрузки от количества данных. Вдруг где-то квадратичная зависимость есть. Я не такой знаток. Если честно нечего не понял что все это значит ![]() Добавлено через 2 минуты Попробуйте просто один TImage на форме. Будет тормозить? А если 10 раз подряд то же изображение грузить? 1 фото с размером 1,1 мб загружается быстро. А если фото с таким же размером 7 шт тогда уже надо ждать где то секундов 30.
0
|
|
|
820 / 435 / 38
Регистрация: 05.05.2022
Сообщений: 2,996
|
|||||||
| 28.12.2023, 22:40 | |||||||
|
Измерение времени выполнения участков кода. GetTickCount возвращает число миллисекунд с запуска компа, ее точность 16 мс. Для данной задачи достаточно.
0
|
|||||||
|
2 / 2 / 0
Регистрация: 11.09.2023
Сообщений: 193
|
|||||||||||
| 29.12.2023, 13:45 | |||||||||||
|
Предлагаю начать с малого засунть ShowMeesage сюда:
Если 1 и соответвенно сколлько фоток то реально искать проблему в загрузке картинок...
0
|
|||||||||||
|
|
|
| 29.12.2023, 14:01 | |
|
чувствую уверенный стиль php и бейсика))
а вот в делфи есть дебаггер и можно вместо showMessage поставить breakpoint https://habrahabr.ru/post/178007/
0
|
|
|
820 / 435 / 38
Регистрация: 05.05.2022
Сообщений: 2,996
|
|
| 29.12.2023, 14:21 | |
|
А кто-то меня еще лечил, что не надо использовать цикл до Query.RecordCount-1.
0
|
|
|
820 / 435 / 38
Регистрация: 05.05.2022
Сообщений: 2,996
|
|
| 10.01.2024, 15:06 | |
|
А я тут в силу собственного долбодятелства нарвался на ситуацию, когда у меня показ картинки был в AfterScroll датасета, при этом у меня не хватило мозгов понять сразу, при каких еще условиях AfterScroll может срабатывать, ну так штук 80 вызовов на небольшом наборе данных, а т. к. у меня есть сортировка на датасете, то чтобы она корректно работала, нужно пройти по нему и посчитать вычислимые\лукап поля (для нескольких десятков-сотен строк это фигня вопрос) заранее. Пришлось добавлять проверку на нужность вывода картинки в AfterScroll.
И у ТСа может быть что-то похожее.
0
|
|
|
|
|
| 10.01.2024, 16:50 | |
|
я для таких случаев использую модель отложенного показа
запускаю таймер например на 500 мсек, картинка будет выведена (или любое другое действие сработать) только в обработчике таймера если за это время произойдет новый скролл, то таймер каждый раз перезапускается если не произойдет, то через 500 мсек картинка будет выведена и таймер отключен
1
|
|
|
Модератор
4134 / 2349 / 807
Регистрация: 15.11.2015
Сообщений: 9,378
|
|
| 11.01.2024, 09:43 | |
|
Я делал таймер на 500 мс, но не стал его перезапускать при каждом изменении. Пи изменении настроек делаю
Timer.Enabled := true, тогда, если он уже запущен, то ничего не происходит. И каждые 500 мс изображение обновляется, даже если без остановки крутить настройки.
0
|
|
| 11.01.2024, 09:43 | |
|
Помогаю со студенческими работами здесь
17
Загрузка изображений в оперативную память
Загрузка изображений из каталога в ImageList
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|