تبلیغات
برنامه نویسی و الکترونیک - مقاله : ساخت فایلهای BPL و استفاده از آنها
 
منوی اصلی


--------------------------

--------------------------

--------------------------

--------------------------


سفارش پروژه

E-Mail :
Mahmood_Mehri@Hotmail.com

سایت برنامه نویس :  Mahmood_M


موضوعات

دانلود نرم افزار
 
تخصصی برنامه نویسی
  تخصصی برق ( الکترونیک )
  کامپوننت ها و ابزارها
  نرم افزارهای متفرقه
برنامه نویسی
  مباحث عمومی
  آموزش Delphi

  آموزش زبان C++ / C
 
آموزش Matlab

  آموزش زبان Assembly
  آموزش DataBase

الکترونیک
  مباحث عمومی
  مباحث عمومی الکترونیک
  معرفی قطعات الکترونیکی
  کار با مولتی متر
  مدارات الکترونیک
  میکروکنترلر
  میکروکنترلرهای AVR
  پروژه ها
مباحث متفرقه
  آموزشهای متفرقه
  معرفی سایت
  معرفی کتاب
  پاسخ به سئوالات
  مطالب عمومی


لینك دوستان
:: جک :: اس ام اس :: عکس
:: الکترونیک 89 گیلان
:: سورسهای نرم افزاری
:: اینترنت بدون تحریم
:: علمی.کتاب.مجله.نرم افزار.مقاله
:: مبارزات آزاد
:: برنامه نویسی از اهل زمین
:: :: جزیره ی دانلود ::
:: :: کامپیوتر و IT ::
:: بزرگترین پایگاه مدل لباس اینترنتی
:: مرکز دانلود ایرانیان
:: پایگاه علمی مهندسی تراشه
:: تمامی راهکارهای کامپیوتری
:: برنامه نویسی و طراحی وب
:: خرید ساعت دیواری
:: :: فناوری روز ::
:: :: همه چیز واسه موبایل ::
:: آموزش تخصصی کامپیوتر
:: * پیاز داغ اینترنت ! *
:: جدیدترین موزیکها و نرم افزارها
:: دانلود سورس ویژوال بیسیک
:: امپراطور دانلود و آموزش
:: موبایل و کامپیوتر
:: جدیدترین آهنگهای هفته
:: درباره ی دلفی !
:: برنامه نویس
:: پروژه های رایگان و آموزش ++C
:: ابراهیم آنلاین

 : " مقاله : ساخت فایلهای BPL و استفاده از آنها " :
 
با سلام ، بدون مقدمه میریم سر اصل مطلب :
هر برنامه نویس دلفی مطمئنا در طول فعالیت برنامه نویسیش با فایلهای BPL برخورد داشته ، در این مقاله سعی میکنیم کمی در مورد این فایلها توضیح بدیم و نحوه ی ساخت و استفاده از اونها رو هم بررسی کنیم ...
خوب ، مطمئنا همتون با فایلهای DLL آشنایی دارید ، به زبان ساده فایلهای DLL یا Dynamic Link Library ، به شما این امکان رو می دند که درون اونها تواقع ، متد ها ، اشیاء و ... رو ذخیره کنید و در مواقع لزوم در برنامه ی خودتون اونها رو Load کنید ...
در اینجا قصد داریم با نوع دیگری از فایلهای DLL آشنا بشیم !
فایلهای BPL یا Borland Package Library ، فایلهای کتابخانه ای هستند که توسط شرکت بورلند ( سابق ) ایجاد شدند ، این نوع فایلها که مخصوص IDE دلفی و برنامه های نوشته شده با زبان دلفی هستند ، مانند DLL ها به شما این امکان رو میدن که درون اونها توابع ، متدها ، اشیاء و ... ! رو ذخیره کرده و در مواقع لزوم Load کنید ...

