مكتبة المكونات المرئية

مكتبة المكونات المرئية ( VCL ) هي إطار عمل كائني التوجه قائم على المكونات المرئية لتطوير واجهة المستخدم لتطبيقات مايكروسوفت ويندوز . وهي مكتوبة بلغة أوبجكت باسكال .

تاريخ

تم تطوير VCL بواسطة Borland لاستخدامها في أدوات Delphi و C++Builder RAD الخاصة بها، وهي متكاملة بشكل وثيق معها.

في عام ١٩٩٥، أصدرت بورلاند دلفي، أول إصدار لها من بيئة تطوير متكاملة ولغة برمجة تعتمد على لغة أوبجكت باسكال . حتى ذلك الحين، كانت لغة توربو باسكال من بورلاند لأنظمة DOS وويندوز لغة إجرائية في الغالب، ذات ميزات محدودة للبرمجة كائنية التوجه، وكان بناء واجهات المستخدم باستخدامها يتطلب استخدام أطر عمل مثل توربو فيجن ومكتبة أوبجكت ويندوز . أما مكتبة أوبجكت ويندوز (OWL)، وهي إطار عمل مشابه لـ MFC ، فكانت تتطلب كتابة التعليمات البرمجية لإنشاء عناصر واجهة المستخدم.

كان أحد الأهداف الرئيسية لدمج VCL مع لغة دلفي هو تغيير متطلبات بناء واجهة المستخدم. (للتوضيح، احتوت نسخة دلفي من باسكال على عدد من الميزات المبتكرة الموجهة للكائنات، مثل الخصائص ومعلومات نوع وقت التشغيل، المستوحاة من موديولا وسمول توك). في ذلك الوقت، تطلب الكثير من أعمال برمجة واجهة المستخدم إنشاء فئات ترث من فئات أخرى، وغالبًا ما كانت الكائنات المُخصصة غير قابلة لإعادة الاستخدام (على سبيل المثال، لا يمكن إعادة استخدام زر يؤدي إجراءً معينًا في تطبيق آخر). [ 1 ] كما كانت برمجة واجهة المستخدم معقدة، مما أجبر المبرمج على فهم واستخدام واجهة برمجة تطبيقات ويندوز، وإدارة موارد GDI، وما إلى ذلك. [ 2 ] أخيرًا، من المفترض أن تُصمم واجهة المستخدم المرئية بصريًا، ومع ذلك، فإن معظم الأدوات المستخدمة في ذلك - في ذلك الوقت، وخاصةً فيجوال بيسك - كانت تُصمم من خلال إخراج المصمم للتعليمات البرمجية، مما يخلق وضعًا هشًا وغير قابل للتعديل يدويًا - وهي مشكلة لا تزال قائمة حتى اليوم مع العديد من أطر عمل واجهة المستخدم، وخاصةً تلك القائمة على لغة C++ مثل Qt. [ 3 ]

وقد عالج الجمع بين لغة دلفي وإطار عمل VCL المكتوب بتلك اللغة هذه المشكلات من خلال:

  • إطار عمل للبث المباشر، يسمح ببث كائن وكائنات فرعية إلى تنسيق نصي أو ثنائي - TComponent، الفئة الجذرية لإطار عمل VCL
  • مصمم نماذج يحفظ البيانات في دفق، حيث يحفظ وصف الكائنات وليس الكود المطلوب لإنشائها، مع إمكانية إنشاء الكائنات ذاتيًا عند إعادة بث الوصف.
  • تتيح خصائص اللغة تخصيص مثيلات الفئة دون الحاجة إلى إنشاء فئات فرعية، وذلك بطريقتين: أولاً، من خلال استخدام الخصائص، مما يسمح لمثيلات الكائن بامتلاك حقولها الخاصة (مثل عنوان الصفحة) التي يمكن تغييرها بسهولة عبر البث؛ ثانياً، من خلال السماح لكائن آخر بمعالجة الأحداث - مؤشرات الأساليب التي يتم استدعاؤها في أماكن محددة من التعليمات البرمجية - أي أن مؤشرات الأساليب تُلحق بمثيل الكائن. [ 4 ] بعبارة أخرى، يُنشئ هذا "سلوكيات مخصصة من خلال التفويض بدلاً من الوراثة". [ 5 ]
  • عناصر تحكم تغلف عناصر تحكم ويندوز الأصلية، في إطار عمل يدير الموارد [ 6 ]

أدى الجمع بين هذه العناصر إلى تصميم مرئي يُنشئ وصفًا تلقائيًا؛ ونموذج (نافذة) يُبنى تلقائيًا من هذا الوصف، بما في ذلك إنشاء جميع المكونات الأخرى فيه؛ وكتابة التعليمات البرمجية في مكان واحد (الأساليب الموجودة في النموذج) بحيث يمكن لعناصر واجهة المستخدم استدعاؤها استجابةً لإجراءات معينة، مثل النقر على زر يستدعي معالج حدث النقر المُنفذ في كود النموذج. كان هذا الأمر ثوريًا في حينه، بينما أصبح اليوم نهجًا تستخدمه العديد من الأطر البرمجية الأخرى، مثل WinForms وCocoa.

كما أتاح ذلك كتابة مكونات جديدة بسهولة، سواءً كانت مرئية أو غير مرئية. تعتمد مكتبة VCL على نظام ويندوز، وتُعدّ تطبيقاتها لعناصر التحكم الشائعة عبارة عن أغلفة لواجهة برمجة تطبيقات ويندوز، مما يجعلها قريبة من النظام الأصلي وتعمل بكفاءة تامة. يمكن إنشاء عناصر تحكم جديدة من الصفر أو استخدام عناصر تحكم ويندوز الموجودة.

