Повторное создание вкладки времени разработки будет довольно сложной задачей, поскольку вся информация, описывающая ее макет, встроена в ресурс DFM для вашей формы. Это не похоже на отдельный ресурс для каждой вкладки, поэтому вам нужно прочитать ресурс, извлечь часть, относящуюся к вкладке, а затем получить ReadComponent
для создания нового экземпляра; Ничто в Delphi не разработано, чтобы сделать это очень легко, поэтому вы должны рассмотреть другие варианты.
Самым простым решением, вероятно, было бы оформление страницы приветствия в рамке ; Я обнаружил, что фреймы немного более эффективны, чем полноценные формы, когда дело доходит до их переучивания.
Другой вариант - создать вкладку целиком в коде. У GExperts есть инструмент, чтобы сделать это довольно легко. Выберите вкладку, а затем выберите команду DExperts « компоненты для кода ». Это помещает некоторый код в буфер обмена, и вы можете вставить его в функцию в вашей программе. Код будет содержать все необходимое для воссоздания выбранных компонентов в коде, а не для их сборки из ресурса DFM. Затем вы можете использовать эту функцию не только для повторного создания вкладки после ее закрытия, но и для создания вкладки в первую очередь. Таким образом, вы можете быть уверены, что вы создаете одну и ту же вещь оба раза.
Причина, по которой ваша попытка воссоздать вкладку не сработала, заключается в том, что имя переменной, используемой для хранения ссылки на форму, на самом деле ничего не определяет. Все, что вы сделали, это создали совершенно новый TTabSheet. Тот факт, что вы сохранили ссылку на нее в той же переменной, которая использовалась для хранения ссылки на старую вкладку, не имеет значения. (Но, пожалуйста, не стесняйтесь, дайте этой переменной более осмысленное имя; все, что говорит «TabSheet1», это то, что это первая вкладка, которую вы поместили в форму, еще тогда, когда вы впервые начали работать над этим проектом.)