Фрейм во фрейме

Softologic
Дата: 07.06.2019 11:27:33
Все привет!
Не первый год уже как использую фреймы (Delphi 7), все всегда было ОК, но теперь занадобился конструкт "фрейм во фрейме". Поясню за это дело:

1) Есть некий часто востребованный у меня набор элементов-контролов, который должен использоваться как некий единый вспомогательный инструмент. Выглядит он так: слева - дерево, справа - грид, который отображает отфильтрованный набор данных. Отфильтрованный благодаря клику в дереве, в смысле.

Картинка с другого сайта.

2) Вот этот самый конструкт из п.1 (назовем его условно "Подфрейм") я хочу затем использовать в разных местах другого фрейма, подменяя только родителя-панель, дабы не плодить большое количество довольно тяжелого, но совершенно одинакового "Подфрейма". Ниже на картинке показаны места, куда должен встраиваться этот комплексный элемент:

Картинка с другого сайта.

И вроде бы все неплохо вначале, но... ровно до того момента, когда я пытаюсь сменить родителя-панельку, простым кодом:

PODBORFrame.Parent:=paPODB_SOP;


В итоге получаю ошибку "Invalid pointer operation". Спрашиваю у знающих - проблема в самой концепции "фрейм во фрейме" ? Может кто использовал и сталкивался с проблемами?
Gerasimenko
Дата: 07.06.2019 12:51:14
Softologic,

автор
я хочу затем использовать в разных местах другого фрейма, подменяя только родителя-панель, дабы не плодить большое количество довольно тяжелого, но совершенно одинакового

автор
TPageControl

Для этих целей предназначен TTabControl
krapotkin
Дата: 07.06.2019 13:59:03
^ - это раз
два. всегда и точно проверенно работает вариант просто удалять там и так же просто создавать тут
Softologic
Дата: 07.06.2019 14:11:23
krapotkin
^ - это раз
два. всегда и точно проверенно работает вариант просто удалять там и так же просто создавать тут

а можно подробнее? где и что удалять и создавать?

Удалять и снова создавать этот тяжеловесный фрейм я пробовал, но хочется легкий вариант - просто смена родителя. И оно даже вполне себе работает, если бы не использование указателей в дереве.
Softologic
Дата: 07.06.2019 14:18:57
Кажется нашел еще по теме:
Softologic
Дата: 07.06.2019 14:19:08
Softologic
Дата: 08.06.2019 00:38:23
Поскольку выяснилось что смена родителя для дерева влечет за собой обнуление Data во всех узлах, реализовал в итоге через TList и дополнительный класс.
За основу взял инфу отсюда: http://www.delphibasics.ru/TList.php
softwarer
Дата: 09.06.2019 19:24:39
Softologic
Спрашиваю у знающих - проблема в самой концепции "фрейм во фрейме" ?

Нет. С этой концепцией проблем нет, работает не хуже других.