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

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

Ошибка «Duplicate resource»


Страницы:   1 2

Kolan ©   (2009-04-08 11:42:00) 

Здравствуйте!

Не могу понять в чем дело. При компиляции компилятор (D2007) выдает ошибку, а точнее две:

[DCC Error] E2161 Warning: Duplicate resource:  Type 14 (ICON GROUP), ID MAINICON; File D:\MyWork\Delphi\KFreGrafWorkingCopy\SoftWare\Source\KFreGrafMainForm\KFreGraf.r es resource kept; file D:\MyWork\Delphi\KFreGrafWorkingCopy\SoftWare\Source\KFreGrafMainForm\KFreGraf.r es resource discarded.

[DCC Error] E2161 Warning: Duplicate resource:  Type 16 (VERSIONINFO), ID 1; File D:\MyWork\Delphi\KFreGrafWorkingCopy\SoftWare\Source\KFreGrafMainForm\KFreGraf.r es resource kept; file D:\MyWork\Delphi\KFreGrafWorkingCopy\SoftWare\Source\KFreGrafMainForm\KFreGraf.r es resource discarded.


Странность в том, что, во-первых, как обычно, раньше все работало, во-вторых, с ресурсами я никаких манипуляций в коде не делаю.

Да и ошибка какая-то дурацкая. С одной стороны файл KFreGraf.res kept, а с другой (он же) — discarded. Как так?

Более того, если совсем удалить KFreGraf.resи сделать билд, то все равно ошибка возникает.

Если в меню Project → Options → Version Infoубрать галочку Include version information in project, то вторая ошибка ( VERSIONINFO) исчезает.

Код dpr такой:
program KFreGraf;

uses
 Forms,
...

{$R *.res}

begin
 Application.Initialize;
 Application.Title := 'KFreGraf';
 Application.HelpFile := 'E:\MyWork\Delphi\KFreGrafProject\SoftWare\Source\Binary\Help\KFreGrafHelp.hlp';
 Application.CreateForm(TMainForm, MainForm);
...
 Application.CreateForm(TModelBuilderForm, ModelBuilderForm);
 Application.Run;
end.


Еще (вдруг это важно), раньше у меня в этом проекте было куча БПЛ-пакетов. И в один прекрасный момент при открытии (именно при открытии в среде)  всей этой группы с проектов стало появляться сообщение про Duplicate resource, но в виде простого модального окна. Окно с сообщением об ошибки закрывалось, и проект компилировался нормально.
Сейчас я убрал все пакеты и, возможно, это та самая старая проблема, которая была с пакетами.

Итого
1. Что за дурацкая формулировка ошибки, что это значит?
2. Почему возникает ошибка?
3. Как избавиться от ошибки?


Игорь Шевченко   (2009-04-08 17:40:00) [1]


> Ну вот, а то все стьюпидити, да стьюпидити :)


а ты не только на свой счет принимай, мало ли у кого stupidity, пиши в Codegear, заодно узнаешь


Kolan   (2009-04-08 16:00:00) [2]

Ну вот, а то все стьюпидити, да стьюпидити :)


Игорь Шевченко   (2009-04-08 15:43:00) [3]


>
> Эта запись ...t.pas' {$R *.res}, там уже была. Руками её
> туда никто не вставлял.


напиши комплейн в Codegear


Kolan   (2009-04-08 15:37:00) [4]

Так я их и не дублировал. С чего вы это взяли?

Эта запись ...t.pas' {$R *.res},там уже была. Руками её туда никто не вставлял.


Anatoly Podgoretsky   (2009-04-08 15:28:00) [5]

> Kolan  (08.04.2009 15:16:19)  [19]

Ты все никак не можешь понять, что эти ресурсы делает компилятор и не надо их дублировать, плохо кончится, точь в точь как у тебя.


Kolan   (2009-04-08 15:16:00) [6]

А если я скажу, что руками dpr не трогал, то можно будет attribute?


Anatoly Podgoretsky   (2009-04-08 14:32:00) [7]

Kolan ©   (08.04.09 13:55) [16]
Правильно добавляет, неправильно добавляешь ты - нафига предопределеные ресурсы добавляешь?


