|
28 / 24 / 10
Регистрация: 26.04.2015
Сообщений: 307
|
||||||||||||||||
Дочерние формы (не MDI) и STL::List22.08.2016, 23:53. Показов 3747. Ответов 63
Хай всем, нашёл тему по форуму, близкую к моей задаче:
Динамическое создание и удаление компонентов., но возник вопрос, корректно ли использование того кода для компонентов формы
Unit1.cpp
0
|
||||||||||||||||
| 22.08.2016, 23:53 | |
|
Ответы с готовыми решениями:
63
Работа с MDI и Дочерние формы MDI вместо закрытия главной формы закрываются дочерние Как сделать что бы дочерние формы в MDI application delphi сразу не открывались при запуске программы |
|
28 / 24 / 10
Регистрация: 26.04.2015
Сообщений: 307
|
|||||||||||
| 24.08.2016, 02:57 [ТС] | |||||||||||
|
аап теме!
Если нечётко выразился в топике - мне нужно создать по нажатию TForm1::Button1 динамические компоненты-объекты дочерние формы (сделано) и при закрытии любой их них - удалялся бы нужный указатель на эту форму. Как я понял, для создание нескольких компонентов и потом их произвольного удаления лучше использовать STL::List, в котором элементами будут указатели на объекты-формы. адреса дочерних форм проверил - в list записываются (по дебагу до этого не мог увидеть )
P.S.: очень нужна помощь с этими вопросами! ![]() ![]() + любые замечания по коду, если там есть косяки, а они скорее всего есть)
0
|
|||||||||||
|
Модератор
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
|
|
| 24.08.2016, 06:50 | |
|
Wolver, 1 если сами хотите управлять временем жизни формы подавайте в её конструктор 0. 2 если хотите удалить её из списка при закрытии то в OnClose формы перебирайте список и как найдёте элемент равный this удалите его
0
|
|
|
236 / 196 / 21
Регистрация: 04.06.2014
Сообщений: 1,309
|
||
| 24.08.2016, 07:13 | ||
|
Не там чисто, где убирают, а там, где не сорят. Ай-м сорри
0
|
||
|
Модератор
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
|
|
| 24.08.2016, 07:41 | |
|
SmittWesson, кстати хороший вопрос - из списка то мы удалимся, а кто вызовет delete? Думаю надо глянуть есть ли у формы какой нибудь флажок типа удалить при закрытии
0
|
|
|
279 / 156 / 52
Регистрация: 30.06.2011
Сообщений: 1,712
|
|
| 24.08.2016, 07:49 | |
|
0
|
|
|
Модератор
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
|
|
| 24.08.2016, 07:56 | |
|
d7d1cd, можно, главное что бы после того метода где вы это сделаете (закрытие приводит к вызову нескольких методов) не вызывалось ещё чего нибудь
0
|
|
|
236 / 196 / 21
Регистрация: 04.06.2014
Сообщений: 1,309
|
||
| 24.08.2016, 08:01 | ||
|
0
|
||
|
Модератор
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
|
|
| 24.08.2016, 08:09 | |
|
d7d1cd, вроде так - в FormClose приходит Action и если присвоить ему caFree форма сама удалится при закрытии
0
|
|
|
236 / 196 / 21
Регистрация: 04.06.2014
Сообщений: 1,309
|
|||||||
| 24.08.2016, 08:19 | |||||||
0
|
|||||||
|
Модератор
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
|
|
| 24.08.2016, 08:33 | |
|
SmittWesson, у человека есть в коде делит, он знает о его существовании по определению так как использует нью
0
|
|
|
236 / 196 / 21
Регистрация: 04.06.2014
Сообщений: 1,309
|
|
| 24.08.2016, 09:42 | |
|
И Гидэ Мопасан. Не вижу. Может у мня проблемы со зрением?
0
|
|
|
Модератор
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
|
|
| 24.08.2016, 10:07 | |
|
SmittWesson, 55-я строка Unit1.cpp - убийство дочерней динамической при закрытии родительской. Кстати эдит убивать не нужно если вы в его конструктор подали форму на которой он лежит - его убьёт сама форма в своём деструкторе
0
|
|
|
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 24.08.2016, 10:09 | ||
|
0
|
||
|
Модератор
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
|
|
| 24.08.2016, 10:14 | |
|
Fulcrum_013, 1 что за ренегатство про табу на std)? 2 человек не хочет ждать смерти владельца, а создавать и убивать в полёте, поэтому owner должен быть 0 (у форм но не у контролов)
0
|
|
|
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||||||
| 24.08.2016, 11:05 | ||||||||
|
Добавлено через 21 минуту А вообще последнее время приходится програмить в основном без VCL так слепил себе пару шаблонов по образу и подобию чтобы не парится со владениями и тп:
0
|
||||||||
|
Модератор
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
|
|
| 24.08.2016, 11:05 | |
|
Fulcrum_013, 1 гхм)) 2 нет никакого капота - человек хочет к примеру что бы при клике на что-то открывалось окно к примеру свойств и что бы можно было таких окон открыть сколько угодно - при клике он окно создаёт, при закрытии удаляет, если он оставит это дело на владельца окна так и будут плодится пока владелец не умрет либо нужно его побуждать убивать их что ничем не отличается от явного уничтожения
0
|
|
|
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||
| 24.08.2016, 11:17 | |||
|
Добавлено через 7 минут
0
|
|||
|
Модератор
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
|
|
| 24.08.2016, 12:00 | |
|
Fulcrum_013, caFree присваивать нужно безусловно и об этом сказано. caFree не имеет отношения к владельцу - форма должна удалится даже если владелец 0 - так зачем её обманывать и назначать владельцем того кто так никогда ничего с ней и не сделает? Контейнер (тут он один - список) нужен лишь для хранения указателей. То что мы храним в нем указатель на форму никак не влияет на саму форму. То что мы удаляем указатель ИЗ СПИСКА никак не влияет на форму. Явное удаление формы как сказано выше в данном случае нежелательно и возложено на обработчик закрытия формы при условии присвоения Action значения caFree. Так что же вам тут не нравится? То что вместо TList или вообще TForm[] использовали std::list? Это дело вкуса и к задаче отношения не имеет.
0
|
|
|
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 24.08.2016, 12:04 | ||
|
0
|
||
| 24.08.2016, 12:04 | |
|
Помогаю со студенческими работами здесь
20
mdi - дочерние окна перетирают друг друга
Работа с STL list + пропись List.h
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|