Создать TImageList, указав только пути - PullRequest
1 голос
/ 25 июня 2009

В Delphi 2007 изображения загружаются в TImageList во время разработки. Это создает следующую проблему:

  • У меня есть папка с графикой, которую я использую в своем приложении
  • Всякий раз, когда я хочу изменить, скажем, значок «сохранить», я должен
    1. Изменить изображение в папке (для моих собственных целей)
    2. Итерация по всем спискам TImageList в приложении
    3. Изменить изображение в TImageList

Есть ли способ (компонент, сценарий компиляции, ...) автоматически выполнять шаги 2 и 3, то есть указывать только пути графики во время разработки, создавая зависимость от реальных графических файлов?

Ответы [ 3 ]

2 голосов
/ 14 августа 2009

Вы можете создать потомка TImageList и добавить туда такую ​​логику.

Поскольку компоненты, ссылающиеся на изображения внутри TImageList, делают это по индексу, было бы проще, чтобы ваш потомок имел свойство ImagePaths типа TStrings, отформатированное так:

#=Filename

И, возможно, также добавить свойство BasePath типа string.

Затем, после загрузки этого компонента, он может автоматически перезагрузить эти изображения в память.

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

- Йерун

1 голос
/ 25 июня 2009

Классы никогда не полностью компилируются. Классы времени разработки тоже передаются из ресурсов.

0 голосов
/ 07 мая 2015

Я загружаю изображения в TImagelist во время выполнения. По этой причине я не назначаю изображения во время разработки. Все они добавляются в качестве ресурса в исполняемый файл, и я загружаю их оттуда во время выполнения. Это также означает, что изображения могут быть изменены без перекомпиляции exe.

...