У меня есть пакет test.bpl в моем приложении и он имеет форму с именем myPackageForm. после загрузки моего пакета, когда я хочу закрыть myPackageForm, приложение завершится.Delphi XE4: Закрытие внутренней формы пакета приводит к завершению приложения
Главная инициализация проекта:
Application.Initialize;
Application.CreateForm(TMainForm,MainForm);
Application.Run;
MainForm FormCreate:
aPackage := LoadPackage('my bpl path'+test.bpl);
@P_ItemClick := GetProcAddress(aPackage,'ItemClickExcecute');
MainForm ButtonClick:
P_ItemClick(Sender);
testPackage CommandsUnit:
Procedure ItemClickExecute(Sender : TObject)
begin
TmyPackageForm.ShowForm();
end;
exports
ItemClickExecute;
end.
myPackagForm есть процедура класса, чтобы показать его:
Class Procedure TmyPackagForm.ShowForm;
begin
if not Assigned(myPackagForm)
myPackagForm := Application.CreateForm(TmyPackagForm ,myPackagForm);
myPackagForm.Show;
end;
И OnClose процедура:
Release;
В качестве решения я попробовать другую команду:
myPackagForm := TmyPackagForm.Create(Application);
в создание myPackagForm;
Может ли кто-нибудь знать, что произошло в Delphi XE4 с командой CreateForm на пакетах?
Ничего не изменилось. Первая форма, созданная с помощью CreateForm, является основной формой. –
@ Дэвид Хеффернан Вы правы. но почему у меня не было проблем с закрытием форм пакета в Delphi7 при использовании команды Application.CreateForm в моих пакетах? –
Я уверен, что знаю, что происходит. Я напишу ответ. –