![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
duplicate resources
брат Птибурдукова © (2012-12-04 18:36:00)Есть пакет, contains Form1.pas. В Form1.pas есть стандартная строчка {$R *.dfm}. Есть другой проект, uses Form1.pas и {$R Path\To\Other\Language\Form1.dfm}. При компиляции лезет хинт "[DCC Hint] H2161 Warning: Duplicate resource: Type 10 (RCDATA), ID FORM1; File Path\To\Other\Language\Form1.dfm resource kept; file Main\Form1.dfm resource discarded."
Можно ли как-то явно указать один из dfm использовать, а второй игнорировать? Отключение хинтов/варнингов не предлагать.
Игорь Шевченко (2012-12-05 00:06:00) [1]брат Птибурдукова (04.12.12 23:32) [8]
Если у тебя есть ресурс Form1.dfm в пакете, какое отношение он имеет к Form1.dfm в приложении ?
Код в студию
брат Птибурдукова (2012-12-04 23:41:00) [2]
> Почему не хочешь, обоснуй?
Начальство высказало фи, иных причин нет.
DVM (2012-12-04 23:35:00) [3]
> брат Птибурдукова (04.12.12 23:32) [8]
тебе уже намекали про директивы условной компиляции, почему бы не использовать их? Почему не хочешь, обоснуй?
брат Птибурдукова (2012-12-04 23:32:00) [4]
> Сообщение компилятора (линкера) выдается только в том случае,
> если два ресурса пытаются с одним именем попасть в один
> модуль.
Ну так и есть: в *.dpr указан {$R path\Form1.dfm}, а в соответствующем Form1.pas — {$R *.dfm}, который берёт дфм, лежащую рядом с *.pas, а не по указанному в дпр пути.
Игорь Шевченко (2012-12-04 21:01:00) [5]
> мне нужна не та дфм, что лежит рядом с паскалевским файлом,
> а другая.
Не понял твоей проблемы. Пакет это обычная DLL со своими поименованными ресурсами. Твое приложение это обычный EXEшник со своими поименованными ресурсами. Имена ресурсов не пересекаются. (Ресурс с именем MAINICON есть в пакете, например, и в приложении, ресурс PACKAGEINFO есть в каждом пакете).
Сообщение компилятора (линкера) выдается только в том случае, если два ресурса пытаются с одним именем попасть в один модуль.
брат Птибурдукова (2012-12-04 19:34:00) [6]
> Игорь Шевченко © (04.12.12 19:18) [4]
мне нужна не та дфм, что лежит рядом с паскалевским файлом, а другая.
Плохиш (2012-12-04 19:21:00) [7]
> брат Птибурдукова (04.12.12 19:15) [3]
Если погуглить, то другого решения не предлагается.
Игорь Шевченко (2012-12-04 19:18:00) [8]
> Есть другой проект, uses Form1.pas и {$R Path\To\Other\Language\Form1.
> dfm}.
убрать строку {$R
брат Птибурдукова (2012-12-04 19:15:00) [9]Пока сделалось так:
В Form1.pas: //{$R *.dfm}
В Package.dpk: {$R Main\Form1.dfm}
В Project1.dpr: {$R Path\To\Other\Language\Form1.dfm}
Хинтов-варнингов нет, но ищется менее идиотское решение.
брат Птибурдукова (2012-12-04 18:53:00) [10]Имелось в виду — ифдефом обрамить {$R *.dfm} в Form1.pas? Не подойдёт.
Юрий Зотов (2012-12-04 18:50:00) [11]IFDEF ?