لغة التحكم في الحوار

لغة التحكم في الحوار (DCL) هي لغة وصف ومترجم عالي المستوى ضمن برنامج AutoCAD لإنشاء حوارات رسومية بسيطة. تستخدمها ملحقات AutoLISP للتفاعل مع المستخدم في بيئة AutoCAD.

الميزات والاستخدام

على عكس واجهات برمجة التطبيقات الرسومية الرئيسية الأخرى، لا تُعدّ DCL مجموعة أدوات رسومية متكاملة لبرمجة التطبيقات، بل هي مُخصصة فقط لتوفير مربعات حوار بسيطة ضمن برنامج AutoCAD. تتضمن عناصر واجهة المستخدم الأساسية مثل مربعات النصوص والأزرار ومربعات الاختيار وقوائم الاختيار. تعتمد DCL على البرمجة كائنية التوجه ، مما يسمح بإعادة استخدامها من خلال الوراثة والتركيب.

تعتمد بنية لغة DCL على تعريف واستخدام "البلاطات". تمثل "البلاطة" عنصر واجهة مستخدم رسومية، مثل مربع نص أو تسمية نصية. كما تمثل البلاطات عناصر واجهة مستخدم تحتوي على عناصر أخرى، مثل الأعمدة ومجموعات أزرار الاختيار والحوارات نفسها. توفر DCL بلاطات مدمجة لجميع عناصر واجهة المستخدم الرئيسية، ويمكن تعريف بلاطات جديدة من خلال الوراثة وتركيب البلاطات الأخرى .

تتيح لغة DCL التفاعل مع مربع الحوار أثناء التشغيل باستخدام كود Lisp. يمكن ربط إجراءات معينة ببعض عناصر واجهة المستخدم الرسومية (GUIs) عن طريق تسمية دالة AutoLISP المراد تشغيلها، والقيم المراد تمريرها إليها. على عكس أنواع واجهات المستخدم الرسومية الأخرى، لا يمكن إجراء تغييرات جوهرية على مربعات حوار DCL أثناء التشغيل. يمكن تغيير محتويات بعض عناصر واجهة المستخدم الرسومية، مثل مربعات النصوص وقوائم الاختيار، ولكن لا يمكن إزالة عناصر واجهة المستخدم الرسومية من مربع الحوار أو إضافتها إليه.

مثال

فيما يلي مثال على ملف DCL (وملف AutoLISP المصاحب له ) يوضح الميزات الرئيسية لـ DCL.

زر_الاسم : زر { label = "إرسال الاسم"; action = "(change-name)"; } مرحباً: حوار { label = "مثال DCL"; : مربع التحرير { label = "الاسم: "; المفتاح = "الاسم"؛ } : زر_الاسم { المفتاح = "اسم الإرسال"؛ } : نص { المفتاح = "تحية"؛ } موافق فقط؛ } 

يتم إنشاء مربع الحوار عن طريق الوراثة من عنصر "dialog" المدمج. تُضبط خصائص مربع الحوار وعناصر واجهة المستخدم الأخرى على شكل أزواج اسم/قيمة. يمكن وضع عناصر واجهة المستخدم داخل مربع الحوار بمجرد تسميتها، أو بتسميتها وتحديد خصائص إضافية لها. يتم تعريف عنصر واجهة مستخدم جديد ('name_button') لاستخدامه عن طريق تسميته وتحديد خصائصه.

يتم حفظ DCL باسم "hello.dcl" ( defun change-name () ( set_tile "greeting" ( strcat "Hello, " ( get_tile "name" ) "!" )))( setq hello-dcl ( load_dialog "hello.dcl" )) ( new_dialog "hello" hello-dcl ) ( start_dialog ) ( unload_dialog hello-dcl )

يتم إنشاء مربع حوار DCL عن طريق استدعاء سلسلة من الدوال في ملف AutoLisp. يمكن للبلاطات استدعاء كود AutoLISP عند وقوع أحداث معينة، ويمكن لـ Lisp معالجة محتويات البلاطات أثناء تشغيل مربع الحوار.

التقنيات البديلة

لإنشاء واجهات مستخدم رسومية عامة وإضافات أخرى ضمن برنامج التصميم بمساعدة الحاسوب (CAD)، توفر أوتوديسك خيارات متعددة. تتيح واجهة برمجة التطبيقات ObjectARX للغة C++ إنشاء الإضافات كما هو الحال في مايكروسوفت فيجوال ستوديو. كما تتيح لغة VBA برمجة AutoCAD بالسحب والإفلات، تمامًا كما هو الحال في مايكروسوفت أوفيس والتطبيقات الأخرى.

ابتداءً من إصدار AutoCAD 2007 والإصدارات الأحدث، يمكن لبرامج AutoLISP أو Visual-LISP استدعاء الإجراءات المكتوبة بلغة Visual Studio .NET (VB أو C#). وبات بإمكان المبرمجين الآن إنشاء مربعات حوار بلغة VB أو C# تتضمن جميع عناصر التحكم الموجودة في واجهة برمجة تطبيقات .NET Forms، ويمكن استدعاؤها والوصول إليها من خلال Visual-LISP.