Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Формы DLL закрытие / 12 сообщений из 12, страница 1 из 1
16.04.2018, 17:47
    #39631014
verve
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формы DLL закрытие
Есть приложение, формы которого подгружаются из DLL. Формы открываются, а потом может где-то скрытые висят. Как их правильно все закрыть автоматически?
...
Рейтинг: 0 / 0
16.04.2018, 17:49
    #39631017
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формы DLL закрытие
verve,

Автоматически никак. Только правильно.
...
Рейтинг: 0 / 0
16.04.2018, 19:16
    #39631082
verve
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формы DLL закрытие
YuRock, как же это сделать правильно?
...
Рейтинг: 0 / 0
17.04.2018, 02:32
    #39631234
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формы DLL закрытие
verveYuRock, как же это сделать правильно?Зависит от "приложения".
Наверняка будет "правильно" закрывать (и освобождать объекты) в каждой отдельной dll перед ее выгрузкой (в отдельной функции финализации dll).
...
Рейтинг: 0 / 0
17.04.2018, 09:41
    #39631317
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формы DLL закрытие
YuRockverveYuRock, как же это сделать правильно?Зависит от "приложения".
Наверняка будет "правильно" закрывать (и освобождать объекты) в каждой отдельной dll перед ее выгрузкой (в отдельной функции финализации dll).

Ты не темни, ты пальцем тки - ТС же сейчас кинется умные статьи читать и ловить именно момент выгрузки DLL :)

2ТС: Я бы сделал проще - 2 функции в DLL, 1я из которых открывает и показывает форму, 2я - освобождает эту форму по команде из основного приложения. Собственно все.
...
Рейтинг: 0 / 0
17.04.2018, 10:20
    #39631355
Василий 2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формы DLL закрытие
verveЕсть приложение, формы которого подгружаются из DLL. Формы открываются, а потом может где-то скрытые висят. Как их правильно все закрыть автоматически?
Смотря что имеется в виду под "автоматически" и как организовано создание форм.
Можно, например, добавить поле главной формы - интерфейсный объект-список, хранящий указатели на все созданные формы и в деструкторе их удаляющий. Тогда не включая кода самого списка применение будет таким
frm := CreateFormFromDLL;
FDLLFormsList.Add(frm);
frm.Show; ...
...
Рейтинг: 0 / 0
17.04.2018, 10:55
    #39631376
ziv-2014
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формы DLL закрытие
DarkMaster,
Да еще помнить про ShareMem, иначе будут проблемы.
...
Рейтинг: 0 / 0
17.04.2018, 11:01
    #39631386
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формы DLL закрытие
ziv-2014DarkMaster,
Да еще помнить про ShareMem, иначе будут проблемы.

Тут уже начинается гадание на кофейной гуще - ТС вообще никакой вводной не дал - хз, что там у него накручено.
...
Рейтинг: 0 / 0
17.04.2018, 11:03
    #39631388
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формы DLL закрытие
ziv-2014DarkMaster,
Да еще помнить про ShareMem, иначе будут проблемы.Ну ShareMem тут (пока) не при чем.
...
Рейтинг: 0 / 0
17.04.2018, 11:06
    #39631391
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формы DLL закрытие
Василий 2frm := CreateFormFromDLL;
FDLLFormsList.Add(frm);
frm.Show; ...
Т.е. чтобы функция dll возвращала программе объект класса формы для создания/работы/удаления?
...
Рейтинг: 0 / 0
17.04.2018, 11:08
    #39631392
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формы DLL закрытие
DarkMasterТС же сейчас кинется умные статьи читать и ловить именно момент выгрузки DLL :)Да ладно, я специально в скобках написал про отдельную фцию)
...
Рейтинг: 0 / 0
17.04.2018, 13:46
    #39631587
Василий 2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формы DLL закрытие
YuRockВасилий 2frm := CreateFormFromDLL;
FDLLFormsList.Add(frm);
frm.Show; ...
Т.е. чтобы функция dll возвращала программе объект класса формы для создания/работы/удаления?
Я хз, как там у него сделано. Бывает, что и объект возвращают - некузяво, но для ограниченных сценариев сойдет. По уму, конечно, максимум, что должна вернуть DLL, это обезличенный указатель
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Формы DLL закрытие / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]