Delphi - Хотите автоматизированный способ поддерживать связь между файлом исходного изображения и изображениями в моем проекте

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

Скажем, у меня есть различные статические изображения в моем проекте - фоны, глифы кнопок на панели инструментов, различные кусочки глазного леденца и т. Д. У меня есть соответствующая коллекция файлов PNG/BMP и т. Д., Которые я получил, скопировал или создал, и они были загружены в компоненты изображения во время разработки.

Одна из проблем заключается в том, что, по-видимому, нет автоматического способа узнать, через три месяца, какой файл исходного изображения использовался для загрузки компонента изображения. Это становится большей проблемой, когда вам нужно отредактировать одно или несколько изображений.

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

Является ли создание ресурса со всеми изображениями, связанными с ним, и добавление кода для загрузки компонентов изображения при запуске, жизнеспособным путем? У других есть эта проблема, и как вы справляетесь с ней?

3 ответа

Решение

Ни один из стандартных компонентов не поддерживает то, что вы просите. Тем не менее, компонент Thany TPngImageList поддерживает возможность связать пользовательскую строку с каждым изображением в списке.

В противном случае, чтобы узнать, какому файлу принадлежит какой образ, я бы предложил использовать файл.rc для компиляции внешних файлов изображений в ресурсы приложения во время компиляции, а затем вы можете динамически загружать ресурсы изображений в ваши компоненты во время выполнения. а не во время разработки. Таким образом, вы можете управлять файлами изображений по своему усмотрению. Когда вы изменяете файл, он автоматически будет связан с приложением при следующей компиляции.

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

Я загружаю изображения из файлов ico, заполняю список изображений и затем использую его в своем виртуальном дереве строк для различных узлов. Легко изменить ICO файлы. /Mikael

Другие вопросы по тегам