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

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

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2009, 23:19   #1
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию Динамическое или статическое создание интерфейса?

Вот меня заинтересовал вопрос, например, пишется некая программа на Делфи (ну или на другом ЯП, особо не важно, Делфи - т.к. прогу пишу щас именно на Делфи), и вот как предпочтительней создавать интерфейс(кнопки, имеджы, ну и т.д.), динамически (писать в ручную создание компонента, задавать нужные значения свойств и т.д.) или статически (понакидывать уже сразу на форму все компонентыи т.д.) ?
Если использовать динамику, то выигрыш какой то будет в этом, или токо лишний объем кода прибавится?
з.ы. думаю объяснил суть вопроса понятно
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 23.11.2009, 23:50   #2
SunKnight
Участник клуба Подтвердите свой е-майл
 
Аватар для SunKnight
 
Регистрация: 14.12.2007
Сообщений: 1,434
По умолчанию

Мне кажется нет никакого преимущества в динамическом создании.
Проповедую design patterns, верую в MVC, доверяю eXtrime programming.
SunKnight вне форума Ответить с цитированием
Старый 24.11.2009, 00:29   #3
dr.Chas
***
Участник клуба
 
Аватар для dr.Chas
 
Регистрация: 30.07.2007
Сообщений: 1,162
По умолчанию

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

это только моё предположение.
dr.Chas вне форума Ответить с цитированием
Старый 24.11.2009, 00:56   #4
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Ну вот насчет того, когда используется я с вами, dr.Chas, согласен.

А вот все же как насчет всего проекта? Как я понял, то большую часть интерфейса нету смыла делать динамической, только лишнее написание кода? Так получается?
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 24.11.2009, 09:46   #5
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

от динамического никуда не денешся, если на api пишешь, а если визуально проектируешь форму, то это только потери времени, за исключением тех случаев, когда вы создаете что-то нестандартное, например несколько контролов внутри других.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 24.11.2009 в 21:19.
raxp вне форума Ответить с цитированием
Старый 24.11.2009, 09:58   #6
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Я специализируюсь "далеко не на Делфи". Однако, давно сделал вывод, что динамическое создание всевозможных контролов и назначение им "кучи" требуемых свойств оправдано исключительно тогда, когда, по каким-либо причинам, невозможно сделать это заранее (заготовить шаблон, скопировать и т.п.).
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 24.11.2009, 20:56   #7
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

И я, и я, и я того же мнения
Действительно, зачем придумывали все эти рад средства, чтобы потом вручную писать и тратить на это время?
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 24.11.2009, 22:05   #8
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Мой вариант еще не видел здесь. Я за динамическое, и только за него, почему ?
1. Ну про диалоги из ресурсов, я их не уважаю, это вообще очень плохо как по мне, кто захочет тот и поменяет ваш диалог в ресурсах. Ну да ладно.
2. Почему динамически ? Ну я новую программу пишу не для 2х и 3х человек + не каждый день штампую + пишутся все контролы (95%) отходя от CFrameWnd (MFC) ну или в дельфи раньше писал от TCustomControl. Т.е. их уникальность, стиль, лекгость в личном использовании, и динамическое расположение на окне на WM_WINDOWPOSCHANGED.
3. Вот простой пример, у меня два окна, 1е - главное (должно всегда существовать), 2е - пусть настройки программы. Пусть 2е окно, загружено графикой, этак на метров 20 (грубо говоря), тогда смысл хранить его всегда в памяти (статически) (даже пускай и не 20 МБ) если пользователь его загрузит может раз в день

Разумеется раньше (щас понимаю что из-за высокоуровневого подхода Delphi) использовал "кнопковое" программирование. Как по мне, лучше посидеть дольше, руками все как хочется расположить, чем потом левые TPanel (помню из дельфи) пихать, чтобы статически задать расположение окон.
BOBAH13 вне форума Ответить с цитированием
Старый 24.11.2009, 22:15   #9
SunKnight
Участник клуба Подтвердите свой е-майл
 
Аватар для SunKnight
 
Регистрация: 14.12.2007
Сообщений: 1,434
По умолчанию

Как я понял из вопроса, имелось ввиду создание GUI в design-time или динамически в run-time. Точнее разницы нет, так как все компоненты создаются динамически, ведь дизайнер переводит визуальное оформление в код, который вы, в меру своего садомазахической наклонности можете переписывать (точнее так называемое динамическое). Другое дело если происходит создание контрола по событию, это уже другой вопрос (Это про динамическую загрузку формы). Хотя в принципе изначально GUI создается при событии Create, по мойму.


Цитата:
Как по мне, лучше посидеть дольше, руками все как хочется расположить
А какая разница? Дизайнер все равно переводит все в код который затем можно свободно корректировать.

Ну а в MFC даже путевого дизайнета нет, да и компонентов тоже, следовательно все приходится в ручную создавать. В общем на это и рассчитана данная технология.
Проповедую design patterns, верую в MVC, доверяю eXtrime programming.

Последний раз редактировалось SunKnight; 24.11.2009 в 22:23.
SunKnight вне форума Ответить с цитированием
Старый 24.11.2009, 22:21   #10
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Такс я смотрю мнения разошлись не много.....ну нечего....
Исходя из выше написанного, я понял, что все же динамическое предпочтительнее.....
Но опять же, получается, что весь интерфейс строить на динамике(используя VCL Делфи) не есть хорошо..........а вот если юзать API - то естественно динамика на высоте...ну это я так понял все выше изложенное

Цитата:
Как по мне, лучше посидеть дольше, руками все как хочется расположить, чем потом левые TPanel (помню из дельфи) пихать, чтобы статически задать расположение окон.
BOBAH13, именно в этом предложении вы что ли отдаете предпочтение статике....я правильно понял или нет ?
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
динамическое создание компонентов DOLBY Компоненты Delphi 10 17.10.2010 14:03
динамическое содзание компонентов и процедур обработки Prisian Компоненты Delphi 5 11.12.2007 21:17
Динамическое создание WebBrowser DragonLand Работа с сетью в Delphi 2 20.08.2007 21:47
Динамическое создание объектов LepihinMS Общие вопросы Delphi 18 05.07.2007 23:31
Как динамически добавить Мемо на форму? Динамическое создание компонентов! werser Помощь студентам 1 14.06.2007 00:39