Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.02.18;
Скачать: [xml.tar.bz2];

Вниз

Пакет   Найти похожие ветки 

 
sergeyst ©   (2007-01-29 16:45) [0]

В пакете пишу

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-29 16:47) [1]

Build With Run-Time Packages = True ?


 
sergeyst ©   (2007-01-29 16:56) [2]

да


 
sergeyst ©   (2007-01-29 16:57) [3]


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

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


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


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


Где "там" ?

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


 
sergeyst ©   (2007-01-29 16:58) [5]

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


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


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


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


 
sergeyst ©   (2007-01-30 08:56) [7]

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

Form.ShowModal;

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


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


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


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


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


Не надо.


 
sergeyst ©   (2007-01-30 12:05) [9]


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

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

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

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


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

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



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.02.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.054 c
15-1169938212
hmmm
2007-01-28 01:50
2007.02.18
PHP mail


2-1170241340
Radgar
2007-01-31 14:02
2007.02.18
Поворот рисунка


2-1170326809
sergeyst
2007-02-01 13:46
2007.02.18
Drag&drop


3-1164605686
Kvinta
2006-11-27 08:34
2007.02.18
DBGrid. Запомнить позицию.


15-1169770019
Германн
2007-01-26 03:06
2007.02.18
Даже великие мастера могут нести чушь :)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский