Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2010, 20:25   #1
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
Лампочка Что менее затратно: создание кодом или размещение на форме компонента?

Интересно, что менее затратно? Создание обьктов кодом или просто добавление их с Палитры омпонентов на форму?
В частности пример:
создаю Tshape
Код:
rect:=Tshape.create(self);
with rect do
begin
  Parent:=...
  height:=...
  Width:=...
  Top:=...
  Left:=...
end;
В памяти, которую сжирает данное приложение(и в собственном размере скомпилированного ехе) память отводится только под методы parent,height,width,top,left при создании обьектов кодом? Или так же как и если бы я создавал Shape используя компонент TShape размещенный на форме - под все методы которые есть в инспекторе?


В общем прошу обьяснить в чем разница И на какую сторону встать.
Ненавижу быть как все, но люблю, чтобы все были как я.

Последний раз редактировалось MyLastHit; 23.12.2010 в 20:37.
MyLastHit вне форума Ответить с цитированием
Старый 23.12.2010, 20:48   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Если вы указали(изменили) какие-то его функции то, это ещё не значит что память выделена только под какие-либо затронутые вами свойства.

Независимо от того как вы его создали, положив на форму или создав динамически , компонет заберёт под себя нужное ему пространство.

Разница лишт в том, что вы создаёте его сами. Если положить на форму, то компонент автоматически создаться сам.

На какую сторону встать?
Смотря что вам надо.
Человек_Борща вне форума Ответить с цитированием
Старый 23.12.2010, 20:56   #3
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Пытаюсь написать программу используя только Код. Интересно какой размер у нее получится, потом сделаю по обычному и сравню. Просто интересно стало в один момент...
Так я понял к примеру
a:array[1..100] of Tlabel по затратности = 100 Tlabel'ов на форме, так чтоли?
Ненавижу быть как все, но люблю, чтобы все были как я.

Последний раз редактировалось MyLastHit; 23.12.2010 в 20:59.
MyLastHit вне форума Ответить с цитированием
Старый 23.12.2010, 21:12   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Сообщение от MyLastHit Посмотреть сообщение
Так я понял к примеру
a:array[1..100] of Tlabel по затратности = 100 Tlabel'ов на форме, так чтоли?
После того как отработает Create - да. Exe скорее всего будет длиннее когда 100 лабелов на форме
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 23.12.2010, 21:25   #5
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Я за то чтобы создавать чистым кодом. Так можно поделиться с ближним - всем кодом программы, и он может не заморачиваясь с компонентами - просто скопипастить код и откомпилировать.
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 25.12.2010, 08:29   #6
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

Цитата:
Я за то чтобы создавать чистым кодом. Так можно поделиться с ближним - всем кодом программы, и он может не заморачиваясь с компонентами - просто скопипастить код и откомпилировать.
даешь бОльшие возможности для быдлокодерства!

А по поводу способа создания...
Если компонент есть в палитре, и ты его не хочешь изменять никак - то просто брось на форму...
Если же тебе нужен потомок от него, или измененная версия - то объявляй и создавай сам...
Разницы не будет ни какой.

А чтобы уменьшить размер EXE и пожираемой памяти - используй не целые модули, а только нужные функции из них... я вот например завел себе специальный юнит, который добавляю к большинству проектов вместо SysUtils и StrUtils, который содержит самые частоиспользуемые функции. не фонтан, конечно, но несколько килобайт экономит.
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Старый 25.12.2010, 10:15   #7
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
А чтобы уменьшить размер EXE и пожираемой памяти
На правах наглой рекламы:
Можно еще использовать APIx или GRAY FUR.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 25.12.2010, 12:21   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Или так же как и если бы я создавал Shape используя компонент TShape размещенный на форме - под все методы которые есть в инспекторе?
Скажем так память отводится под весь класс, все его методы размещаются в памяти, а так же память отводится под поля каждого экземпляра класса, учитывая что методы - поля-указатели на процедуру класса.
Что ты создал его динамически, что в дизайне никакой разницы принципиальной нет (ну то-есть она невелика).
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.12.2010, 13:19   #9
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Вот я построил дизайн программы кодом, чисто на одних только Shape. Создавал массивами... У меня такое ощущение что программа компилируется в несколько раз быстрее, чем тогда когда я делал интерфейс кидая на форму Шэйпы... Вес программы 300 Кб, против 1.5 МБ предыдущей, но она вроди еще не совсем дописана... И в том случае я использовал не Ректанглы а PNG картинки 1-10кб/шт
И вот вопрос такой, что менее затратно в плане выделения памяти: Tmage(~1 KB) 20х20рх или Шэйп такого же размера?
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 25.12.2010, 13:26   #10
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Tmage(~1 KB) 20х20рх или Шэйп такого же размера?
1. Ради чего эти мизерные действия/моменты?
2. В случае с изображением, оно хранится в памяти все время и быстро выводится на что-либо
3. В случае с TShape, как я подозреваю, там динамический вывод графики в момент потребности отрисовки системой. Разумеется, память выделяется временно, но это занимает какое время (опять таки ничтожное время, т.к. графика примитивна)
BOBAH13 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое создание компонента из компонента)) Impuls1989 Компоненты Delphi 8 22.10.2009 00:08
перемещение компонента по форме blackstersl Общие вопросы Delphi 4 15.08.2009 22:16
Web Chat - создание сервера для чата и размещение его на хостиге dani92 Работа с сетью в Delphi 2 18.07.2009 01:00
Размещение информации из таблиц "Справочников" на форме для добавления-редактирования vovk БД в Delphi 9 15.06.2009 21:50
Перемешение компонента по форме Vladya Помощь студентам 3 26.05.2009 00:01