|
|
|
Сравнение динамически созданных форм и статики20.02.2014, 16:38. Показов 2584. Ответов 32
Метки нет (Все метки)
Добрый день.
Интересует вопрос сравнение динамически созданных форм и статики. Где и какие плюсы…конечно понимаю все зависит от поставленной задачи. Ну вот к примеру есть тестовый проект, и создаю динамически 3 формы…..так же есть второй тестовый проект, там 3 формы в статике…сделал замеры…в принципе как по занимаемом месте на диске так и в памяти все равно(+-20кб). Так вот вопрос для тех кто видит гораздо глубже чем я , что луче использовать (как на больших так и маленьких проектах, где используется с десяток форм)? Кто знает, с какими проектами в будущем столкнусь…что бы быть готовым С Уважением
0
|
|
| 20.02.2014, 16:38 | |
|
Ответы с готовыми решениями:
32
Покраска динамически созданных StringGrid Поиск динамически созданных TabSheet |
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
|||
| 20.02.2014, 23:51 | |||
![]() Добавлено через 46 минут Всетки попробую, не спится. Вот вы создаете "статические" формы. И весь механизм создания - просто мышка. Но вам, видимо, по ходу дела хочется создавать 20-50 совершенно разных форм. Ваше право. Но если вы выскользнули из пеленочек ИДЕ-ВСЛ, вам придется о многом думать самому. В первую очередь - о геометрии. Готовы? А если этих форм и впрямь 20-50, как вы с ними управитесь? Значит придется придумывать свои собственные механизмы. Хорошая работа. Не простая. Но интересная. Творческая. Лично я пару лет поигрался в Бюльдера, сначала просто балдел от возможностей, даже получилось пару приличных проектов. А потом с Qt познакомился. Там есть такая штука - лайоуты. И они так чудесно обеспечивают всю геометрию! В общем, на Десигнер (аналог ВСЛ) посмотрел, да и плюнул. Возможно, зря. Но получилось создать собственные механизмы, возможно, неуклюжие с точки зрения высоких материй, но меня вполне устраивающие. Однако, это ни сколько не реклама Кути. Дело в том, что эти лайоуты навярняка есть и в Бюльдере. Они даже в ВС 502 есть, только там я не понял их смысла (молод был) Идея ваша (если я опять же правильно понял) мне симпатична. Программа по ходу работы лучше знает, какие формы ей нужны, так пусть она их и создает! Но тут ей ваша мышка не поможет. "Сама, девочка, сама". Добавлено через 1 минуту
1
|
|||
|
|
|
| 21.02.2014, 00:12 [ТС] | |
|
Байт спасибо за спокойный и внятный ответ(дружелюбно-повествовательную форму)))))
Просто у меня есть проект в котором у меня все "динамично " создано (то есть без перетаскивания компонентов на форму)....и столкнулся с тем что порой приходится создавать формы второго поколения (то есть дочерняя от дочерней). А так как я просто любитель (не заядлый кодер), стало интересно а правильно ли я делаю....или стоит все сделать "статично" и то что я зря заморачиваюсь со связями. Следующий момент что подтолкнуло написать к гуру на форуме, почему при удалении "динамичной формы", порой остаются компоненты что на ней =) Добавлено через 1 минуту PS был интересен вопрос так же с заимаемыми ресурсами, так как приложения на RAD занимают порядком памяти, стараюсь экономить и оптимизировать каждый байт
0
|
|
|
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
|
|||
| 21.02.2014, 01:07 | |||
|
Создавать формы кодом больно хлопотно, поэтому только IDE. Но иногда в IDE просто невозможно. Писать форму кодом когда можно в IDE - это создание себе проблем.
1
|
|||
|
|
||||||||
| 21.02.2014, 01:16 [ТС] | ||||||||
0
|
||||||||
|
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
|
|||||||
| 21.02.2014, 02:46 | |||||||
1
|
|||||||
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
||||||||||||||||
| 21.02.2014, 10:05 | ||||||||||||||||
|
Я тут опять со своими любимыми картинками:
Когда говорят о необходимости создавать формы динамически имеют в виду тот факт, что экземпляр формы, будучи созданным, занимает сколько-то памяти. Но если форма нужна нечасто и лишь на короткое время, то ее не обязательно создавать вместе с запуском всего приложения и уничтожать тольлко лишь по его завершению. Можно посередине работы программы создать ее, а когда она станет более не нужной, уничтожить, тем самым заняв память под нее лишь на короткое время. Не хотите мурдыкаться с ручным созданием форм? Создайте ее в редакторе (Меню File->New->Form). Так же набросайте требуемые вам компоненты, все дела. Но только уберите ее из автосоздания (Меню Project->Options), перенеся из левой колонки в правую: Либо ручками: (Меню Project->View Source): Project2.cpp
Далее сделайте ее динамически создаваемой: Unit1.cpp
И допишите, чтобы по закрытию формы она не пряталась, а уничтожалась: Unit2.cpp
Архив с проектом: DinamicForm.rar
1
|
||||||||||||||||
|
|
||||||||||||||||
| 21.02.2014, 10:33 [ТС] | ||||||||||||||||
|
SatanaXIII отличный показательный пример,спасибо.
На счет того как так получается, что при удалении формы , что условие компонента работает. то делаю следующим образом : Создаю в шапочке едик
Далее хреначу форму. по суте она же ссобой должна все подчистить где является родителем.....но порой если проверять выше упомянутое условие....оно всплывает как истина
А на счет писать в других средах, мне интереснее и попонятнее именно Builder (просто Rad немного пофункциональние, потому и на него перешел) ![]() Благодаря Вам (тем кто откликнулся на тему), стало понятно что статика или динамика не влияет на расход ресурсов системы, что было для меня важно
0
|
||||||||||||||||
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
||||||||||||||||||
| 21.02.2014, 11:18 | ||||||||||||||||||
|
Вот так
Но если вы наследуетесь напрямую от TForm, то наверное это единственный вариант - сделать его глобальным. По крайней мере ничего сейчас в голову не приходит. P.S. Вот вы пишите:
1
|
||||||||||||||||||
|
|
|
| 21.02.2014, 11:32 [ТС] | |
|
"Форма при своем уничтожении не выставляет свои булевые значения в false" это для меня новость, так же как и new TForm(this);.....с этим у меня были проблемы и не понятные ошибки, Огроменное спасибо!!!!!!
0
|
|
|
|
|
| 21.02.2014, 12:23 | |
|
0
|
|
|
|
||
| 22.02.2014, 11:40 | ||
|
В том же случае, когда соблюдается принцип инкапсуляции ООП и все связанное непосредственно с объектом хранится внутри этого объекта, получаем обычную картину. Разрушаем форму, обнуляем указатель на нее - и все, получить доступ к какому-либо невалидному указателю мы уже просто не можем. Кстати, если вся эта ерунда из-за простеньких диалогов с эдитами и прочим, то есть множество готовых диалогов как в VCL( Vcl.Dialogs ), так и в WinAPI( Dialog Boxes ) и не надо ничего городить. Например, с эдитом - InputBox.
1
|
||
|
|
|
| 24.02.2014, 10:41 [ТС] | |
|
"Например, с эдитом - InputBox. "
Век живи,век учись, про него совсем забыл, благодарю
0
|
|
| 24.02.2014, 10:41 | |
|
События динамически созданных объектов Удаление динамически созданных TSpeedButton Удаление динамически созданных объектов Удаление динамически-созданных компонентов События динамически созданных компонентов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|