Попробуйте использовать приведенную ниже FindResModule
функцию для получения ресурсного модуля.
// use fPlaneImage.LoadFromResourceName(FindResModule('IDC_IMG_PLANE'), 'IDC_IMG_PLANE');
function FindResModule(const AResourceName: string): HINST;
var
LModule: PLibModule;
begin
LModule := LibModuleList;
while Assigned(LModule) do
begin
Result := LModule.Instance;
if (Result <> 0) and (FindResource(Result, PChar(AResourceName), RT_RCDATA) <> 0) then
Exit;
LModule := LModule^.Next;
end;
Result := 0;
end;
В случае сбоя, скорее всего, ресурс «устраняется компоновщиком». Это может случиться, например, когда вы создаете свои собственные пакеты, и вы пропустите, чтобы добавить блок с ресурсом в ваш пакет или файл приложения. Просто добавьте блок в раздел uses вашего приложения.
Я не вижу вреда, если вы создадите отдельный пакет для ресурсов. Он должен работать нормально, но на самом деле это не требуется. Только один небольшой намек, пакет BPL не требуется, вы можете упаковать свои ресурсы в DLL