Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Программа и интерфейс
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый Вчера, 20:47
Аватар для Guaho
Guaho Guaho вне форума
Начинающий
 
Регистрация: 27.08.2017
Сообщения: 174
Версия Delphi: Delphi7
Репутация: 10
По умолчанию Динамическое создание "тяжёлой" формы

Доброго времени суток, форумчане!
Долгое время я работал над проектом базы данных для своих нужд, и по итогу работы пришёл к выводу, что интерфейс программы надо серьёзно переделать. Старый интерфейс был многооконным: нужна какая-нибудь справочная таблица - вызываем окно с ней из главного окна. В работе это было удобно, но пришлось очень много всего дублировать в интерфейсе. И я пришёл к выводу, что новую версию программы нужно делать однооконной, со вкладками. Но возник вопрос - а как запускать такое однооконное приложение, содержащее уйму интерфейсных элементов? По старой базе я провёл анализ времени выполнения задач при запуске, и вышло, что суммарно процентов до 40 всего времени запуска приходилось на создание форм (то есть примерно 10...12 секунд). Поскольку форм там было много, и они создавались последовательно, можно было отображать прогресс-бар загрузки. Все свойства и события форм прописывались в дизайн-тайме, а при запуске для каждой из них вызывалось Application.CreateForm(...). Но как быть в случае однооконного приложения, у которого форма будет создаваться 10 секунд? Это же явно неприемлемо. Тем более что этот этап идёт первым, а потом уже идёт загрузка настроек и активация датасетов?
Возможен ли такой вариант: главное и единственное окно программы в дизайн-тайме содержит только PageControl-ы с пустыми вкладками - это для того, чтобы создание такой формы заняло минимальное время. И я делаю отдельные формы, которые будут относиться к проекту, но в ран-тайме создаваться не будут. И на этих формах я в дизайн-тайме размещаю интерфейсные элементы, которые впоследствии будут на вкладках единственного окна программы. Можно ли так сделать, чтобы динамически, при старте программы, в пустые вкладки главного окна вставлялись интерфейсные элементы из упомянутых заранее подготовленных в дизайн-тайме окон, причём желательно сразу группами - например, всё, что лежит на такой-то панели, затем - на другой, и т.д.?
Понимаю, что теоретически можно и всё "до атомов" руками прописать в процедуре запуска, но это ж застрелиться можно, да и неудобно при разработке. Хотелось бы всё-таки максимально упростить себе жизнь, чтобы больше сосредоточиться на функционале программы, и не тратить слишком много труда на код процедуры запуска.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:11.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter