PDA

View Full Version : مقاله: Packages (بسته ها) و نصب آنها



Hsimple11
شنبه 05 مرداد 1387, 00:56 قبل از ظهر
با سلام.

راستش تا حالا همه ما احتمالا بسته هایی رو از جاهای مختلف روی دلفی نصب کردیم اما برای خودم جالب بود که در مورد بسته ها و انواع اون ها بیشتر بدونم.
در این پست و چند پست آینده در مورد بسته ها و طریقه نصب و پاک کردن اونا بطور کامل مطالبی رو یاد میگیریم...پس :


بسته ها (Packages ) در دلفی

یک بسته در حقیقت یک DLL خاص است که در برنامه های دلفی ازش استفاده میکنیم. برای اینکه این بسته ها از DLL مجزا بشن، بهشون پسوند BPL رو دادن یعنی Borland Package Library.

یک بسته شامل محموعه ای از اجزا است. همراه دلفی چند بسته آماده و کامپایل شده وجود داره که ما میتونیم خودمون هم بسته های دلخواهمون رو به دلفی اضافه کنیم (که برای نصب مجموعه های کامپوننت حتما اینکار رو تا حالا بارها انجام دادیم).

دو نوع بسته داریم :

Runtime Packages : که در زمان اجرای برنامه استفاده می شوند و
DesignTime Packages : که در زمان طراحی برنامه استفاده میشوند.

با استفاده از بسته ها تمام برنامه های ما میتوانند به اجزای یکسانی دسترسی داشته باشند در عین حالی که یک کپی از بسته در سیستم وجود دارد. بنابراین سایز برنامه های اجرایی کوچکتر میشه و زمان کامپایل برنامه ها هم کمتر میشه. چون فقط کدهای مخصوص هر برنامه مجددا کامپایل خواهند شد.

پس تا اینجا متوجه شدیم که اگر میخواهیم اجزایی بسازیم که از طریق IDE دلفی قایبل دسترسی باشند یک بسته ایجاد میکنیم و اگر میخواهیم کتابخانه ای از توابع بسازیم که از طریق هر برنامه ویندوز بتونیم اونا رو فراخوانی کنیم باید یک DLL بسازیم.

ادامه مطلب رو در پست بعد با هم میخونیم.

موفق باشید...

Hsimple11
شنبه 05 مرداد 1387, 19:08 بعد از ظهر
با سلام...

در ادامه مبحث Package ها ...

حالا میریم سراغ انواع مختلف فایلهای بسته ها یعنی فایلهایی که در ارتباط با بسته ها در جاهای مختلف ممکنه ببینیم :

DPK. شامل سورس فایلهای یک بسته است.
DCP. یک تصویر دودویی (باینری) شامل عنوان بسته و ترکیب تمام فایلهای یک بسته و شامل تمام اطلاعات مورد درخواست کامپایلر است. برای هر بسته یک فایل DCP ساخته می شود که نام آن با فایل DPK یکی است. (مثلا MyP.DPK و MyP.DCP).
DCU. یک تصویر باینری از هر فایل یونیت موجود در بسته می باشد. یک DCU برای هر فایل یونیت هرگاه که لازم باشد ساخته می شود.
BPL. که قبلا هم گفته شد، یک فایل DLL ویندوز با خواص خاص دلفی است. این فایل نیز در هر بسته همنام فایل DPK می باشد و همان RunTime Package است که در زمان اجرا استفاده می شود.

RunTime Package ها :

اگر از RunTime Package ها در برنامه هایتان استفاده کنید کامپیوتر علاوه بر داشتن EXE برنامه تان ، باید فایل BPL را نیز داشته باشد. فایل BPL باید در یکی از مسیرهای سیستم تان باشد. بعضی از RunTime Package های خود دلفی عبارتند از :

VCL*.BPL : که شامل یونیتهای Buttons, Classes, Clipbrd, Comctrls,Comobj, Consts,.... می شود. (* به نسخه دلفی شما بستگی دارد)
و یا بسته های دیگری مانند VCLX*.BPL, VCLDB*.BPL , ....
که هرکدام از آنها شامل یونیتهای مختلفی است که ما در برنامه های مختلف بارها از آنها استفاده کردیم و گاهی برای استفاده از تابع یا متدی خاص باید یونیت مربوطه را به لیست Uses برنامه مان اضافه کنیم.


ِDesign-Time Package ها :

بسته های Design-Time همانطور که از نامشان پیدا است در زمان طراحی برنامه مان ازشون استفاده میکنیم و جهت نصب اجزا در پالت اجزا IDE می باشند. دلفی خود شامل چندین بسته Design-Time می باشد مانند :