Игорь Шевченко   (2009-04-08 14:31:00) [8]


> Я думаю, что это Делфи неверно добавил модули в юзис дпр'а
> новый модуль


Never attribute to malice which can be adequately explained by stupidity


Kolan   (2009-04-08 13:55:00) [9]

Я думаю, что это Делфи неверно добавил модули в юзис дпр'а новый модуль. Видимо он {$R *.res} забыл сдвинуть вниз, дописав новый модуль после запятой и добавив новый {$R *.res}.


Anatoly Podgoretsky   (2009-04-08 13:46:00) [10]

Конечно помогло, ведь ты удалил дубли ресурсов, но может кроме дублей ты удалил и что ни будь нужное.


Kolan   (2009-04-08 13:37:00) [11]

*.rc тоже нет, а
KFreGrafStartUpColleagueUnit in '..\KFreGrafStartUpColleague\KFreGrafStartUpColleagueUnit.pas' {$R *.res},
я удалил и помогло.


brother   (2009-04-08 13:19:00) [12]

[10] я о другом, ну да ладно)


Anatoly Podgoretsky   (2009-04-08 13:10:00) [13]

> Игорь Шевченко  (08.04.2009 12:56:08)  [8]

Я даже думаю, что ты не добавлял.


Anatoly Podgoretsky   (2009-04-08 13:09:00) [14]

> Kolan  (08.04.2009 13:02:09)  [9]

не .r а .rc
И строку в .dpr не трожь.


Anatoly Podgoretsky   (2009-04-08 13:07:00) [15]

> brother  (08.04.2009 12:24:05)  [5]

Вот это самое оно не стоит трогать, да и бесполезно, а удалять надо из указаного файла.
Тоже мне надумал, давать ресурсами зарезервированые имена.


Kolan   (2009-04-08 13:02:00) [16]


> искать в файлах *.pas строки {$R имя_ресурса

Сделал поиск во всех файлах проекта {$R. И оказалось, что в dpr, в юзисах написано:

 KROMBuilderHistoryManager in '..\KFreGrafSimpleReportColleague\KROMBuilderHistoryManager.pas',
 KFreGrafStartUpController in '..\KFreGrafStartUpColleague\KFreGrafStartUpController.pas',
 KFreGrafStartUpColleagueUnit in '..\KFreGrafStartUpColleague\KFreGrafStartUpColleagueUnit.pas' {$R *.res},
 KFreGrafSystemControllers in '..\KFreGrafSystemControllerColleague\KFreGrafSystemControllers.pas',
 KFreGrafDeviceAddForm in '..\KFreGrafSystemControllerColleague\KFreGrafDeviceAddForm.pas' {DeviceAddForm},
...
 KFreGrafModelBuilderColleagueUnit in '..\KFreGrafModelBuilderColleague\KFreGrafModelBuilderColleagueUnit.pas',
 KFreGrafROMBurnColleagueUnit in '..\KFreGrafROMBurnColleague\KFreGrafROMBurnColleagueUnit.pas';

{$R *.res}



Как оно туда затисалось — не знаю, но думаю, что это Делфи сам...

Благодарю — скомпилилось.

Анатолий, а KFreGraf.r и вообще *.r-файлов в коде проекта нет.


Игорь Шевченко   (2009-04-08 12:56:00) [17]

Anatoly Podgoretsky ©   (08.04.09 12:28) [6]

Мне ничего не надо убирать, я уже все убрал :)


Anatoly Podgoretsky   (2009-04-08 12:28:00) [18]

> Kolan  (08.04.2009 12:08:02)  [2]

Из KFreGraf.r они взялись.


Anatoly Podgoretsky   (2009-04-08 12:28:00) [19]

> Игорь Шевченко  (08.04.2009 12:03:01)  [1]

Убирать надо файл KFreGraf.r - ну или как минимум эти два ресурса из него.


brother   (2009-04-08 12:24:00) [20]

> MAINICON

ищи pas, где вероятнее всего может быть res c MAINICON
зы [4] самое оно ;)


Страницы:   1 2

Наверх

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