IBM Lotus Symphony
|
فيما يلي توضيح للاستخدامات الأساسية للاجراءات والوظائف في Lotus® Symphony™ Basic.
![]() |
عند القيام بتكوين وحدة برامج جديدة، يقوم Lotus Symphony Basic آليا بادراج SUB بالاسم "Main". هذا الاسم المفترض ليس له علاقة بترتيب أو بنقطة البداية لمشروع Lotus Symphony Basic. كما يمكنك القيام باعادة تسمية SUB هذا. |
تساعدك الاجراءات (SUBS) والوظائف (FUNCTIONS) على الحافظ على شكل عام هيكلي من خلال فصل برنامج لأجزاء منطقية.
ومن مزايا الاجراءات والوظائف هي أنه بمجرد الانتهاء من كود برنامج يحتوي على مكونات مهام، يمكنك استخدام هذا الكود في مشروع آخر.
يمكن امرار المتغيرات لكل من الاجراءات والوظائف. يجب أن تتم عملية 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.
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
STATIC VarName As TYPENAME
يحتفظ المتغير بالقيمة الخاصة به حتى يتم ادخال FUNCTION أو SUB في المرة التالية. يجب أن يوجد التأكيد داخل SUB أو FUNCTION.
كما هو مع المتغيرات، يجب تضمين حرف type-declaration بعد اسم الوظيفة، أو النوع المحدد بواسطة "As" والكلمة المرشدة المناظرة في نهاية كشف المعاملات لتعريف نوع القيمة المرتجعة للوظيفة، على سبيل المثال:
Function WordCount(WordText as String) as Integer