DCLSTD*.BPL : شامل یونیتهای Standard (که حاوی کنترلهای تب Standard است)، Additional، System, Win32, Dialogs.

DCLTEE*.BPL : شامل یونیت کامپوننت TChart از تب Additional

DCLDB.*BPL و DCLMID*.BPL : یونیتهای DataAccess و DataControls

DCL31W*.BPL : یونیت Win 3.1

DCLSMP*.BPL : یونیت Samples

DCLOCX*.BPL : یونیت ActiveX


در کنار این بسته ها بسته های شخصی حاوی انواع کامپوننتها را هم میتوانیم خودمان بنویسیم و یا از بیرون بگیریم. برای نصب این بسته ها همانند تمام بسته ها از منوی Project-->Options و تب Packages را انتخاب میکنیم یا از منوی Component-->Install Packages.

در پست بعدی در مورد نصب و استفاده از بسته ها و ایجاد بسته های شخصی مطالبی را خواهیم خواهند...

موفق باشید...

Hsimple11
یکشنبه 06 مرداد 1387, 12:08 بعد از ظهر
با سلام.

در این پست راجع به استفاده از بسته ها مطالبی را خواهیم آموخت :


استفاده از بسته ها

جهت استفاده از بسته ها در یک برنامه این مراحل را انجام دهید :

1- یک پروژه جدید ایجاد کنید.
2- گزینه Project|Options را انتخاب کنید.
3- بخش Packages را انتخاب کنید.
4- گزینه Build with Runtime Packages را انتخاب کرده و نام بسته هایی را که میخواهید در EditBox وارد کنید. برای اضافه کردن یک بسته به یک لیست، کلید Add را بزنید و نام بسته جدید را وارد کنید. جهت جدا کردن بسته ها از هم از ؛ استفاده کنید. مثلا :

VCL70; VCLDB70; VCLDBX70

تمام فایلهای بسته ای را که در این Edit وارد کنید در هنگان کامپایل کردن به برنامه شما لینک خواهد شد.

**بسته های انتخاب شده فقط برای پروژه جاری می باشد و اگر میخواهید این بسته ها در تمام پروژه ها استفاده شوند، گزینه Defaults را انتخاب کنید.

فراخوانی دینامیکی بسته ها

جهت فراخوانی دینامیکی بسته ها از تابع LoadPackage استفاده کنید و برای Unload کردن آنها جهت آزادسازی حافظه از تابع UnLoadPackage استفاده کنید.

در پست بعد به ایجاد بسته های شخصی می پردازیم...

موفق باشید...

ariobarzan
سه شنبه 05 شهریور 1387, 13:24 بعد از ظهر
لطفا ادامه بديد.

Hsimple11
سه شنبه 05 شهریور 1387, 14:35 بعد از ظهر
لطفا ادامه بديد.

متاسفانه بدلیل اینکه هنوز مسئولین سایت در مورد بخش مقالات به راه حل مناسبی نرسیده اند، مقالات در بخشی قرار داده میشود که بیننده ای ندارد. این چنین مقالاتی هم از زمان انتقال بیننده کمتری داشته و نویسنده اونا هم دیگه رغبتی برای ادامه پیدا نمیکنه.

با اینحال در پست بعد ادامه میدم...

Hsimple11
سه شنبه 05 شهریور 1387, 15:01 بعد از ظهر
خب، من سعی میکنم در یکی دو پست آینده این تاپیک رو کامل کنم تا حداقل مبحث مشخص و کاملی بشه :


ایجاد بسته های شخصی

برای ایجاد یک بسته شخصی که خودمون میخواهیم درست کنیم این مراحل رو باید انجام بدیم :

1- از منوی File گزینه New|Other و گزینه Package را انتخاب و Ok را کلیک کنید.

2- ویرایشگر Package یک بسته جدید برای شما ایجاد میکنه.

3- این ویرایشگر دو نود به نام های Contains و Requires را داراست.

4- برای اضافه کردن یک یونیت به بند Contains، کلید Add to Package را بزنید و در EditBox نمایش داده شده نام فایل یونیت خود (.PAS) را تایپ کنید و ok را بفشارید. برای اضافه کردن فایلهای دیگه هم همین روند را تکرار کنید یا هر تعداد فایلی که خواستید را انتخاب و بعد Add کنید. یا روی این بند راست کلیک کرده و Add را انتخاب کنید.