مع إصدار C++ Builder، أصبح بإمكان مُصرّف دلفي إنتاج ملفات رأسية بلغة C++ لوحدات لغة دلفي المُصرّفة، وبذلك أصبحت مرونة إطار عمل واجهة المستخدم الرسومية المتدفقة متاحة للغة C++. في الواقع، يمكن كتابة مكونات VCL بلغة C++، ولكنها في النهاية ترث من مكونات دلفي الأصلية، حيث يستطيع مُصرّف C++Builder ورابطه استخدام ملفات الكائنات والرأس التي ينتجها دلفي. كان هذا أحد الأمثلة الأولى على التوافق بين اللغات، وهو أمر لم يُشهد له مثيل حتى ظهور .NET.

تتضمن مكتبة VCL اليوم عدة مئات من المكونات المرئية وغير المرئية، والتي يمكن استخدامها في كل من لغتي Delphi و C++.

تكنولوجيا

تُشكّل VCL تسلسلاً هرمياً للفئات مع سلف مشترك ، وهو فئة TComponent (التي ترث من TObject، وهي الفئة الجذرية في لغة Delphi Object Pascal ). هذا نهج شائع تشترك فيه لغات البرمجة Java و Smalltalk و C# والعديد من لغات البرمجة الكائنية الأخرى.

تغطي مكونات VCL عناصر تحكم ويندوز مثل النوافذ (فئة TForm)، وعناصر التحكم (مثل فئات TButton وTCheckBox وTLabel)، بالإضافة إلى الوصول إلى قواعد البيانات (مثل مكونات ADO أو IBX) أو اتصالات الإنترنت ( مكونات Indy ). يتيح نهج المكونات للمبرمجين توسيع VCL بالعديد من المكونات الإضافية المرئية وغير المرئية. يتوفر عدد كبير من حزم المكونات المجانية والتجارية، من بينها JEDI و TMS و Developer Express و Mitov Software و Raize Software و TurboPower و IOComp و SDL و DA-SOFT Technologies وغيرها الكثير.

مع أن بعض مكونات VCL ليست آمنة للاستخدام المتزامن ، إلا أن VCL تدعم تعدد الخيوط أيضاً. ومن الأمثلة على ذلك دعم تعدد الخيوط المدمج في مكتبة OpenWire VCL.

توفر VCL دعمًا أصليًا لنموذج PME (الخصائص والأساليب والأحداث) على مستوى .NET .

يُستوحى جزء كبير من تصميم .NET ، وخاصةً WinForms، من VCL. وقد عُيّن أندرس هيلسبرغ ، أحد أبرز مهندسي الإصدارات الأولى من دلفي، من قِبل مايكروسوفت ليصبح لاحقًا أحد أبرز مهندسي .NET. وقد أثار هذا الأمر دعوى قضائية: ففي ذلك الوقت (1996)، ادّعت بورلاند أن مايكروسوفت وظّفت 34 موظفًا من بورلاند على مدار الثلاثين شهرًا الماضية لسرقة أسرارها التجارية. كما ادّعت بورلاند أن مايكروسوفت قدّمت حوافز مالية باهظة لموظفيها. وفي حالتين، تجاوزت الحوافز مليون دولار. [ 7 ] ووفقًا لزاركو غاييتش، بلغت المكافأة ثلاثة ملايين دولار في حالة أندرس. [ 7 ] يجد العديد من مطوري دلفي لغة C# مألوفة لديهم، نظرًا لتشابه التصميم. [ 8 ]

تم تطوير نسخة مكافئة متعددة المنصات من VCL، تسمى CLX (مكتبة المكونات متعددة المنصات)، لاستخدامها في Delphi و C++Builder و Kylix في الفترة 2000-2001. ومع ذلك، تم التخلي عنها.

تم دمج إطار عمل ثان متعدد المنصات، وهو FireMonkey ، في Delphi و C++Builder XE2 في عام 2011. FireMonkey هو إطار عمل قائم على المتجهات يشبه WPF لواجهات المستخدم على أنظمة Windows و OSX و iOS و Android.

يملك مشروع لازاروس نسخة محمولة (*nix، OS/X، Win32/64+wince) تُسمى LCL ، والتي كانت تعمل بالفعل عند ظهور Kylix وCLX. استمر المشروع في مساره وتجاهل Kylix (وFMX لاحقًا).

يحتوي كل من OpenOffice.org و LibreOffice على مكتبة رسومية منفصلة تسمى مكتبة الفئات المرئية (VCL). [ 9 ] [ 10 ]

انظر أيضاً

مراجع

  1. تصميم مكونات دلفي، داني ثورب، ص 9
  2. تصميم مكونات دلفي، داني ثورب، ص 11
  3. "استخدام ملف واجهة المستخدم المصمم في تطبيقك | Qt 4.8" .
  4. "نظرة عامة على VCL - RAD Studio" .
  5. تصميم مكونات دلفي، داني ثورب، ص 12
  6. "فهم مكتبة المكونات - RAD Studio" .
  7. 1 2 غاجيك، زاركو. "برنامج .Net من مايكروسوفت هو منتج بورلاند (2/3)" . برمجة دلفي - العودة إلى المستقبل. مؤرشف من الأصل في 18 سبتمبر 2005.
  8. ستيفنز، جلين. "لغة سي شارب لمطوري دلفي" (ملف PDF) . مؤرشف من الأصل (ملف PDF) بتاريخ 26 يناير 2014. تم الاطلاع عليه بتاريخ 28 مايو 2014 .
  9. "وحدة مكتبة الفئات المرئية (VCL)" . أوبن أوفيس . مؤرشف من الأصل في 20 مايو 2013.
  10. "مكتبة الفئات المرئية (VCL)" . ليبر أوفيس . مؤرشف من الأصل في 27 مارس 2025.