PDA

View Full Version : تعریف VCL ، کامپوننت و کنترل در دلفی



vcldeveloper
سه شنبه 27 اسفند 1387, 21:36 عصر
به مجموعه کلاس‌‌هایی که از کلاس TComponent در کتابخانه کلاس‌های دلفی مشتق شده‌اند Visual Component Library یا به اختصار VCL گفته می شود. این کتابخانه توسط شرکت بورلند برای استفاده در دلفی و C++ Builder بر روی سکوی ویندوز ساخته شد. تمامی کلاس‌ها در کتابخانه کلاس‌های دلفی از کلاس پایه TObject مشتق می‌شوند. کلاس TComponent هم از طریق کلاس TPersistent از کلاس پایه TObject مشتق شده است. کلاس‌های زیادی از کلاس TComponent مشتق می‌شوند که به آنها کامپوننت گفته می‌شود.

کامپوننت‌های دلفی به دو دسته کلی‌ بصری (visual) و غیر‌‌بصری ( non-visual) تقسیم می‌شوند. کامپوننت‌های بصری از کلاس TControl مشتق می شوند و به همین دلیل به آنها کنترل گفته می‌شود. کنترل‌ها در محیط طراحی دلفی به همان شکلی که در برنامه نمایش داده خواهند شد، نمایش داده می شوند. اما کامپوننت‌های غیر‌بصری در محیط طراحی دلفی به شکل یک مربع کوچک نمایش داده می‌شوند. اکثر کنترلهای VCL، بخصوص کنترل‌هایی که از کلاس TWinControl مشتق می شوند، Wrapper‌هایی برای Windows API محسوب می‌شوند؛ یعنی کنترل‌های استاندارد ویندوز مثل Button, ListBox, ListView و غیره را در قالب کامپوننت‌های دلفی به برنامه‌نویس ارائه می‌کنند.

برنامه‌نویسان می‌توانند با خلق کامپوننت‌های جدید VCL را توسعه دهند. در حال حاضر شرکت‌ها و گروه‌های بسیاری به تولید کامپوننت‌های دلفی مشغول هستند که هر یک قابلیت‌های جدیدی به VCL اضافه می‌کنند؛ مجموعه Indy برای کار با سوکت‌ها و پروتکل‌های مختلف شبکه، مجموعه JEDI شامل تعداد زیادی کامپوننت برای مصارف گوناگون، IntraWeb برای تولید نرم‌افزارهای تحت وب، و مجموعه TNT برای پشتیبانی از استاندارد یونی‌کد نمونه‌هایی از مجموعه کامپوننت‌هایی هستند که توسط گروه‌ها و شرکت‌های طرف سوم برپایه VCL توسعه داده می‌شوند.

با عرضه دلفی 6 بورلند کتابخانه مشابهی را تحت نام CLX در کنار VCL معرفی کرد که برخلاف VCL، وابسته به سکوی خاصی نبود (cross-platform). این کتابخانه براساس چارچوب نرم‌افزاری Qt محصول شرکت Trolltech ساخته شده بود و به همراه آن محیط توسعه و کامپایلری برای کد‌های دلفی برروی سکوی لینوکس با نام Kylix عرضه شد. به این ترتیب برنامه‌نویسان دلفی می‌توانستند نرم‌افزار خود را بر روی سیستم‌عامل‌هایی غیر از ویندوز –‌بطور خاص لینکوس‌- منتشر کنند. کلاس‌ها و کامپوننت‌های ارائه شده بوسیله CLX هم نام نمونه‌های مشابه خود در VCL بودند و عموما خصوصیات و رفتار‌های مشابهی را عرضه می‌کردند، اما در زیرساخت‌های خود تفاوت اساسی با VCL داشتند. به دنبال اختلافات پیش آمده بین بورلند و Trolltech و با توجه به شکست تجاری Kylix و برخی مشکلات CLX، توسعه CLX پس از مدتی متوقف شد و Kylix هم به دست فراموشی سپرده شد و پس از نسخه 3 توسعه پیدا نکرد. دلفی 7 آخرین نسخه‌ایی از دلفی بود که CLX به همراه آن عرضه شد.


29289
سلسله مراتب کلاس های اصلی VCL

hadisalahi2
چهارشنبه 28 اسفند 1387, 10:15 صبح
آقاي كشاورز علت اينكه بعضي از كامپوننتها مربوط به نسخه خاصي از دلفيه چيه؟ آيا در فايلهاي Pas اونها دستوراتي است كه مثلا در نسخه هاي ديگر وجود ندارد يا مثلا ساختار فايلهاي Pas اونها با هم متفاوته؟
به عنوان مثال من كامپوننتي در دلفي 7 ساختم كه فقط يك Unit داره و كارش هم اينه كه با استفاده از يك Ado Query اطلاعات رو از يك جدول Select ميكنه. حالا اگه اين كامپوننت رو توي دلفي 2007 نصب كنم آيا مشكلي پيش مياد؟

vcldeveloper
چهارشنبه 28 اسفند 1387, 12:01 عصر
علت اينكه بعضي از كامپوننتها مربوط به نسخه خاصي از دلفيه چيه؟ آيا در فايلهاي Pas اونها دستوراتي است كه مثلا در نسخه هاي ديگر وجود ندارد
اگر کامپوننت با سورس هست، یعنی در آن کامپوننت از سورسی استفاده شده که فقط با نسخه های خاصی از دلفی سازگار هست.
اگر بدون سورس هست، یعنی فایل DCU مربوط به یونیت ها فقط با نسخه های خاصی از دلفی کامپایل شدند.