Форум: "Начинающим";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];
ВнизЭкономия ресурсов Найти похожие ветки
← →
Jimmy (2006-11-13 19:24) [0]Моя программа содержит небольшое число форм, но на некоторых из них очень много объектов VCL: button"ы, checkbox"ы и т.п. Соответственно она кушает много ресурсов. Вероятно, если объекты создавать динамически, а не на этапе разработки, то это позволит сэкономить ресурсы. Но вот что понимать под словами "создавать динамически"? Есть два варианта.
1. Создать форму на этапе разработки, поместить на нее нужные объекты, но убрать строку из "dpr"-файла "Application.CreateForm(TFormX, FormX);". А создавать форму динамически, в нужном месте: "FormX:=FormClass.Create(Application);", по мере ненадобности FormX.Free. Это просто, но есть подозрение, что это не приведет к экономии ресурсов.
2. Создать форму на этапе разработки, подключить с помощью "Application.CreateForm(TFormX, FormX);", но VCL-объекты на этой форме создавать динамически, типа Label1:=TLabel.Create, и уничтожать по закрытию формы Label1.Free.
Какой из этих двух вариантов правильный? Заранее спасибо.
← →
StriderMan © (2006-11-13 19:31) [1]1. Поможет. зуп на рельсу.
> FormX:=FormClass.Create(Application);",
можно просто .Create(nil)
2. Ерунда. Может размер ехе-шника на пару килобайт сократишь, но не потребляемой памяти.
← →
Ketmar © (2006-11-13 19:31) [2]натурально, оба.
← →
Loginov Dmitry © (2006-11-13 20:48) [3]Быть может и форму создавать динамически
FormX:=FormClass.Create(Application);
и объекты на форме также создавать динамически
Label1:=TLabel.Create(Self)
а-то фифти-фифти как-то не рульно
← →
Kolan © (2006-11-13 20:51) [4]Вариант 3. Наконец сделать нормальный интерфейс и убрать оттуда кучу контролов...
← →
Jimmy (2006-11-13 20:55) [5]>StriderMan:
Правильно я Вас понял, что первый вариант сэкономит ресурсы, а второй нет?
>Ketmar
оба правильные... Но что приведет к большой экономии? И на сколько?
>Loginov Dmitry
Ваш ответ противоречит с первым.
← →
Loginov Dmitry © (2006-11-13 21:05) [6]Для наибольшей экономии ресурсов лучше всего не создавать ни форму, ни компоненты на этой формы. Для автора - это самый оптимальный вариант.
← →
Percent (2006-11-13 22:19) [7]2 Jimmy
Используй динамическое создание форм. Этого достаточно.
Для автоматического удаления форм при закрытии используй событие OnClose, и возвращай Action = caFree;.
Можно и контролы создавать динамически, но это явно сложнее, чем визуально конструировать форму, и оправдано только во вполне определенных проектах. Кроме того, это изменит, в некоторой степени, логику построения приложений, заложенную Borland; это, конечно, не указ, но начинающим следует придерживаться. Так что, я - тебе - пока - не советую.
2 Kolan ©
Я понимаю, Коля, что лучший интерфейс - это форма с одной-единственной кнопокой с надписью "Сделать всю работу", но такое бывает только в очень простых программах, сказках и анекдотах. Так что совет твой - не совсем уместен.
← →
Kolan © (2006-11-13 23:01) [8]> Я понимаю, Коля, что лучший интерфейс - это форма с одной-
> единственной кнопокой с надписью "Сделать всю работу", но
> такое бывает только в очень простых программах, сказках
> и анекдотах. Так что совет твой - не совсем уместен.
Слушай а как тебя звать, то а то так по имени, официально, а я все по нику да по нику.
> но такое бывает только в очень простых программах
То есть твои программы из серии:
http://www.artlebedev.ru/studio/vacancy/ui_designer_2/
?
← →
Percent (2006-11-13 23:13) [9]Слушай а как тебя звать
Обычно зовут "Эй, ты!"...
http://www.artlebedev.ru/studio/vacancy/ui_designer_2/dialog.gif - это много контролов? Навалены не везде системно, правда, но вполне нормальная формочка.
← →
Kolan © (2006-11-13 23:15) [10]> Навалены не везде системно, правда, но вполне нормальная
> формочка.
... Лебедев встал и выбросился в окно :) ROTFLOL
← →
Leonid Troyanovsky © (2006-11-13 23:19) [11]
> Jimmy (13.11.06 20:55) [5]
> Ваш ответ противоречит с первым.
Это только кажется.
--
Regards, LVT.
← →
Percent (2006-11-13 23:19) [12]Лебедев встал и выбросился в окно
Оригинальная операция с окном - "выбрасывание в".
Прикольно.
← →
SergP © (2006-11-14 01:52) [13]> [6] Loginov Dmitry © (13.11.06 21:05)
> Для наибольшей экономии ресурсов лучше всего не создавать
> ни форму, ни компоненты на этой формы. Для автора - это
> самый оптимальный вариант.
Для наибольшей экономии лучше всего не создавать саму программу... :-)
← →
Ketmar © (2006-11-14 02:27) [14]>[8] Kolan(c) 13-Nov-2006, 23:01
>Слушай а как тебя звать, то а то так по имени, официально,
>а я все по нику да по нику.
читать ДМ надо внимательно. даже при твоём присутствии это озвучивалось.
← →
ЮЮ © (2006-11-14 02:49) [15]
> Соответственно она кушает много ресурсов
Каких? Только DBGrid-ы жрут немерено GDI-ресурсов. За остальными VCL-компонентами такого не наблюдал. Да и то всё это критично для Win9x.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.044 c