برای درک بهتر مراحل ساخت و استفاده از یک نمونه فایل BPL رو بررسی میکنیم ، قصد داریم یک Form رو درون یک فایل BPL قرار داده و در برنامه اون رو نمایش بدیم ...
برای شروع کار بعد از ورود به محیط دلفی ، کلیه ی پروژه های در حال ساخت ! رو ببندید ( با رفتن به مسیر File > Close All ) ، در ادامه یک Package جدید ایجاد کنید ( از مسیر File > New > Package ) ، بعد از ساخت Package پروژه رو با ذخیره کنید ...
Package ساخته شده دو قسمت به نامهای Contains و Requires داره ، قسمت Contains شامل دستورات و اشیاء ای هست که شما در قالب یک Unit یا Form درون Package خودتون قرار میدید ، قسمت Requires مربوط به میشه به فایلهای مورد نیاز برای Unit هایی که در قسمت Contains قرار داده اید ...
قصد داریم یک Form رو درون Package قرار بدیم ، برای اضافه کردن یک Form به Package روی قسمت Contains راست کلیک کرده و به مسیر " Add New > Form " برید :
---------------------------------------

---------------------------------------
بعد از ساخت فرم اشیاء مورد نظرتون رو درونش قرار بدید و فرم دلخواهتون رو بسازید ، در اینجا قصد داریم فرمی بسازیم که مقداری رو از کاربر دریافت کنه و به برنامه برگشت بده ! ، پس یک Label و یک Edit به همراه یک BitBtn بر روی فرم قرار میدیم :
---------------------------------------

---------------------------------------
به این قسمت دقت کنید :
ما در Package خودمون یک تابع تعریف میکنیم که دو ورودی به عنوان Caption فرم و Caption مربوط به Label دریافت میکنه و در بدنه ی تابع Caption ها رو به Form و Label اختصاص میده و در ادامه فرم رو نمایش میده و در آخر هم مقدار وارد شده توسط کاربر رو به عنوان خروجی برگشت میده ، تقریبا چیزی شبیه به یک InputBox ، پس تابع مورد نظرمون رو به صورت زیر تعریف میکنیم :

function ShowForm(FCaption, LCaption : String) : String;
var
F : TMyForm;
begin
F := TMyForm.Create(nil);
try
F.Caption := FCaption;
F.MyLabel.Caption := LCaption;
F.ShowModal;
finally
Result := F.MyEdit.Text;
F.Free;
end;
end;

در OnClick مربوط به دکمه ی بر روی فرم هم باید فرم رو ببندیم :

procedure TMyForm.PostBtnClick(Sender: TObject);
begin
if MyEdit.Text <> '' then
Close
else
ShowMessage('Please Enter Value !');
end;

برای تنوع ! می تونیم قبل از بستن فرم خالی نبودن Edit رو بررسی کنیم ...

خوب ، بعد از ساخت فرم باید پروژه رو کامپایل کنید ، در هنگام کامپایل پروژه با پنجره ی زیر مواجه خواهید شد :
---------------------------------------

---------------------------------------
در ابتدای مقاله ذکر شد که قسمت Requires برای هر Package مربوط به فایلهایی هست که Unit ها سایر اجزایی که در قسمت Contains قرار می دید برای اجرا به اونها نیاز دارند ، وقتی یک Form رو به Package اضافه میکنید باید کتابخانه ی VCL یا Visual Component Library هم به عنوان کتابخانه ی مورد نیاز به پروژه اضافه بشه تا همراه پروژه کامپایل بشه ، VCL مربوط به اشیاء Visual ای هست که در برنامه استفاده شدند ...
در قسمت Requires فایل دیگری با نام RTL.dcp قرار داره که به صورت پیشفرض به پروژه اضافه میشه ، این کتابخانه که همون Run-Time Library هست ، برای همه پروژه های ایجاد شده با دلفی نیاز هست و معمولا دلفی اون رو به صورت پیشفرض به برنامه اضافه میکنه ...
به هر حال ، با دادن پاسخ مثبت به پنجره ی باز شده در هنگام کامپایل فایل vcl.dcp به Package شما اضافه میشه و همراه اون کامپایل میشه ...
بعد از کامپایل پروژه به مسیری که پروژه رو در اون ذخیره کردید برید ، در این مسیر فایل Package با پسوند DPK وجود داره و فایلی با پسوند BPL دیده نمیشه !! ، خروجی BPL مربوط به Package ها در مسیری ذخیره میشه که در قسمت " Tools > Options > Delphi Options > Library - Win32 " و در بخش Package Output Directory مشخص شده ، پس به مسیر گفته شده برید و فایل BPL مربوط به پروژتون رو کپی کنید و در کنار برنامه ای که باید از اون استفاده کنه قرار بدید !
می تونید مسیر فایلهای BPL رو به دلخواه خودتون تغییر بدید ...

خوب ، اما نحوه ی استفاده از فایل BPL ...
برای استفاده از توابع درون یک فایل BPL باید ، ابتدا Package رو در برنامه Load کنیم ، بعد یک تابع رو به تابع درون BPL ارتباط بدیم و در ادامه تابع ارتباط داده شده رو فراخوانی کنیم و در نهایت Package لود شده رو UnLoad کنیم ، یک پروژه ی جدید بسازید ، یک Edit و یک BitBtn بر روی فرم قرار بدید ، در رویداد OnClick مربوط به BitBtn دستورات زیر رو بنویسید :

var
ShowF : function(FCaption, LCaption : String) : String;
MyPkg : HMODULE;
FC, LC : String;
begin
MyPkg := LoadPackage(ExtractFilePath(Application.ExeName)+'MyPackage.bpl');
FC := 'Enter Value ... ';
LC := 'Value : ';
if MyPkg <> 0 then
begin
try
@ShowF := GetProcAddress(MyPkg, 'ShowForm');
if Assigned(ShowF) then
Edit1.Text := ShowF(FC, LC)
else
ShowMessage('Function not found !');
finally
UnloadPackage(MyPkg);
end;
end;
end;

به یک نکته ی مهم توجه کنید :
ما در هنگام ساخت Package دو کتابخانه ی VCL و RTL رو به عنوان کتابخانه های مورد نیاز قرار دادیم ، برای اینکه برنامه ی ما بتونه از این فایل BPL بدون مشکل استفاده کنه ، باید برنامه رو همراه با کتابخانه های VCL و RTL به عنوان Run-Time Library عرضه کنیم ...
برای این منظور به قسمت Project > Options > Packages برید قسمت Build With Run Time Packages رو فعال کنید و در کادر زیر این گزینه کتابخانه ی VCL و RTL رو وارد کنید :

 vcl;rtl

توجه کنید که باید این فایلها همراه برنامه ی شما باشند تا برنامه ی شما بدون مشکل اجرا بشه ! ، متاسفانه این یکی از محدودیتهای استفاده از Package های BPL هست ...

توجه کنید که اگر در درون Package خودتون از اشیاء دلفی و نوع های مخصوص دلفی مثل String استفاده نکرده باشید ، می تونید با Package خودتون مثل یک فایل DLL رفتار کنید و همچنین نیازی به وارد کردن vcl و rtl به قسمت Requires مربوط به Package نیست تا نیازی به وجود این فایلها در کنار برنامتون باشه که در اینصورت می تونید برنامه ی استفاده کننده از فایل BPL رو هم بدون Package های Run-Time کامپایل و عرضه کنید ( توجه کنید برای این منظور تیک قسمت Build With Run-Time Packages رو بردارید )

توجه : مسیرها و گزینه هایی که در بالا ذکر شد برای دلفی 2010 بود ، اگر دلفی 7 استفاده می کنید به موارد زیر توجه کنید :
  • برای ایجاد Package جدید به مسیر File > New > Other برید و در صفحه ی New گزینه ی Package رو انتخاب کنید ...
  • مسیر ذخیره ی فایلهای BPL در مسیر Tools > Environment Options و در صفحه ی Library قرار داره ...
امیدوارم مفید بوده باشه ، موفق باشید ...

 

 :: لینك ثابت نویسنده : محمود مهری نظرات Comment

مطالب اخیر

معرفی کانال و گروه های تلگرام
استفاده از Component Template ها در دلفی
مقاله : نحوه ی استفاده از پنل پیامک در نرم افزار
E-Book :: راه اندازی موتورهای DC و پله ای با استفاده از میکرو کنترلر AVR
آشنایی با عملگرهای بیتی ( Bitwise Operators )
تست دیود و ترانزیستور با مولتی متر
دلفی :: ارسال آرایه به حافظه ی Clipboard
یک سایت فوق العاده برای علاقه مندان به علم فیزیک
مداری برای نمایش عبور جریان برق از بدن !!
سال نو مبارک ...
آدرس وبلاگ !
ساخت یک LED فلاشر با میکروکنترلر AVR ATMega16A
آشنایی با کاربرد " رله " ( Relay ) در مدار
کار با ماتریسها در Matlab
SQL :: آشنایی با دستور شرطی WHERE


صفحات وبلاگ :