TFrames и нежелательные унаследованные значения в родительском файле .dfm

Использование BDS2006, C ++ Builder.

Длинная предпосылка, пытающаяся объяснить текущую ситуацию, поскольку мне трудно описать, что у меня есть и что мне нужно:


Я работаю над старым, очень сложным и большим проектом.
Когда проект был запущен, его нужно было распространять как в виде EXE, так и в виде OCX. В то время выбор был в том, чтобы создать TFrameMAIN, содержащий «Everyting» (в MainForm и в части «OCX» практически нет кода).
А поскольку основной пользовательский интерфейс построен на страницах, для каждой страницы в TFrameMain есть TFrame.

Кадры были затем повторно использованы в каком-то незначительном, производном проекте. По этой причине кадры не использовались, чтобы иметь возможность изменять поведение компонента в производных кадрах. На самом деле, в основном приложении единственные кадры, которые появляются дважды, это маленькие «всплывающие окна».

Даже сейчас мне нужно быть очень осторожным, чтобы ничего не менять в производном фрейме (я имею в виду, я не могу ничего изменить в фрейме, размещенном где-то), но мне нужно изменить «оригинальный» фрейм и перекомпилировать весь связанный проект ,


Но у меня есть проблема: независимо от того, что я делаю, в «родительских» .dfm-файлах всегда есть «унаследованные» значения, ссылающиеся на внутренние компоненты фрейма, иногда предотвращая появление изменений, которые я делаю в TFrame, в скомпилированном приложении ( или, иногда, даже вызывая ошибки времени выполнения, потому что я могу указать в коде кадра на объект, «измененный» родительскими «унаследованными» значениями).

Например, это часть Mainform .dfm:

        inherited barFTCvF: TBarSeries
Data = {
030600000000000000000014400000000000000000FFFFFF1F0000000000001C
400000000000004940000000200000000000003B400000000000004E40000000
2000000000008047400000000000005440000000200000000000C05040000000
0000005940000000200000000000C05540000000000000594000000020}
end

Наличие объявленных здесь значений серии TeeChart предотвращает любые изменения, внесенные в «исходный» фрейм, для отображения во встроенном приложении, поскольку эти значения отменяют мои изменения.

Единственное «решение», которое я нашел прямо сейчас, — это удалить производный фрейм и заменить его из палитры компонентов (Стандарт-> Фреймы-> Выбрать фрейм).
Этот нежелательный эффект распространяется по иерархии вплоть до основного, поэтому я должен удалить-заменить измененный кадр в FrameMain, а затем удалить и заменить FrameMain из MainForm.

Кажется, ошибка IDE для меня ….. в любом случае. Есть ли способ избежать этого «наследования» в файлах DFM (без преобразования каждого кадра в компоненте пакета)?

И еще: поскольку я не хочу менять внутреннее поведение / внешний вид фреймов с того места, где они были отброшены, я спрашиваю, есть ли способ «заблокировать» эту возможность.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]