Порядок включения ресурсов в исполняемый файл в Delphi 7

Всем доброго времени суток.

Не могу понять, в каком порядке компилятор Delphi 7 упаковывает ресурсы в исполняемый файл?

Использую классическую схему - из текстовых RC-файлов автоматически собираются и подключаются эквивалентные RES. На данный момент имею 3 ресурсных файла, которые подключаются в DPR файле проекта в следующем порядке:

{$R 'res\MAINICON.res' 'res\MAINICON.rc'}       // Главный значок программы в нескольких размерах
{$R 'res\VERSIONINFO.res' 'res\VERSIONINFO.rc'} // Информация о версии
{$R 'res\ICONS.res' 'res\ICONS.rc'}             // Остальные значки

MAINICON.rc:

MAINICON ICON res/image_capture_all_sizes.ico

ICONS.rc:

CAMERA_BW ICON res/camera_bw.ico
CAMERA_FLASH_1 ICON res/camera_flash1.ico
CAMERA_FLASH_2 ICON res/camera_flash2.ico
CAMERA_FLASH_3 ICON res/camera_flash3.ico
CAMERA_FLASH_4 ICON res/camera_flash4.ico
CAMERA_FLASH_5 ICON res/camera_flash5.ico
CAMERA_FLASH_6 ICON res/camera_flash6.ico
CAMERA_FLASH_7 ICON res/camera_flash7.ico

После компиляции вижу, что основным значком программы отображается не MAINICON, а CAMERA_BW.

Открыл EXE-шник программой PE Explorer и вижу, что порядок включения значков в разделе Icon entry получился следующий:

CAMERA_BW
MAINICON 48пкс.
MAINICON 32пкс.
MAINICON 24пкс.
MAINICON 16пкс.
CAMERA_FLASH_5
CAMERA_FLASH_6
CAMERA_FLASH_7
CAMERA_FLASH_1
CAMERA_FLASH_2
CAMERA_FLASH_3
CAMERA_FLASH_4
MAINICON 64пкс.

Порядок в Group icon:

CAMERA_BW
CAMERA_FLASH_1
CAMERA_FLASH_2
CAMERA_FLASH_3
CAMERA_FLASH_4
CAMERA_FLASH_5
CAMERA_FLASH_6
CAMERA_FLASH_7
MAINICON

Где-то вроде читал, что MAINICON всегда должен быть расположен первым. Но насколько я вижу, порядок включения в ресурсных файлах на реальное положение в исполняемом файле никак не влияет.

P.S.: Перейти на более свежую среду Delphi не предлагать.


Ответы (0 шт):