Я разрабатываю пакет зарегистрированных в IDE компонентов, большинство из которых являются производными от базового класса TFrame. Существуют также различные настраиваемые диалоговые формы, которые вызываются этими компонентами, включенными в пакет. Я работаю в Delphi 2007.
Я замечаю, что иногда элементы фрейма и формы, которые обычно имеют связанный файл DFM, не всегда показывают файл DFM "снизу" (доступный через небольшой [+] расширитель узла дерева) под ними. Если я добавлю существующий файл PAS на основе форм, например, щелкнув правой кнопкой мыши проект BPL (в Диспетчере проектов) -> Добавить, он не отобразит файл DFM в списке.
Если я добавлю новый и создам новую форму или рамку в проекте, он отобразится как типичный вложенный двухфайловый элемент в диспетчере проектов. Это также показывает, что если я перетащу существующую форму из другого проекта в группе проектов в данный проект BPL.
Похоже, это должно быть согласованным, и я предпочитаю, чтобы оба файла отображались, когда блок представляет собой фрейм или форму.
Указывает ли это на что-то не так в файле проекта? Я неправильно добавляю существующие формы / фреймы в этот пакет? Если да, то как мне добавить существующие блоки формы / фрейма, чтобы оба файла отображались в списке менеджера проекта?
* ОБНОВЛЕНИЕ *
Из предложения Алена ниже:
Я попытался добавить директиву {$ R * .dfm} к модулю формы, и она не вызвала появление файла DFM при добавлении его в мой пакет / проект BPL. Добавление {$ R * .dfm} к самому файлу проекта (что я не думаю, что вы имели в виду, но я думал, что попробую) тоже не сработало. Эта техника работает только с EXE-проектами?
Возможно (вероятно) связано, попытка построить с этой директивой местами дает мне это:
[Ошибка DCC] E2161 Предупреждение: дубликат ресурса: тип 10 (RCDATA), идентификатор TTESTTREEVIEW; Сохранен ресурс E: \ Projects \ MyApp \ Components \ TTestTreeViewFrame.dfm; файл
E: \ Projects \ MyApp \ Components \ TTestTreeViewFrame.dfm ресурс отброшен.
"Keping" и "отбрасывание" одного и того же файла ??
Позже: похоже, что проблема с «дублированным ресурсом» МОЖЕТ быть связана с
это . Не уверен, но по крайней мере в одном случае оба произошли одновременно.