Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Пакет


sergeyst ©   (2007-01-29 16:45:00) 

В пакете пишу

initialization
 RegisterClass(TForm1);

загружаю:
var
 Form: TForm;
 FormClass: TFormClass;
 Hand: HModule;
begin
 Hand := LoadPackage('Package1.bpl');
 if Hand > 0 then
 begin
   FormClass := TFormClass(GetClass('TForm1'));
   if Assigned(FormClass) then
   begin
     Form := FormClass.Create(self);
     Form.Show;
   end;
 UnloadPackage(Hand);
 end;
end;
пакет загружается, класс - нет. Где я не то делаю?


Сергей М.   (2007-01-30 12:28:00) [1]

Главное правило - ты вправе выгружать пакет лишь ПОСЛЕ того как созданный в пакете объект-форма будет успешно разрушен.


sergeyst   (2007-01-30 12:05:00) [2]


> Что показывает отладчик ?

Если в Дельфи загружен пакет, то все работает, если хост - AV, на последней строке(end;). Потом открывается окно CPU где вместо команд и данных (второй столбец) только ????

Написал:
...
Form.ShowModal;
Form.Free;
так все работает.
Т.е. надо освобождать пакетную форму из хост-прил.? хотя в пакете в OnClose - Action := caFree;

Если
Form.Show;
и UnloadPackage в OnClose хоста, то Form.Free делать не надо. Так и должно быть? Если да, то почему?


Сергей М.   (2007-01-30 08:58:00) [3]


> После закрытия формы(которая в пакете) выдает Access Violation


Что показывает отладчик ?


> Надо ли делать


Не надо.


sergeyst   (2007-01-30 08:56:00) [4]

Хост-приложение
Build With Run-Time Packages = Package1

Form.ShowModal;

После закрытия формы(которая в пакете) выдает Access Violation.
Надо ли делать
finalization
UnregisterClass? Хотя AV и по-любому.


Сергей М.   (2007-01-29 17:02:00) [5]


> вызывающий юнит не знает о его существовании


Обязан узнать после RegisterClass, если RTTI-таблица (у вызывающего и вызываемого модулей) общая


Сергей М.   (2007-01-29 16:58:00) [6]


> его тамвообще нету
>


Где "там" ?

Хост-приложение, использующее пакет времени выполнения, д.б. собрано с этой опцией.


sergeyst   (2007-01-29 16:58:00) [7]

вызывающий юнит не знает о его существовании, да, вроде, и не должен бы(так у Кенту написано)


sergeyst   (2007-01-29 16:57:00) [8]


> Сергей М. ©   (29.01.07 16:47) [1]

т.е. его там вообще нету


sergeyst   (2007-01-29 16:56:00) [9]

да


Сергей М.   (2007-01-29 16:47:00) [10]

Build With Run-Time Packages = True ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо