|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.08.2010, 13:59 | #41 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
13.08.2010, 14:40 | #42 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Проще создать фиктивный компонент и задать его владельцем (Owner) всех форм и компонент от DLL. Удаляете этот компонент - удаляются все формы.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
13.08.2010, 14:41 | #43 | |
Форумчанин
Регистрация: 01.09.2009
Сообщений: 151
|
К сожалению, последние три совета (№39, №40 и №41) - это не совсем то, что требуется и вот почему:
1. что бы в секции finalization разместить очистку списка созданных экземпляров мне нужно указатели на эти экземпляры как-то там разместить. А страница создаётся таким образом: MyClass := GetClass("ClassName"); Page := MyClass.Create; То есть, здесь я использую возможность не передавать в пакет какие-либо данные, что в свою очередь позволяет мне размещать в виде страниц любые формы унаследованные от TForm. Даже не надо писать на OnClose Action := caFree; Это очень удобно и от этого не хочется отказываться. 2 Да, это вариант. Но надо позаботиться о том, что бы имена классов расположенных внутри пакетов однозначно вычислялись по имени пакета. Оно, конечно, како-никакой выход из тупика, но все эти правила именований (не так назовёшь - не будет работать) вгоняют меня в меланхолию. 3. Да, конечно. Форма при закрытии сама освобождает все свои контролы, отцепляется от БД, высвобождает занятые ею ресурсы, но представьте, что у Вас (ну или у меня) загружены 2 страницы - 1-ая от класса TfrmMyPageOne, а вторая - от класса TfrmMyPageTwo, и при этом загружены пакеты MaPackSome и MyPackStuff. И тут возникает необходимость обновить пакет MyPackStuff. Вопрос: как узнать какую страницу надо закрыть, что бы нужный мне пакет выгрузился? А выгрузить его надо, т.к. надо обновить его файл. Кстати, есть ещё один вариант - выгрузить вообще все формы, обновить пакет и загрузить формы обратно. Но согласитесь, что выгрузка только нужных форм выглядит куда красивее! Цитата:
Ведь загрузка пакетов происходит при запуске программы, а страницы из форм создаются в течение работы произвольно. Только что встретил на одном форуме похожую проблему. Цитата оттуда: "По классу формы элементарно определить имя модуля". Это как раз то, что нужно. Но описание методы там нет. Вот что по этому поводу говорит Гугл Как? Последний раз редактировалось Stilet; 13.08.2010 в 16:04. |
|
13.08.2010, 15:26 | #44 |
Форумчанин
Регистрация: 29.12.2007
Сообщений: 137
|
Ни разу не проблема. Усовершенствуй свою фабрику форм, реализуй в пакетах что-то вроде такого:
Код:
|
13.08.2010, 16:00 | #45 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Цитата:
1. попросить нужный пакет самому закрыть свои страницы(формы) procedure CloseMyForms; exports; (screen.forms[j]=<mtclass>) можно даже будет проверить удалось ли все сделать function CloseMyForms; boolean; 2. спросить у пакета какая страница его
программа — запись алгоритма на языке понятном транслятору
|
|
13.08.2010, 16:27 | #46 | |
Форумчанин
Регистрация: 01.09.2009
Сообщений: 151
|
Цитата:
Последний раз редактировалось Greek9000; 13.08.2010 в 16:31. |
|
13.08.2010, 16:35 | #47 | |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Цитата:
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
|
13.08.2010, 16:37 | #48 | |
Форумчанин
Регистрация: 29.12.2007
Сообщений: 137
|
Цитата:
function FindHInstance(Address: Pointer): LongWord; function FindClassHInstance(ClassType: TClass): LongWord; GunSmoker опередил Последний раз редактировалось Ins; 13.08.2010 в 16:43. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Runtime runtime = Runtime.getRuntime(); | Pti44ka | Общие вопросы по Java, Java SE, Kotlin | 1 | 22.11.2009 10:45 |
без запроса Package? | koleko | Общие вопросы Delphi | 2 | 18.02.2009 22:59 |
RunTime Error713 (VB) | vio | Помощь студентам | 2 | 12.12.2008 20:45 |
Unit 'MyLib' implicitly imported into package 'MyPackage'. как исправить? | SkAndrew | Компоненты Delphi | 0 | 06.04.2008 00:28 |
Runtime programming | JoanM | Общие вопросы Delphi | 4 | 09.01.2008 11:00 |