Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как ускорить работу программы [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 и др. прогах. Уж ничего тут не поделаешь, сколько ей надо времени на загрузку и инициализацию, столько она и возьмет.


Наверх

Титульная страница Поиск, карта сайта Написать письмо