Большое спасибо за такой подробный ответ! Хотя и выглядит немного сложновато для моего уровня, но в целом - почти понятно. Сохранил себе этот код вместе с комментариями. Пока не уверен, пойду ли я по такому универсальному пути, т.к. пока только прикидываю, как по-новому построить приложение. Да и вкладок и фреймов у меня будет не сильно много, в принципе можно и руками прописать, чтобы не усложнять. Для пробы создал два фрейма, накидал на них группу интерфейсных элементов из текущего проекта, и в OnCreate главной формы написал:
Код:
procedure Tfm_main.FormCreate(Sender: TObject);
var
Frame : TFrame;
begin
Frame := Tfr1.Create(Self);
Frame.Parent := fm_main.p1;
Frame.Align := alClient;
Frame := Tfr2.Create(Self);
Frame.Parent := fm_main.p2;
Frame.Align := alClient;
end;
Где p1 и p2 - пустые вкладки главного PageControl-а. Всё отлично - содержимое фреймов появилось на нужных вкладках. Обработчики событий, прописанные для фреймов, нормально работают. В общем, как будто всё ок! Спасибо ещё раз за помощь!