بخش نهم
• VCL در دلفی 2006
کتابخانهی VCL در دلفی 2006 واقعاً پیشرفت کرده و میتوان گفت این مجموعه از تغییرات، تغییرات قابل توجهی در طی این چند سال هست.
توضیحی دربارهی VCL : VCL سرنام Visual Component Library ست، مجموعهای از کامپوننتهای ویژوال برای توسعهی سریع برنامههای کاربردی تحت ویندوز در زبان دلفی که از قابلیتهای مهم و اساسی دلفی نیز هست . VCL شامل تنوع وسیعی از کلاسهای ویژوال، غیر ویژوال و مفید برای کارهایی مانند ساختن برنامههای ویندوزی، برنامههای تحت وب، برنامههای دیتابیسی و برنامههای کنسول هست. همه کلاسها از TObject مشتق میشوند. TObject، معرف متدهایی ست که رفتارهای بنیادی و پایه (که لازمهی هر کلاسی هست) مانند construction و destruction و کنترلکنندهی پیغامها را پیادهسازی میکنند.
در دلفی 2006 سه کامپوننتِ TTrayIcon و TGridPanel و TFlowPanel اضافه شده ست. کلاسهای TCustomTransparentControl و TMargins و TPadding نیز اضافه شدهاند.
ویژگیهای Margins و Padding
برای تعریفِ موقعیتهای نسبی دربین کنترلهایی که روی فرم هستند، دلفی 2006 دو ویژگی جدید به نامهای Margins و Padding به کلاس TControl اضافه کرده و در طبقهبندی Layout در Object Inspector قرار میگیرد.
Margins (که نام کلاس آن TMargins و دارای چهار ویژگی ست که به هر کنترل اضافه میشود) فراهمکنندهی فضای لازم پیرامون هر کنترل هست. این توضیح اشارهای بود به اینکه اگر یک کنترل با یک ضلع فرم هم تراز شود، کنترل لبههای فرم را لمس نخواهد کرد. البته Margins یک ویژگی ست که فقط 4 عدد (تعداد پیکسلها) را میگیرد و زمانی به صورت خودکار عمل میکند که ویژگی AlignWithMargins را فعال کنید و برای ویژگی Align نیز مقداری به غیر از alNone و alCustom قرارداده باشید به غیر از این اگر در حال نزدیک کردن کنترل به لبههای فرم باشید، به محض اینکه فاصله کنترل (از هر جهتی) با لبهی فرم برابر با تعداد پیسکلهای تعریف شده باشد، خط نازک سیاه رنگی در وسط ضلع کنترل، حد فاصل کنترل و لبهی فرم ظاهر میشود.
یک فرم خالی را در نظر بگیرید، یک Panel روی آن بگذارید و ویژگی Margins را به ترتیب با عدد 5 مقداردهی کنید. ویژگی AlignWithMargins را True کنید و برای ویژگی Align مقدار alTop را در نظر بگیرید. Panel به بالای فرم رفته ولی فاصله آن با 3 طرف به اندازهی 5 پیکسل هست. حالا Margins.Top را با 10 مقداردهی کنید و نتیجه را ببینید.
Panel دیگری روی فرم بگذارید و فقط ویژگی Align آن را با alTop مقداردهی کنید، میبینید که باز هم فاصله رعایت میشود.
Padding (که نام کلاس آن TPadding هست) در کنترلهایی که میتوانند در برگیرندهی کنترلهای دیگر باشند استفاده میشود مانند Form، Panel، PageControl. با اینکه Padding را در این سری از کامپوننتها تنظیم میکنیم اما در واقع Padding برای سایر کامپوننتها استفاده شود، به این صورت که اگر تمام ویژگیهای زیر مجموعه Padding دارای مقدار 10(پیکسل) باشند، هر کامپوننتی که روی آن میگذاریم مجبور به پیروی از فواصلی ست که Padding تعیین کرده، یعنی فاصله 10 پیکسلی با لبهها. البته این ویژگی نیز مانند ویژگی Margins باید به همراه Align استفاده شود.
یک Panel روی فرم قرار دهید و Width آن را با 360 و Height آن را با 145مقدار دهید، دو Button روی فرم Panel قرار دهید. ویژگی Align مربوط به Button1 را با alTop و Align مربوط به Button2 را با alBottom مقدار دهید، میبینید که یک Button به لبهی پائینی و Button دیگر به لبهی بالایی میچسبد. حالا، ویژگی Padding.Bottom و Padding.Top را با 10 مقدار دهید.
سئوال : 10 به چه معنی ست؟
جواب : میخواهم از این بعد هر کامپوننتی که روی این پنل قرار میگیرد و ویژگی Align آن مقدار خاصی دارد، از حداقل فاصلهای که پنل تعیین کرده که همان 10(پیکسل) هست، تبعیت کنند.
خوب، میبینید که بعد از مقداردهی، فاصلهی 10 پیکسلی با لبههای پائینی و بالایی ایجاد میشود و هنوز هر دو Button به لبههای چپ و راست چسبیدهاند. Padding.Left و Padding.Right را تنظیم کنید و نتیجه را ببینید.