Показать сообщение отдельно
  #3  
Старый 23.07.2024, 22:48
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Да, если не оставил идею делать главное окно программы на вкладках, то тут тебе могут помочь фреймы. Во время разработки фрейм выглядит как окно, но показать просто фрейм нельзя. Его надо "класть" на какой-то компонет наследник TWinControl (окно, страничку TabSheet, панель и т.д.).
Т.е. ты можешь отдизайнить все фреймы, а потом в OnCreate просто их все создать и положить на соотв. вкладки. Для автоматизации этого процесса можно сделать регистрацию таких фреймов:
1. Создаем синглтон на основе, например, TList. В нем определяем тип в котором храним имя класса и имя вкладки (ну и еще что, если нужно)
2. В каждом модуле фрейма в секции initialization регистрируем этот фрейм в нашем синглтоне.
3. В главной форме пробегаемся по синглтону и создаем все вкладки с фреймами на них. Как создавать класс по имени можно посмотреть, например, тут: https://stackoverflow.com/questions/...-from-a-string (тут, возможно, придется перекрыть конструктор Create, т.к. RTTI, вроде, умеет вызывать только дефолтный конструктор). Ну или придумать свой механизм...
Ответить с цитированием