![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как ускорить работу программы [D7, WinXP]
Киря © (2005-08-17 06:49:00)Моя программа состоит из 1 формы
На не расположено около 30 panel
на каждой панели находятся свои компоненты
при запуске программа немного притормаживает и мне хотелось бы этого избежать
При выводе нужной панели на передний план особых тормозов не наблюдается.
Пожалуйста помогите как ускорить процесс загрузки программы
Зараенее благодарен
Думкин (2005-08-17 11:42:00) [1]> Киря (17.08.05 10:55) [10]
Элементарно.
Создать классы(есть желание - компоненты) и подгружать и выгружать динамически. Ваш воопрос НАПРЯМУЮ стыкуется с вопросом в -
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1124177519&n=18
Удачи.
Киря (2005-08-17 11:40:00) [2]А на сколько быстрее будет использовать Frames вместо panels?
afanasic (2005-08-17 11:19:00) [3]Только Destroy в OnCreate... Скорость запуска это увеличит ненамного, зато памяти использоваться будет меньше, а вообще лучше перейди к 30 формам - убъешь час работы, зато в последующем избавишься от множества проблем и приобретешь кучу удобств...
Киря (2005-08-17 10:55:00) [4]afanasic (17.08.05 10:01) [9]
Если твои паннели - основные Control'ы на форме и кроме них ничего нет, то гораздо лучше все-таки наплодить форм, тогда:
1. в единицу времени у тебя в памяти висит только одна форма(остальные destroyed)
2. при модификации какой-то панели ты не задумываешься о модификации размеров остальных панелей и размещении на них компонентов.
3. программа грузится быстро - потому что грузит только одну форму, т.е. в 30 раз меньше данных
4. К минусам отнесем многообразие форм
В противном случае - если хочешь оставить как есть, то в случае необходимости - создавай паннель, в случае ненадобности Destroy... А при старте программы пусть создается только одна, поскольку 29 ненужных паннелей с кучей компонентов, висящих в памяти - слишком накладно по памяти...
Спасибо за совет. Но появлся один вопрос:
Как мне не давать программе создавать все панели сразу а контролировать этот процесс?
afanasic (2005-08-17 10:01:00) [5]Если твои паннели - основные Control'ы на форме и кроме них ничего нет, то гораздо лучше все-таки наплодить форм, тогда:
1. в единицу времени у тебя в памяти висит только одна форма(остальные destroyed)
2. при модификации какой-то панели ты не задумываешься о модификации размеров остальных панелей и размещении на них компонентов.
3. программа грузится быстро - потому что грузит только одну форму, т.е. в 30 раз меньше данных
4. К минусам отнесем многообразие форм
В противном случае - если хочешь оставить как есть, то в случае необходимости - создавай паннель, в случае ненадобности Destroy... А при старте программы пусть создается только одна, поскольку 29 ненужных паннелей с кучей компонентов, висящих в памяти - слишком накладно по памяти...
TUser (2005-08-17 09:59:00) [6]Пересмотреть программу. Например, сменить панели на фреймы, а они не Auto-create. Вряд ли ведь все эти 30 панелей сразу видны.
Киря (2005-08-17 09:29:00) [7]afanasic (17.08.05 08:42) [4]
А зачем такая мощная архитектура???
Она действительно обоснованна необходимостью и единственностью решения?
Возможно решение не единственное. Я поэтому и спрашиваю как можно ускорить работу. Все таки не хотелось бы плодить формы.
KilkennyCat © (17.08.05 08:04) [2]
вместо панелей используй TPageControl.
насколько я помню TPageControl используется для создания закладок и если можно не отображать закладки то прошу сообщить мне как
Думкин (2005-08-17 09:19:00) [8]> Киря (17.08.05 09:15) [5]
Понял. Уснул. :(
Киря (2005-08-17 09:15:00) [9]Думкин © (17.08.05 08:34) [3]
> При выводе нужной панели на передний план особых тормозов
> не наблюдается.
Проясни. Что значит - "на передний план". Может спроектировано как и выводится? Домысел.
т.е. Panel1.bringToFront
afanasic (2005-08-17 08:42:00) [10]А зачем такая мощная архитектура???
Она действительно обоснованна необходимостью и единственностью решения?
Думкин (2005-08-17 08:34:00) [11]
> При выводе нужной панели на передний план особых тормозов
> не наблюдается.
Проясни. Что значит - "на передний план". Может спроектировано как и выводится? Домысел.
KilkennyCat (2005-08-17 08:04:00) [12]вместо панелей используй TPageControl.
Shopot (2005-08-17 07:52:00) [13]Поставить проц мощнее. Но если не для себя прога, то поставь окно с заставкойпри загрузке, как в Word и др. прогах. Уж ничего тут не поделаешь, сколько ей надо времени на загрузку и инициализацию, столько она и возьмет.