Ответ 1
Просто добавьте файл rc в свой проект через пункт меню "Проект > Добавить в проект". Это создает строку {$R 'myres.res' 'myres.rc'}
из сообщения, которое Ссылки TOndrej.
Я помню, как некоторое время назад читал статью или статью, предлагая включить файл ресурсов в проект, ссылаясь на файл .rc вместо уже скомпилированного файла .res, чтобы ресурс был построен как часть процесса сборки проекта.
У меня есть файл glyphs.rc, который я компилирую с помощью команды brcc32 glyphs.rc. В моем файле проекта у меня есть инструкция {$ R Glyphs.res}.
Я хотел бы упростить это, изменив его на что-то вроде
{$R Glyphs.rc}
но я не уверен в синтаксисе. Когда я пытаюсь использовать {$R Glyphs.rc}
, я получаю сообщение об ошибке `
[DCC Error] E2161 Error: RLINK32: Unsupported 16bit resource in file "Glyphs.rc".
Этот подход возможен с Delphi 2007?
Просто добавьте файл rc в свой проект через пункт меню "Проект > Добавить в проект". Это создает строку {$R 'myres.res' 'myres.rc'}
из сообщения, которое Ссылки TOndrej.
Линкером могут обрабатывать только файлы res, но вы можете направить компилятор для вызова компилятора ресурсов и скомпилировать rc script для создания res и ссылку, использующую вариацию директивы $R/$RESOURCE.
В вашем случае (Delphi 2007) вам нужно будет только изменить:
{$r glyphs.res}
к
{$r glyphs.res glyphs.rc}
Если это не работает само по себе, попробуйте добавить RC в проект. В разных версиях Delphi вам могут понадобиться одинарные кавычки вокруг имен файлов:
{$r 'glyphs.res' 'glyphs.rc'}
ПРИМЕЧАНИЕ.. Вам все еще нужно идентифицировать файл res, разница в том, что он может дополнительно идентифицировать файл rc скомпилированный для создания требуемого файла res.
Поддержка этого, похоже, подверглась некоторому возиться и в более поздних версиях добавление RC к проекту не всегда кажется "обнаруженным" проектом до тех пор, пока вы не сохранили, не закрыли и не открыли проект (например, я нашел, что это имеет место в XE4, но может также применяться к другим версиям).
Также в некоторых более поздних версиях просто добавление такого объявления $R 'file.res' 'file.rc'
в DPR заставляет диспетчер проекта идентифицировать указанный файл RC как часть проекта, но это не похоже на старые версии. Опять же, часть возиться в этой области кажется.
Я также хотел бы отметить, что XE4 обычно устойчив с точки зрения стабильности, но добавление/удаление файлов RC, казалось, вызывало нарушение доступа при закрытии среды IDE, хотя нормальная стабильность, казалось, восстанавливалась при повторном открытии IDE и проекта, то есть добавление/удаление файлов RC, которые, как представляется, вызывают проблему, а не просто факт наличия файла RC в проекте.
См. пример здесь: "Как создать ресурс PNG?" .
У меня была та же проблема и я узнал что-то новое.
{$R glyphs.res glyphs.rc}
это код для компиляции glyphs.rc в glyphs.res в pre-build. (Работает с Delphi XE4)
Но этот код ТОЛЬКО работает, если он находится в файле *.dpr! Если вы поместите этот код в файл *.pas, как я сделал в первый раз, он будет просто вести себя как {$ R glyphs.res} и не будет компилировать RC файл. Возможно, это ошибка в Delphi.
Я не мог избавиться от mainicon в своем приложении, поэтому я сделал файл trapgate.rc, поместив этот файл в каталог src, используя:
MAINICON icon ".\Icon\MAINICON.ico"
5012 icon ".\Icon\5012.ico"
Затем использовал BRCC32, чтобы сделать из RC файл RES, сделал сборку, и у меня был правильный значок. вы также можете добавить туда больше значков и переключить их, поэтому я добавил строку в файле makeres.bat выглядит следующим образом:
brcc32 folders.rc -fofolders.res
brcc32 main.rc -fomain.res
brcc32 xOutline.rc -foxOutline.res
brcc32 xSpin.rc -foxSpin.res
brcc32 credits.rc -focredits.res
brcc32 licence.rc -folicence.res
brcc32 trapgate.rc -fotrapgate.res <-- this is my icon file
Итак, что бы вы ни делали, даже если вы меняете значок в папке.\значки, конечно, убедитесь, что у него есть правильное имя, например mainicon.ico и 5012.ico
Надеюсь, что это помогло, кто не может изменить значок в самой Delphi 7.
Я попытался сделать это в Delphi 2007, и это не сработало. Я положил строку,
"{$ R glyphs.res glyphs.rc}"
в файле проекта прямо над строкой "{$ R *.res}", которую IDE помещает туда, но когда я добавил файл rc с помощью IDE, он помещал его выше строки "использует", а затем работал.