IBM Lotus Symphony


استخدام الاجراءات والوظائف

فيما يلي توضيح للاستخدامات الأساسية للاجراءات والوظائف في Lotus® Symphony™ Basic.

شارة الملاحظة عند القيام بتكوين وحدة برامج جديدة، يقوم Lotus Symphony Basic آليا بادراج SUB بالاسم "Main". هذا الاسم المفترض ليس له علاقة بترتيب أو بنقطة البداية لمشروع Lotus Symphony Basic. كما يمكنك القيام باعادة تسمية SUB هذا.

تساعدك الاجراءات (SUBS) والوظائف (FUNCTIONS) على الحافظ على شكل عام هيكلي من خلال فصل برنامج لأجزاء منطقية.

ومن مزايا الاجراءات والوظائف هي أنه بمجرد الانتهاء من كود برنامج يحتوي على مكونات مهام، يمكنك استخدام هذا الكود في مشروع آخر.

تمرير المتغيرات الى الاجراءات (SUB) والوظائف (FUNCTION)

يمكن امرار المتغيرات لكل من الاجراءات والوظائف. يجب أن تتم عملية Declare الى SUB أو FUNCTION حتى يتقبلوا معاملات:

‏‎SUB SubName(Parameter1 As Type, Parameter2 As Type,...)‎‏

كود البرنامج

END SUB

يتم استدعاء SUB باستخدام النسق التالي:

‏‎SubName(Value1, Value2,...)‎‏

يجب أن تكون المعاملات التي يتم امرارها الى SUB ملائمة لما هو محدد في SUB declaration.

وتنطبق نفس العملية على FUNCTIONS. بالاضافة لذلك، تقوم الوظائف دائما بارجاع نتيجة الوظيفة. يتم تعريف نتيجة الوظيفة من خلال تخصيص القيمة المرتجعة لاسم الوظيفة:

‏‎FUNCTION FunctionName(Parameter1 As Type, Parameter2 As Type,...)‎ As Type‎‏

كود البرنامج

FunctionName=Result

وظيفة الانهاء

يتم استدعاء الوظيفة باستخدام الصيغة التالية:

‏‎Variable=FunctionName(Parameter1, Parameter2,...)‎‏

شارة النص التوضيحي يمكنك أيضا استخدام الاسم المصنف بالكامل لاستدعاء اجراء أو وظيفة: Library.Module.Macro() على سبيل المثال، لاستدعاء الأمر المركب Autotext من مكتبة Gimmicks، استخدم الأمر التالي: Gimmicks.AutoText.Main()

تمرير المتغيرات من خلال القيمة أو المرجع.

يمكن امرار المعاملات الى SUB أو FUNCTION بواسطة المرجع أو القيمة. الا اذا تم تحديد خلاف ذلك، يتم دائما امرار المعامل دائما بواسطة المرجع. وهذا يعني أن SUB أو FUNCTION يحصل على المعامل ويستطيع قراءة وتعديل القيمة الخاصة به.

اذا كنت تريد امرار معامل بواسطة القيمة قم بادارج الكلمة المرشدة "ByVal" أمام المعامل عند القيام باستدعاء SUB أو FUNCTION، على سبيل المثال:

Result = Function(ByVal Parameter)

في هذه الحالة، لن يتم تعديل المحتويات الأصلية للمعامل بواسطة FUNCTION حيث يتم الحصول على القيمة فقط وليس المعامل نفسه.

نطاق المتغيرات

يظل المتغير الذي تم تعريفه في SUB أو FUNCTION صحيحا حتى يتم تنفيذ الاجراء. وهذا يعرف كمتغير "محلي". في حالات متعددة، يجب أن يكون هناك متغير صحيح في كل الاجراءات وفي كل وحدة برامج بكل المكتبات، أو بعد تنفيذ SUB أو FUNCTION.

اجراء عملية Declare للمتغيرات خارج SUB أو FUNCTION

GLOBAL VarName As TYPENAME

المتغير يظل ساريا طالما بقيت جلسة عمل برنامج Lotus Symphony.

PUBLIC VarName As TYPENAME

يكون المتغير صحيحا في كل وحدات البرامج.

PRIVATE VarName As TYPENAME

يكون المتغير صحيحا في وحدة البرامج هذه فقط.

DIM VarName As TYPENAME

يكون المتغير صحيحا في وحدة البرامج هذه فقط.

مثال للمتغيرات الخاصة

المتغيرات الخاصة يمكن جعلها خاصة خلال وحدات البرامج من خلال تحديد CompatibilityMode(true).

REM ***** Module1 *****

Private myText As String

Sub initMyText

myText = "Hello"

print "in module1 : ", myText

End Sub

REM ***** Module2 *****

'Option Explicit

Sub demoBug

CompatibilityMode( true )

initMyText

' Now returns empty string

' (or rises error for Option Explicit)

print "Now in module2 : ", myText

End Sub

حفظ محتويات متغير بعد Exiting SUB أو FUNCTION

STATIC VarName As TYPENAME

يحتفظ المتغير بالقيمة الخاصة به حتى يتم ادخال FUNCTION أو SUB في المرة التالية. يجب أن يوجد التأكيد داخل SUB أو FUNCTION.

يحدد نوع القيمة الناتجة FUNCTION

كما هو مع المتغيرات، يجب تضمين حرف type-declaration بعد اسم الوظيفة، أو النوع المحدد بواسطة "As" والكلمة المرشدة المناظرة في نهاية كشف المعاملات لتعريف نوع القيمة المرتجعة للوظيفة، على سبيل المثال:

Function WordCount(WordText as String) as Integer


التعليق التقييمي عن البرنامج | المزيد من المطبوعات الفنية | العلامات التجارية