5- برای اضافه کردن یک یونیت به بند Requires، کلید Add to Package را بزنید و در EditBox نمایش داده شده نام فایل .DCP را تایپ کنید و ok را بفشارید. برای اضافه کردن فایلهای دیگه هم همین روند را تکرار کنید یا هر تعداد فایلی که خواستید را انتخاب و بعد Add کنید.یا روی این بند راست کلیک کرده و Add را انتخاب کنید.

6- کلید Options را بفشارید و در مورد نوع Package ای که میخواهید بسازید تصمیم بگیرید :

☻ جهت ایجاد یک بسته Design-Time (غیر قابل استفاده در زمان اجرا) دکمه رادیویی Designtime Only را در قسمت Usage option در تب Description انتخاب کنید. یا میتوانید رهنمود کامپایلر {$DESIGNONLY} را به فایل DPK خود اضافه کنید.

☻ جهت ایجاد یک بسته Run-Time (بسته ای که نمیخواهید نصب شود) دکمه رادیویی Runtime Only را در قسمت Usage option در تب Description انتخاب کنید. یا میتوانید رهنمود کامپایلر {$RUNONLY} را به فایل DPK خود اضافه کنید.

☻ جهت ایجاد بسته ای که هم در زمان اجرا و هم در زمان طراحی قابل استفاده باشد، Design and runtime را انتخاب کنید.

7- کلید Compile را جته کامپایل کردن بسته خود بفشارید.



یه توضیح در مورد دو نود Requires و Contains هم بخاطر داشته باشیم که :

بند Requires : بسته های خارجی دیگری را مشخص میکند که در بسته جاری استفاده شده اند. اگر بسته ای خارجی را به این بند اضافه کنید، بصورت اتوماتیک در زمان کامپایل به برنامه ای که از این بسته استفاده کند، لینک می شود.

بند Contains : این بند فایلهای یونیتهایی را که باید در بسته شما باشند را مشخص میکند. در واقع سورس کدهای ما برای این بسته در این قسمت قرار میگیرد.



در پست بعد ادامه می دیم....

Hsimple11
سه شنبه 12 شهریور 1387, 16:41 بعد از ظهر
با سلام.

فکر میکنم این آخرین پست من در این تاپیک باشه.

البته اگه دوستان دیگه هر مطلبی در مورد بسته ها داشتند خوشحال میشم در این تاپیک قرار بدهند.


بکار گرفتن برنامه هایی که درشون از بسته ها استفاده کردیم :

اگر برنامه ای نوشتید که از بسته های Runtime استفاده میکند دقت کنید که کاربران شما علاوه بر برنامه EXE، باید فایل BPL بسته را نیز داشته باشند. اگر فایلهای کتابخانه ای در شاخه برنامه EXE نباشد، باید در شاخه ای قرار بگیرند که در مسیر دسترسی باشند مثلا در شاخه System ویندوز.

توزیع بسته به کاربران دیگه

اگه بسته های Runtime یا DesignTime نوشتید و قصد توزیع اونا رو به دیگر برنامه نویسان دارید باید فایلهای DCP و BPL رو هم به اونا بدید. همچنین ممکنه بخواهید فایلهای DCU بسته خودتون رو هم توزیع کنید.


کلکسیون بسته ها (Package Collection)

کلکسیون بسته ها (فایلهای DPC) یک راه مناسب برای توزیع بسته ها به دیگر برنامه نویسان هست. هر کلکسیون بسته شامل یک یا چند بسته مستمل بر BPL ها و هر فایل دیگری است که شما میخواهید توزیع کنید.

نحوه ایجاد کلکسیون بسته ها :

1- گزینه Tools | Package Collection Editor را از منوی مربوطه در دلفی انتخاب کنید.

2- کلید Add Package را بزنید. BPL های اضافه شده در سمت چپ نمایش داده می شوند.

3- نود Collection را در بالای فایلهای BPL در سمت چپ انتخاب کنید. در سمت راست دو فیلد ظاهر می شود :

☻ Author/Vendor Name : شما میتونید هر اطلاعاتی راجع به کلکسیون بسته تان که در دیالوگ نصب ظاهر خواهد شد در این قسمت وارد کنید.

☻ Directory Name : نام دایرکتوری پیش فرضی را که میخواهید کلکسیون بسته شما در آن نصب شود را وارد کنید.

4- علاوه بر BPL ها، کلکسیون بسته شما می تواند شامل DCU، DCP، یا فایلهای PAS یا هر فایل دیگری نیز باشد.

5- جهت ثبت کلکسیون آن را Save کنید. این فایل با پسوند PCE می باشد.

6- کلید Compile را بزنید. بدین ترتیب یک فایل DCP همنام با فایل PCE شما ساخته خواهد شد.



موفق و موید باشید.....
حامد ابراهیم نژاد.