کپسوله سازی گرافیک ها
دلفی بوسیله ابزار های گرافیکی موجود دربوم یا Canvas ، بسیاری از اضافه کاری های گرافیکی ویندوز را کپسوله سازی می کند. بوم (Canvas) برای ترسیم ظاهر یک پنجره یا کنترل است که اشیاء دیگری در آن مانند یک قلم (Pen) ، یک قلم مو (Brush) و یک فونت وجود دارند. بوم (Canvas) بیشتر شبیه یک device context ویندوزی است با این تفاوت که با دقت بیشتری در اختیار شماست.
اگر شما تا کنون یک نرم افزار گرافیکی ویندوزی نوشته باشید، با انواع الزاماتی که دستگاه رابط گرافیکی ویندوز (GDI) به شما تحمیل می کند (مانند تعداد device context های در دسترس ، و باز گرداندن وضعیت اشیاء گرافیکی به حالت اولیه شان پیش از آنکه آن ها را destroy کنید) آشنا هستید.
وقتی با گرافیک ها در دلفی کار می کنید ، نیازی نیست نگران هیچ کدام از این ها باشید. برای رسم روی یک فرم یا کامپوننت ،خصوصیت Canvas در دسترس شماست. اگر مایل باشید قلم (Pen) یا قلم مو (Brush) را به دلخواه خود تنظیم کنید ، می توانید مقادیر رنگ (Color) یا سبک (Style) را برای هر کدام تنظیم نمایید. وقتی کارتان تمام شد ، از این به بعد دلفی مراقب هدر رفتن منابع شماست. در واقع ، منابع را برای شما cash می کند ، بنابراین اگر برنامه شما بارها از همان منابع استفاده کند ، احتمالاً از ایجاد و باز آفرینی بسیاری از عناصر نجات خواهید یافت.
البته شما هنوز هم به GDI ویندوز بطور کامل دسترسی دارید. اما اگر از کامپوننت های بوم آماده داخلی دلفی استفاده کنید در بیشتر موارد کد شما ساده تر و سریع تر اجرا خواهد شد. ویژگی های گرافیکی دلفی در فصل 6 توضیح داده خواهد شد.
ثبت
قبل از اینکه کامپوننت شما بتواند در محیط طراحی دلفی عملیاتی شود باید آن را توسط دلفی ثبت کنید. عملیات ثبت به دلفی می گوید که شما مایلید کامپوننتتان را در کدام پالت کامپوننت نمایش دهید همچنین برخی روش ها وجود دارد که شما بوسیله آنها می توانید به دلفی بگویید کامپوننتتان را در فایل فرم قرار دهد. عملیات ثبت در فصل 8 توضیح داده خواهد شد.
ایجاد یک کامپوننت جدید
برای ایجاد یک کامپوننت چند روش وجود دارد. تمام مثال ها با این فرض که شما با این روش ها آشنا هستید ارائه شده اند.
- شما به دو روش می توانید کامپوننت بسازید:
- ساخت کامپوننت به روش دستی
- ساخت کامپوننت با استفاده ازمنوی Component
با استفاده از هر کدام از این روشها باید بتوانید کامپوننتی با حداقل کارایی ، برای نصب در پالت کامپوننت ها آماده کنید. پس از نصب ، می توانید کامپوننت خود را به یک فرم اضافه کرده و هم در زمان طراحی و هم در زمان اجرا آن را تست کنید. پس از آن می توانید ویژگی های بیشتری را به آن افزوده وآن را در پالت کامپوننت ها بروز رسانی کرده و به تست آن ادامه دهید.
ساخت کامپوننت به روش دستی
ساده ترین روش برای ساخت کامپوننت استفاده ازمنوی Component است. اگر چه شما می توانید تمام این مراحل را بصورت دستی نیز انجام دهید.
- ساخت کامپوننت به روش دستی نیازمند مراحل زیر است :
- ایجاد یک یونیت جدید
- مشتق کردن یک شیء کامپوننت جدید
- ثبت کامپوننت
ایجاد یک یونیت جدید
یک یونیت ، یک ماژول جداگانه از کد پاسکال شیء است. دلفی به چند منظور از یونیت ها استفاده می کند. هر فرم یونیت خود را دارد، وهمچنین بیشتر کامپوننت ها (یا گروهی از کامپوننت ها که منطق مشابهی دارند) نیز یونیت خود را دارند.
وقتی یک کامپوننت جدید می سازید ، یک یونیت جدید برای آن ایجاد کنید یا آن را به یک یونیت موجود اضافه کنید.
- جهت ایجاد یک یونیت برای کامپوننت از منوی File گزینه New Unit را انتخاب کنید.
دلفی یک فایل جدید می سازد و آن را در محیط ویراستار کد باز می کند. - برای افزودن کامپوننت به یک یونیت موجود ، از منوی File گزینه Open را انتخاب کنید تا بتوانید سورس کد یونیت موجود را ببینید.
نکته : وقتی یک کامپوننت را به یک یونیت موجود اضافه می کنید، مطمئن شوید که یونیت فقط حاوی کد کامپوننت است. به عنوان مثال ، افزودن یک کامپوننت به یونیت یک فرم باعث ایجاد خطا در پالت کامپوننت ها خواهد شد.
در هر دو صورت ، با هر بار ایجاد کامپوننت ، شما می توانید شیء کامپوننت را مشتق کنید.
مشتق کردن شیء کامپوننت
هر کامپوننت یک شیء مشتق شده از نوع TComponent ، یا از مشتقات تخصصی تر آن مانند TControl یا TGraphicControl ، و یا یکی ازانواع کامپوننت های موجود است. برای مشتق کردن یک شیء کامپوننت ، تعریف نوع شیء را به قسمت interface از همان یونیتی که حاوی کامپوننت خواهد بود ، اضافه کنید. مثلاً برای ایجاد یک نوع کامپوننت ساده ، یک کامپوننت غیر بصری (non-visual) که مستقیماً از TComponent مشتق شده است ، تعریف نوع زیر را به قسمت interface یونیت کامپوننت اضافه کنید:
کد:
type
TNewComponent = class(TComponent)
end;
حالا می توانید TNewComponent را ثبت کنید . توجه داشته باشید که کامپوننت جدید هنوز هیچ فرقی با TComponent ندارد.
ثبت کامپوننت
ثبت یک کامپوننت یک فرایند ساده است که به دلفی می گوید چه کامپوننت هایی باید به کتابخانه کامپوننت ها اضافه شوند و کامپوننت ها در چه صفحاتی از پالت کامپوننت ها نمایش داده شوند. فصل 8 روند ثبت کامپوننت ها و تفاوت های ظریف آن ها را با جزئیات بیشتر توصیف می کند.
- یک Procedure با نام Register به قسمت interface یونیت کامپوننت اضافه کنید.
Register هیچ پارامتری دریافت نمی کند. بنابراین تعریف آن به سادگی زیر است:
اگر کامپوننت را به یونیتی که شامل کامپوننت های دیگر است اضافه کرده اید ، این یونیت الان باید دارای یک اعلان procedure Register باشد. بنابراین نیازی به تغییر آن اعلان نیست.
2. Procedure Register را در قسمت implementation یونیت اضافه کرده ودستور RegisterComponents را برای هر کامپوننتی که می خواهید ثبت شود، فراخوانی کنید.
RegisterComponents یک procedure است که دو پارامتر ورودی دریافت می کند :
1- نام پالت کامپوننت
2- و گروهی از انواع کامپوننت که به صورت Set تعریف می شوند
اگر می خواهید کامپوننت خود را به پروسیجر ثبت کامپوننتی که از قبل وجود دارد اضافه کنید ، می توانید آن را به گروه موجود اضافه کرده و یا برای آن یک دستور RegisterComponents جدید فراخوانی کنید.
برای ثبت یک کامپوننت با نام TNewComponent و قرار دادن آن در صفحه Samples در پالت کامپوننت ها ، دستور procedure Register زیر را به یونیتی که حاوی اعلان TNewComponent است ، اضافه کنید.
کد:
procedure Register;
begin
RegisterComponents('Samples',[TNewComponent]);
end;
فقط با یک بار ثبت کامپوننت ، می توانید آن را در پالت کامپوننت نصب کنید.
ساخت کامپوننت با استفاده از منوی Component
برای ساخت کامپوننت به صورت ویزاردی مراحل زیر را دنبال کنید:
دلفی را اجرا کرده و از منوی Component گزینه New Component را انتخاب کنید
مراحل را مانند تصاویر دنبال کنید
پس از جستجوی عبارت TComponent گزینه TComponent را از لیست زیر انتخاب کرده و روی Next کلیک کنید.
مسیر دلخواه را انتخاب کرده و نام یونیت را MyComponent قرار داده و در انتها روی Save کلیلک کنید.
در قسمت Class Name عبارت TNewComponent را وارد کرده و عبارت دلخواه خود را در قسمت Palette Page درج کنید . در این مثال ما از عبارت "ایران دلفی" برای نام پالت استفاده کردیم. در قسمت Unit Name نام فایل و مسیر دلخواه را وارد کنید . و در انتها روی Next کلیک کنید.
و در پایان مشخص کنید که می خواهید کامپوننت در یک یونیت جدید ایجاد شود و یا در یک Package موجود یا Package جدید نصب شود.
پس از اتمام مراحل فوق دلفی نتیجه را مانند تصویر بالا نشان خواهد داد . در این مرحله روی دکمه Save All کلیلک کنید.
یکبار دیگر پنجره ذخیره نام فایل و مسیر را از شما می پرسد .
بدلیل استفاده از کاراکتر های فارسی ("ایران دلفی") در یونیت دلفی برای ذخیره سازی فرمت UTF8 از شما تأیید می گیرد.
علاقه مندي ها (Bookmarks)