Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

Интересно, что менее затратно? Создание обьктов кодом или просто добавление их с Палитры омпонентов на форму?
В частности пример:
создаю 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 в 21:37.
MyLastHit вне форума   Ответить с цитированием
Старый 23.12.2010, 21:48   #2
Человек_Борща
Профессионал
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Адрес: Республика Беларусь, г. Минск
Сообщений: 11,432
Репутация: 2785
По умолчанию

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

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

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

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

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

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

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

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

icq: 560879165
skype: johnson1893
По умолчанию

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

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

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

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

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

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

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

Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое создание компонента из компонента)) 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


01:46.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru