[Error] WARNING. Duplicate resource(s):
[Error] Type 12 (CURSOR GROUP) 32761:
[Error] File Controls.res resource kept; file e:\prograrm files\borland\delphi7\lib\Controls.res resource discarded.
[Error] Type 12 (CURSOR GROUP), ID 32762:
[Error] File Controls.res resource kept; file e:\prograrm files\borland\delphi7\Lib\Controls.res resource discarded.
[Error] Type 12 (CURSOR GROUP), ID 32763:
[Error] File Controls.res resource kept; file e:\prograrm files\borland\delphi7\Lib\Controls.res resource discarded.
[Error] Type 12 (CURSOR GROUP), ID 32764:
[Error] File Controls.res resource kept; file e:\prograrm files\borland\delphi7\Lib\Controls.res resource discarded.
[Error] Type 12 (CURSOR GROUP), ID 32765:
[Error] File Controls.res resource kept; file e:\prograrm files\borland\delphi7\Lib\Controls.res resource discarded.
[Error] Type 12 (CURSOR GROUP), ID 32766:
[Error] File Controls.res resource kept; file e:\prograrm files\borland\delphi7\Lib\Controls.res resource discarded.
[Error] Type 12 (CURSOR GROUP), ID 32767:
[Error] File Controls.res resource kept; file e:\prograrm files\borland\delphi7\Lib\Controls.res resource discarded.
ресурсы и стандартные модули
Код:
Решил пройтись трассировкой по стандартным модулям
но для этого их надо перекомпилировать
составил граф - кто кого юзает
определил минимальное количество подключаемых модулей (см рисунок)
(типа если мы юзаем модуль А, а модуль А юзает модуль Б, а модуль Б юзает модуль А(в implementation'e), то если перекомпилировать только модуль А, то модуль Б будет попрежнему юзать не перекомпилированный)
создал новый проект, добавил кучу модулей, скопипастил все туда, настроил ссылки друг на друга...
директив {$R ...}нашел только три:
Project1 - {$R *.res}
Unit1 - {$R *.dfm}
Unit4;//Controls; - {$R Controls.res}
скопировал файл Controls.res в папку проекта
до того ка скопировал ишибки были следующие
Код:
[Error] WARNING. Duplicate resource(s):
[Error] Type 12 (CURSOR GROUP) 32761:
[Error] File e:\program files\borland\delphi7\Lib\Controls.res resource kept; file e:\program files\borland\delphi7\Lib\Controls.res resource discarded.
[Error] Type 12 (CURSOR GROUP), ID 32762:
[Error] File e:\program files\borland\delphi7\Lib\Controls.res resource kept; file e:\program files\borland\delphi7\Lib\Controls.res resource discarded.
[Error] Type 12 (CURSOR GROUP), ID 32763:
[Error] File e:\program files\borland\delphi7\Lib\Controls.res resource kept; file e:\program files\borland\delphi7\Lib\Controls.res resource discarded.
[Error] Type 12 (CURSOR GROUP), ID 32764:
[Error] File e:\program files\borland\delphi7\Lib\Controls.res resource kept; file e:\program files\borland\delphi7\Lib\Controls.res resource discarded.
[Error] Type 12 (CURSOR GROUP), ID 32765:
[Error] File e:\program files\borland\delphi7\Lib\Controls.res resource kept; file e:\program files\borland\delphi7\Lib\Controls.res resource discarded.
[Error] Type 12 (CURSOR GROUP), ID 32766:
[Error] File e:\program files\borland\delphi7\Lib\Controls.res resource kept; file e:\program files\borland\delphi7\Lib\Controls.res resource discarded.
[Error] Type 12 (CURSOR GROUP), ID 32767:
[Error] File e:\program files\borland\delphi7\Lib\Controls.res resource kept; file e:\program files\borland\delphi7\Lib\Controls.res resource discarded.
[Error] Type 12 (CURSOR GROUP) 32761:
[Error] File e:\program files\borland\delphi7\Lib\Controls.res resource kept; file e:\program files\borland\delphi7\Lib\Controls.res resource discarded.
[Error] Type 12 (CURSOR GROUP), ID 32762:
[Error] File e:\program files\borland\delphi7\Lib\Controls.res resource kept; file e:\program files\borland\delphi7\Lib\Controls.res resource discarded.
[Error] Type 12 (CURSOR GROUP), ID 32763:
[Error] File e:\program files\borland\delphi7\Lib\Controls.res resource kept; file e:\program files\borland\delphi7\Lib\Controls.res resource discarded.
[Error] Type 12 (CURSOR GROUP), ID 32764:
[Error] File e:\program files\borland\delphi7\Lib\Controls.res resource kept; file e:\program files\borland\delphi7\Lib\Controls.res resource discarded.
[Error] Type 12 (CURSOR GROUP), ID 32765:
[Error] File e:\program files\borland\delphi7\Lib\Controls.res resource kept; file e:\program files\borland\delphi7\Lib\Controls.res resource discarded.
[Error] Type 12 (CURSOR GROUP), ID 32766:
[Error] File e:\program files\borland\delphi7\Lib\Controls.res resource kept; file e:\program files\borland\delphi7\Lib\Controls.res resource discarded.
[Error] Type 12 (CURSOR GROUP), ID 32767:
[Error] File e:\program files\borland\delphi7\Lib\Controls.res resource kept; file e:\program files\borland\delphi7\Lib\Controls.res resource discarded.
Возможно здесь происходит совпадение файл-ресурса (попытка задействовать его два раза, или файл Controls.res зарезервирован в среде Делфи). Могу ошибаться, но попробуйте просто переименовать файл Controls.res на MyControls.res и изменить директиву на {$R MyControls.res}.
Код:
[Error] WARNING. Duplicate resource(s):
[Error] Type 12 (CURSOR GROUP), ID 32761:
[Error] File MyControls.res resource kept; file e:\program files\borland\delphi7\Lib\Controls.res resource discarded.
[Error] Type 12 (CURSOR GROUP), ID 32762:
[Error] File MyControls.res resource kept; file e:\program files\borland\delphi7\Lib\Controls.res resource discarded.
[Error] Type 12 (CURSOR GROUP), ID 32763:
[Error] File MyControls.res resource kept; file e:\program files\borland\delphi7\Lib\Controls.res resource discarded.
[Error] Type 12 (CURSOR GROUP), ID 32764:
[Error] File MyControls.res resource kept; file e:\program files\borland\delphi7\Lib\Controls.res resource discarded.
[Error] Type 12 (CURSOR GROUP), ID 32765:
[Error] File MyControls.res resource kept; file e:\program files\borland\delphi7\Lib\Controls.res resource discarded.
[Error] Type 12 (CURSOR GROUP), ID 32766:
[Error] File MyControls.res resource kept; file e:\program files\borland\delphi7\Lib\Controls.res resource discarded.
[Error] Type 12 (CURSOR GROUP), ID 32767:
[Error] File MyControls.res resource kept; file e:\program files\borland\delphi7\Lib\Controls.res resource discarded.
[Error] Type 12 (CURSOR GROUP), ID 32761:
[Error] File MyControls.res resource kept; file e:\program files\borland\delphi7\Lib\Controls.res resource discarded.
[Error] Type 12 (CURSOR GROUP), ID 32762:
[Error] File MyControls.res resource kept; file e:\program files\borland\delphi7\Lib\Controls.res resource discarded.
[Error] Type 12 (CURSOR GROUP), ID 32763:
[Error] File MyControls.res resource kept; file e:\program files\borland\delphi7\Lib\Controls.res resource discarded.
[Error] Type 12 (CURSOR GROUP), ID 32764:
[Error] File MyControls.res resource kept; file e:\program files\borland\delphi7\Lib\Controls.res resource discarded.
[Error] Type 12 (CURSOR GROUP), ID 32765:
[Error] File MyControls.res resource kept; file e:\program files\borland\delphi7\Lib\Controls.res resource discarded.
[Error] Type 12 (CURSOR GROUP), ID 32766:
[Error] File MyControls.res resource kept; file e:\program files\borland\delphi7\Lib\Controls.res resource discarded.
[Error] Type 12 (CURSOR GROUP), ID 32767:
[Error] File MyControls.res resource kept; file e:\program files\borland\delphi7\Lib\Controls.res resource discarded.
если удалить Controls.res из E:\Program Files\Borland\Delphi7\Lib
Код:
[Error] File not found: 'Controls.res'
Вот информация о директиве:
Директива компилятора, связывающая с выполняемым модулем файлы ресурсов [COLOR=#000000]Область действия локальная[/COLOR]
[COLOR=#000000]Директива компилятора [/COLOR][COLOR=#ff00ff][FONT=Courier New]{$R}[/FONT][/COLOR][COLOR=#000000] указывает файлы ресурсов (.DFM, .RES), которые должны быть включены в выполняемый модуль или в библиотеку. Указанный файл должен быть файлом ресурсов Windows. По умолчанию расширение файлов ресурсов - .RES.[/COLOR] [COLOR=#000000]В процессе компоновки компилированной программы или библиотеки файлы, указанные в директивах {$R}, копируются в выполняемый модуль. Компоновщик Delphi ищет эти файлы сначала в том каталоге, в котором расположен модуль, содержащий директиву {$R}, а затем в каталогах, указанных при выполнении команды главного меню Project | Options на странице Directories/Conditionals диалогового окна в опции Search path или в опции /R командной строки DCC32.[/COLOR]
[COLOR=#000000]При генерации кода модуля, содержащего форму, Delphi автоматически включает в файл .pas директиву {$R *.DFM}, обеспечивающую компоновку файлов ресурсов форм. Эту директиву нельзя удалять из текста модуля, так как в противном случае загрузочный модуль не будет создан и генерируется исключение EResNotFound.[/COLOR]
[COLOR=#000000][FONT=Times New Roman]Duplicate Resources Error[/FONT][/COLOR]
[COLOR=#000000][FONT=Times New Roman]У вас есть исходный код VCL? Если да, то в этом случае ее можно всю перекомпилировать, добавив каталог к вашему библиотечному пути (Library path) в опциях среды (Environment Options | Library). Я думаю это нужно сделать, чтобы отделаться от этой ошибки. При другом способе необходимо вычислить вызывающую проблему директиву $R, временно удалить ее, и осуществить перекомпиляцию. Временно выключить директиву $R можно добавлением '.' перед $ (но это не единственный путь выключить ее). [/FONT][/COLOR]
[COLOR=#000000][FONT=Times New Roman]Вероятно, вы сабкласситесь от VCL. Убедитесь в том, что идентификатор ресурса для вашей иконки уникальный. Просто загрузите ее в любой редактор ресурсов, и измените ее номер. После этого вы должны пересобрать вашу библиотеку. [/FONT][/COLOR]
[RIGHT][COLOR=#ff6600][FONT=Arial Unicode MS]©[/FONT][/COLOR][COLOR=#ff6600][FONT=Courier New]Drkb::02170[/FONT][/COLOR][/RIGHT]
[COLOR=#7f0000][FONT=Times New Roman]Примечание от Vit[/FONT][/COLOR]
[COLOR=#7f0000][FONT=Times New Roman]В 99% случаев эта ошибка возникает при установке компонента, так как при добавлении компонента к пакету Дельфи автоматически к проекту добавляет и ресурс, если же этот ресурс уже определён в исходном коде компонента то и возникает эта ошибка. Откройте или менеджер проекта или исходный код DPK файла и удалите оттуда ссылку на ресурс, оставив её только в исходном коде компонента.[/FONT][/COLOR]
[RIGHT][COLOR=#ff6600][FONT=Arial Unicode MS]©[/FONT][/COLOR][COLOR=#ff6600][FONT=Courier New]Drkb::02171[/FONT][/COLOR][/RIGHT]
Как понимаю, речь идёт о дополнительных курсорах, вроде перетаскивания или "пальца", используемых в VCL. Возможно, где-то по путям, где расположены библиотеки, лежат файлы для старой версии Delphi или перемешаны пути от нескольких версий Delphi.
Поскольку ресурсы явно стандартные, имя файла вряд ли будет другое. Предлагаю поискать, где ещё есть Controls.res.
если в Либе controls.res нету, а в одном из моих модулей написано {$R MyControls.res}
то если в папке проэкта лежит Mycontrols.res - ненайден controls.res
....если в папке проэкта лежит controls.res - ненайден Mycontrols.res
....если в папке проэкта лежат оба файла (одинаковые с разными именами) - [Error] WARNING. Duplicate resource(s):
Mycontrols.res удали или удали из него дублированные ресурсы, оставь controls.res в папке либ
Цитата: Alegun
[COLOR=#000000][FONT=Times New Roman]Duplicate Resources Error[/FONT][/COLOR]
[COLOR=#000000][FONT=Times New Roman]У вас есть исходный код VCL? Если да, то в этом случае ее можно всю перекомпилировать, добавив каталог к вашему библиотечному пути (Library path) в опциях среды (Environment Options | Library). Я думаю это нужно сделать, чтобы отделаться от этой ошибки. [/FONT][/COLOR]
[COLOR=#000000][FONT=Times New Roman]У вас есть исходный код VCL? Если да, то в этом случае ее можно всю перекомпилировать, добавив каталог к вашему библиотечному пути (Library path) в опциях среды (Environment Options | Library). Я думаю это нужно сделать, чтобы отделаться от этой ошибки. [/FONT][/COLOR]
ой, а можно поподробнее
исходный код VCL вроде есть, иначе откуда бы тогда я копировал тексты этих модулей
какой каталог надо добавить к библиотечному пути - свой собственный?,
что в него скопировать - Lib? Sources? sources\VCL?
также привожу граф всех модулей, используемых приложением
Цитата: arrjj
Mycontrols.res удали или удали из него дублированные ресурсы, оставь controls.res в папке либ
а чем просматривать и редактировать файлы *.res?
Cursor
- 32761 (напр. 12761)
- 32762
- 32763
- 32764
- 32765
- 32766
- 32767
так же нужно изменить и обращение к ним, в подключенных копиях стандартных модулей (придётся искать).
Файлы ресурсов редактируются стандартным редактором (Tools-> Image Editor)
Цитата: Alegun
так же нужно изменить и обращение к ним, в подключенных копиях стандартных модулей (придётся искать).
OK, и как выглядят обращения к ним?
имхо проще удалить дублированное использование файла ресурсов.
Или удали дублированные ресурсы из файла mycontrols.res.
...
{ Cursor identifiers }
type
TCursor = -32768..32767;// поменять на -32768..12767
...
const
crDefault = TCursor(0);
crNone = TCursor(-1);
crArrow = TCursor(-2);
crCross = TCursor(-3);
crIBeam = TCursor(-4);
crSize = TCursor(-22);
crSizeNESW = TCursor(-6);
crSizeNS = TCursor(-7);
crSizeNWSE = TCursor(-8);
crSizeWE = TCursor(-9);
crUpArrow = TCursor(-10);
crHourGlass = TCursor(-11);//=12762
crDrag = TCursor(-12);
crNoDrop = TCursor(-13);//=12767 и т.д.
crHSplit = TCursor(-14);//=12764
crVSplit = TCursor(-15);//=12765
crMultiDrag = TCursor(-16);
crSQLWait = TCursor(-17);
crNo = TCursor(-18);
crAppStart = TCursor(-19);
crHelp = TCursor(-20);
crHandPoint = TCursor(-21);
crSizeAll = TCursor(-22);
Нет, изменение диапазона TCursor не помогает (возникает искличительная ситуация), придётся менять явно.
приведу список модулей
//Unit2 in 'Unit2.pas', - Dialogs
//Unit3 in 'Unit3.pas', - Forms
//Unit4 in 'Unit4.pas', - Controls
//Unit5 in 'Unit5.pas', - Themes
//Unit6 in 'Unit6.pas', - ExtCtrls
//Unit7 in 'Unit7.pas', - StdCtrls
//Unit8 in 'Unit8.pas', - StdActns
//Unit9 in 'Unit9.pas', - Clipbrd
//Unit10 in 'Unit10.pas',- Printers
//Unit11 in 'Unit11.pas',- ActnList
//Unit12 in 'Unit12.pas',- Menus
//Unit13 in 'Unit13.pas',- ImgList
итак сначала выполняется begin в project1, потом end в ImgList
потом инициализация Themes
потом инициализация Controls
потом инициализация ActnList
потом инициализация Menus
, где при выполнении RegisterClass(TMenuItem); возникает ошибка
Код:
Project Project 1 .exe raised exception class EFilerError with message 'A class named TMenuItem already
exists'. Process stopped. Use Step or Run to continue.
exists'. Process stopped. Use Step or Run to continue.
итак - что может вызвать эту ошибку?
А что пишет ОС, (не Делфи) если нажать снова на Run?
а может существует какой-нибудь более простой способ перекомпилировать всю библиотеку?
А разве недостаточно просто исключить из Unit4 {$R Controls.res}?
Вообще-то, в документации написано, что если "Runtime error 217" возникает - это значит испорчен или потерян какой-то файл... А может просто взьять и удалить все дэкэушки (у кого пасы есть) в чистую из Либ, глядишь и скомпилиться библиотека по-новой, без заморочек?
Да и вообще идея автора непонятна зачем перекомпилировать для трассировки если есть сорсы и при трассировке delphi и так сама в них зайдёт и покажет исполняемый в данный момент код.
а RegisterClass был объявленв Classes