| 
| 
 | Вопрос # 2 894/ вопрос открыт / | 
 |  Доброго времени суток, уважаемые эксперты!в двух разных пакетах есть формы которые наследуются от одной
 в итоге загружаю один пакет
 потом его выгружаю
 загружаю второй и ошибка родительская форма уже используется первым пакетом
 Примечание #1 (9 июня 2009, 12:08): hPack:= loadPackage('DocPack.bpl');InitializePackage(hPack);
 PersClass:= TFormClass(getClass('TForm5'));
 f:=PersClass.Create(self);
 SetObjectProp(f,'MSM',msm);
 SetReadOnlyPropValue(f,msm,'MSM',PersClass);
 SetPropValue(f,'Apparat',msm.x('w APPARAT'));
 //SetReadOnlyPropValue(f,nil,'MSM',PersClass);
 f.ShowModal;
 f. Free;
 //f:=nil;
 
 FinalizePackage(hPack);
 
 
|  |   Вопрос задал: seryoga (статус: 1-ый класс)Вопрос отправлен: 9 июня 2009, 12:00
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 18; последнее сообщение — 14 июля 2009, 16:34; участников в обсуждении: 2. 
|   | Вадим К (статус: Академик), 9 июня 2009, 12:03 [#1]:форму за собой удаляли перед выгрузкой пакета? Галочка "подтверждения прочтения" - вселенское зло. |  
|   | seryoga (статус: 1-ый класс), 9 июня 2009, 12:05 [#2]:Да! |  
|   | Вадим К (статус: Академик), 9 июня 2009, 12:29 [#3]:а ещё наверное неплохо было бы проверить, "разрегистрировалась" ли форма. Если пакет "самопальный", то могло быть и не так. Если имена классов форм совпадают, то повторная регистрация как раз и приводит к последствиям. Я непомню эту функцию, но думаю стоит начать с изучения этой статьи http://delphimaster.ru/articles/rtti/index.html , а там и идея придет.
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | seryoga (статус: 1-ый класс), 9 июня 2009, 13:17 [#4]:имена классов не совпадают в первом пакете  TForm5 = class(TSSForm) во втором пакете
 TDerkGr = class(TSSForm)
 и т д
 |  
|   | seryoga (статус: 1-ый класс), 9 июня 2009, 13:18 [#5]:класс  TSSForm нигде не регистрируется |  
|   | seryoga (статус: 1-ый класс), 9 июня 2009, 13:20 [#6]:тоесть лежит в отдельном юните |  
|   | Вадим К (статус: Академик), 9 июня 2009, 14:51 [#7]:Если класс не зарегистрируется, то его использовать сложно. Или его может создавать другой класс, который должен быть зарегистрированный.
 Так как используется GetClass, то класс объязан быть зарегистрированный.
 Родительская форма храниться в каждом пакете или она одна на двоих и храниться где то в третьем пакете?
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | seryoga (статус: 1-ый класс), 9 июня 2009, 15:08 [#8]:правильно зарегистрирован класс TFORM5 |  
|   | seryoga (статус: 1-ый класс), 9 июня 2009, 15:10 [#9]:родительская форма храниться в U_TSSForm.dcu |  
|   | seryoga (статус: 1-ый класс), 9 июня 2009, 15:11 [#10]:Проблема на сколько я понимаю в том что 1 пакет говорит что U_TSSForm.dcu это его и даже когда выгружается не отпускает его |  
|   | Вадим К (статус: Академик), 9 июня 2009, 15:15 [#11]:вы путаете единицы компиляции и единицы выполнения. В работающем приложении не имеет значения в каком юните находился класс. Дело в том, что у Вас форма TSSForm находиться в двух копиях в двух пакетах. и две формы TForm5 и TDerkGr используют разные копии формы TSSForm. я не знаю, всё иерархию и связи между формами, но думаю, что надо начать с этого. Галочка "подтверждения прочтения" - вселенское зло. |  
|   | seryoga (статус: 1-ый класс), 9 июня 2009, 17:02 [#12]:Тоесть получается что оба пакета используют копии TSSForm и тот пакет который грузиться вторым не может загрузиться только потому что копия TSSForm уже загружалась другим пакетом??? даже при условии что он уже выгружен??? |  
|   | Вадим К (статус: Академик), 9 июня 2009, 17:25 [#13]:потому что не отрегистрирована форма. А её может ещё кто то использовать.... Галочка "подтверждения прочтения" - вселенское зло. |  
|   | seryoga (статус: 1-ый класс), 9 июня 2009, 17:36 [#14]:так отрегистрирована!!! |  
|   | Вадим К (статус: Академик), 9 июня 2009, 17:45 [#15]:по коду не вижу. Я бы вынес общую форму в отдельный пакет. Это должно решить проблему. Галочка "подтверждения прочтения" - вселенское зло. |  
|   | seryoga (статус: 1-ый класс), 9 июня 2009, 17:47 [#16]:Спасибо!!! Попробую так сделать о результатах напишу завтра |  
|   | seryoga (статус: 1-ый класс), 14 июля 2009, 15:14 [#17]:Вынес форму в отдельный пакет проблемы это не решило Теперь после загрузки пакета с формой не загружается ни один пакет из тех которые грузились по очереди
 !!!
 |  
|   | Вадим К (статус: Академик), 14 июля 2009, 16:34 [#18]:значит что то мешает. надо искать. Логи и вперёд! Галочка "подтверждения прочтения" - вселенское зло. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |