powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / XE2, Visual inheritance, открой то, не знаю что
1 сообщений из 1, страница 1 из 1
XE2, Visual inheritance, открой то, не знаю что
    #39688117
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне надоело руками переоткрывать юниты на 4-5 уровней наследования форм, и я захотел, чтобы delphi это начала делать сама.

Проблемка в том, что проект разбит на несколько ProjectGroup в которых наборы EXE и BPL, грузить всегда сразу ВСЕ проекты недобно. Ну и сами формы-юниты по разным папкам и проектам лежат.

https://stackoverflow.com/questions/190504

Тут пишут, что чтобы Delphi начала авто-открыват ьформы родители надо в DPR-файле в USES писать типа
Код: pascal
1.
ancestorFrame in 'ancestorFrame.pas' {AncestorFrame : TFrame},



но на мой вкус "in '....pas'" означает, что юнит компилируется непосредственно в этот проект, а не "заимствуется" из BPL
это просто анти-документация и нарушение single responsibility

тем паче, я уже нарывался, что в BPL/DPK был один путь к юниту, а в DPR - другой.
тяжелое наследие DLL, когда одинаковые юниты разных версий включались туда, туда и еще туда

в общем, начал я пилить старую демонстрашку AutoOpenUnit, но до этого я пытался использовать стандартную функциональность Delphi, как описано выше, но без in-clause

Т.е. было у меня в DPR

Код: pascal
1.
2.
3.
4.
5.
6.
uses
  ....
  BPL_Parent_Form_Unit_Name,
  ....
  EXE_Child_Form_Unit_Name in 'RelativePath\EXE_Child_Form_Unit_Name.pas'   {EXE_Child_Form_Name}, 
  ....



и дописываю я

Код: pascal
1.
2.
3.
4.
5.
6.
uses
  ....
  BPL_Parent_Form_Unit_Name {BPL_Parent_Form_Name},
  ....
  EXE_Child_Form_Unit_Name in 'RelativePath\EXE_Child_Form_Unit_Name.pas'   {EXE_Child_Form_Name}, 
  ....



Вроде должно работать?

Открываю проект, открываю форму-наследника - и Delphi мне радостно бросает исключение, что не может открыть (тут варианты) файл DPR-Folder\BPL_Parent_Form_Name или даже C:\Windows\system32\BPL_Parent_Form_Name

Т.е. при наличие в uses комментария без in-clause - он считается не продсказкой имя/типа формы, а абсолютным путём к файлу unit.pas

При этом даже не делается никакая проверка на FileExists(...) - сразу тупо пытается открывать. То, чего не существует и не планировалось. И бросать исключения.

...интересно, такое восприятие комметнариев в DPR uses где-то задокументировано? :-/
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / XE2, Visual inheritance, открой то, не знаю что
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]