PDA

View Full Version : مشکل در فراخوانی یک فرم موجود در bpl در برنامه اصلی



rahro
دوشنبه 15 مهر 1392, 19:10 عصر
سلام دوستان
قبل از اینکه سوال رو بپرسم کل مطالب مربوط به bpl رو خواندم اما جواب رو نیافتم ،
من یک فایل bpl حاوی یه فرم درست کردم ، حالا میخوام در برنامه اصلی کلاس فرم موجود در bpl را فراخوانی کنم ،
پس از اجرای کد زیر bpl را بدون مشکل پیدا میکند ولی نمی تواند کلاس حاوی فرم رو load کند .

کد من :

procedure TForm2.btn1Click(Sender: TObject);
var
PackageModule: HModule;
formclass:TFormClass;
//AClass: TPersistentClass;
AForm:TForm;
begin
PackageModule:= LoadPackage(ExtractFilePath(Application.ExeName)+' pkg_Sample3.bpl');
if PackageModule <> 0 then
begin
formclass := TFormClass( GetClass('TForm1'));

if formclass <> nil then
with TComponentClass(formclass).Create(Application)
as TCustomForm do
begin
ShowModal;
Free;
end;

UnloadPackage(PackageModule);
end;
end;


در پایان formclass برابر با nil می شود و کلاس فرم در bpl در آن load نمیشود چگونه میشه این مشکل رو حل کرد ؟