PDA

View Full Version : مشک در نمایش فرم موجود در پکیج BPL



amir_alaki
یک شنبه 01 آذر 1394, 14:03 عصر
با سلام
پروژه من به صورت چند تا BPL هست که در کنار برنامه اصلی قرار میگیرند و اجرا میشه
با نسخه های قدیمی دلفی مشکل نیست( D7-2010) ولی با نسحه های جدید مثل Rad Studio 10 و یا XE4 مشکل داره و کار نمی کنه
پکیج به درستی لود میشه و کلاس هم به درستی رجیستر میشه ولی با استفاده از تابع GetClass کلاس پیدا نمیشه و خروجی nil برمیگردونه.
این کد کلاس


type
TF_ACC_00001 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;

var
F_ACC_00001: TF_ACC_00001;

implementation

{$R *.dfm}

initialization

RegisterClass(TF_ACC_00001);
ShowMessage('Register ok');



و این هم کدی برای فراخوانی پکیج و اجرای فرم



HandlePack := LoadPackage(pkname);

if HandlePack > 0 then
begin
FormClass := TFormClass(GetClass(formname));

if Assigned(FormClass) then
begin
FormScroll := FormClass.Create(Application);
FormScroll.Parent := PnlShow;

FormScroll.Show;
FormScroll.BorderStyle := bsNone;
FormScroll.WindowState := wsMaximized;
FormScroll.Name := formname;


end;

end;


با تشکر

amir_alaki
سه شنبه 03 آذر 1394, 11:44 صبح
با سلام
مشکل با نصب محدد RadStudio حل شد .ولی کلی زمان گرفت
دوستان کد بالا کار می کنه و برای دینامیک لود کردن یک پکیج میشه استفاده کرد ولی باید خودتون بهینش کنین و پکیج رو در صورت اتمام کار با UnloadPackage(Hwdl) آنرا آنلود کنید

MRoustaei
شنبه 24 بهمن 1394, 16:23 عصر
سلام دوست عزیز میشه یه نمونه سورس برای من ایمیل کنی من با دلفی 7 انجام دادم nil برمیگرئونهMojtabaRoustaei@yahoo.com