|
28 / 24 / 10
Регистрация: 26.04.2015
Сообщений: 307
|
||||||||||||||||
Дочерние формы (не MDI) и STL::List22.08.2016, 23:53. Показов 4410. Ответов 63
Хай всем, нашёл тему по форуму, близкую к моей задаче:
Динамическое создание и удаление компонентов., но возник вопрос, корректно ли использование того кода для компонентов формы
Unit1.cpp
0
|
||||||||||||||||
| 22.08.2016, 23:53 | |
|
Ответы с готовыми решениями:
63
Работа с MDI и Дочерние формы MDI вместо закрытия главной формы закрываются дочерние Как сделать что бы дочерние формы в MDI application delphi сразу не открывались при запуске программы |
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||
| 25.08.2016, 21:35 | |||
|
Добавлено через 3 минуты
0
|
|||
|
28 / 24 / 10
Регистрация: 26.04.2015
Сообщений: 307
|
||
| 25.08.2016, 21:59 [ТС] | ||
|
я не правильно выразился, уничтожаем мы одно из дочерних окон, но при этом я вижу в дебаге что после отработки OnClose, форма получив Action = caFree убивается, и сразу же уменьшается Count у TComponentList.
В STL::List же в OnClose делал принудительно delete frm_2; frm_2 = NULL; Почему так?
0
|
||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 25.08.2016, 22:11 | ||
|
0
|
||
|
|
||
| 28.08.2016, 13:22 | ||
|
Почему не использовать TObjectList или TComponentList а использовать STL по тому что это дело ситуации в большинстве случаев STL удобнее.
0
|
||
|
236 / 196 / 21
Регистрация: 04.06.2014
Сообщений: 1,309
|
||
| 28.08.2016, 15:09 | ||
|
0
|
||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||
| 28.08.2016, 19:27 | |||||
|
Добавлено через 39 секунд Добавлено через 1 час 48 минут
0
|
|||||
| 29.08.2016, 09:31 | |
|
0
|
|
| 29.08.2016, 09:36 | |
|
Не по теме: volvo =-O
0
|
|
|
236 / 196 / 21
Регистрация: 04.06.2014
Сообщений: 1,309
|
|||
| 29.08.2016, 10:41 | |||
|
Добавлено через 16 минут
0
|
|||
|
Супер-модератор
|
||
| 29.08.2016, 10:42 | ||
|
0
|
||
|
236 / 196 / 21
Регистрация: 04.06.2014
Сообщений: 1,309
|
||
| 29.08.2016, 10:54 | ||
. Результат то выдавался один, для одинаковых тестов. Там, не один я смеялся.
0
|
||
|
Модератор
3410 / 2182 / 354
Регистрация: 13.01.2012
Сообщений: 8,476
|
|
| 29.08.2016, 11:01 | |
|
volvo, если я пишу консоль/библиотечную функцию и мне нужно организовать список, то наверное я буду использовать STL (и мне кажется что и вы тоже будете) потому что это переносимое решение не только в другие ОС но и в другие среды причем при нулевых или даже положительных "побочных" эффектах со стороны инструментария
0
|
|
|
|
|||||
| 29.08.2016, 11:50 | |||||
![]() Добавлено через 2 минуты Одно дело пилить все с нуля под каждую ос, другое устранить огрехи.
0
|
|||||
|
28 / 24 / 10
Регистрация: 26.04.2015
Сообщений: 307
|
||||||||||||
| 29.08.2016, 17:13 [ТС] | ||||||||||||
|
И последующие комменты Avazart про целесообразность STL весьма разумные, ведь тот же multimap весьма удобен для работы с массивом пар элементов с повторением, а vector приятная замена обычных дин. масс без жёсткого слежения за утечками памяти. ------------------ Конечная задумка программы - это использовать формы-дочки для GUI-визуализации создания таблиц базы данных. Есть программный продукт ER-Win, и в его физ. или логич. моделях графически можно создавать ER-диаграммы "сущность-связь" со всеми ключами и инф. полями. Мне интересно сделать аналогичную функциональность, программно создав файл б.д. (сделано), создать сущности - объекты класса, они же дочерние формы, каждая из которых будет представлять отдельную таблицу б.д. (сделано), наполнить эти формы нужными компонентами TEdit, TButton, TLabel и прочие что понадобятся (это в процессе). Далее после создания и заполнения компонентов именами и типами будущей таблицы сделать SQL->Text на CREATE TABLE. Почему дочерние формы для этой графич. цели? - потому что полностью всё в openGL я не потяну, да и наверно нет смысла, т.к. ф-циональность формы полностью покрывает потребности) ------------------ В догонку, вопрос по теме: я так и не понял (допустим на дочерних формах сейчас только 1 динамич. Edit), как узнавать то, что я написал какой-то текст в Edit 1-й дочерней формы, а не 3-й? Мне нужно - проходиться в цикле и сравнивать *Sender формы с чем-то и потом узнав что работаю с формой 3 получать данные с Edit именно 3-й формы; - или отлавливать активность формы, - или перефразировать структуру класса, создавая объект TComponentList, в котором будут поля-указатели на саму форму-дочку и TComponentList,ы Edit и других компонентов? - или что? Просто пока с этим у меня полная каша... Потому что я хочу правильно связать визуализацию с ООП, чтобы я мог манипулировать дочерними окнами как объектами класса. На данный момент с подачи volvo, Fulcrum_013 и своих изысканий по гуглу, код выглядит так: Unit1.h
0
|
||||||||||||
|
|
||
| 29.08.2016, 17:36 | ||
|
Может не стоит плодить отдельные формы? Использовать TPageControl + TFrame т.е все внутри основного окна, но со сменой фреймов.
Добавлено через 1 минуту Кстати в деструкторе тоже не плохо удалять их. Добавлено через 4 минуты Подмена WndProc тоже не не ясна. Добавлено через 3 минуты Если же хотите делать именно формами то может стоит почитать про MDI приложения.
0
|
||
|
28 / 24 / 10
Регистрация: 26.04.2015
Сообщений: 307
|
|||||||||||
| 29.08.2016, 18:14 [ТС] | |||||||||||
"Поскольку много подчиненных форм имеют одинаковое имя и одинаковый код, то не следует в коде программы (если код используется несколькими экземплярами формы) использовать имя формы. В модуле формы для ссылок на текущую форму используйте ключевое слово Me." (http://www.codenet.ru/progr/vbasic/bit/MDI.php (с))
0
|
|||||||||||
|
|
|||
| 29.08.2016, 18:16 | |||
|
Если вы не знаете что такое конструктор, список инициализации, деструктор. Советую начать с азов С++, а не формошлепства в билдере.
0
|
|||
|
28 / 24 / 10
Регистрация: 26.04.2015
Сообщений: 307
|
||||||||
| 29.08.2016, 18:29 [ТС] | ||||||||
http://ymah.narod.ru/sem8/image022.jpg
0
|
||||||||
|
|
|||
| 29.08.2016, 18:49 | |||
|
Как по мне вероятно стоило бы не формы использовать, а отрисовывать в TPaintBox руками свои собственные объекты. Не по теме: Вот где бы пригодился Qt-шний QGraphicsScene+QGraphicsView, опять же со сглаживанием линий итп...
0
|
|||
| 29.08.2016, 18:49 | |
|
mdi - дочерние окна перетирают друг друга
Работа с STL list + пропись List.h
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С.
Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
|
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию?
Фраза «Любая достаточно развитая технология неотличима от магии». . .
|
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль?
Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
|
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология.
«Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
|
|
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки.
Добавлены следующие реквизиты типа Булево:
- Буквы;
- Цифры;
- Символы.
Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
|
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей.
Самым главным критерием для. . .
|
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store.
И так:
1. Скачиваем с. . .
|
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге).
Задача:
Программно добавить префикс в нумерацию документов.
Решение:
В модуле объекта. . .
|