Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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 ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо