المتغيرات Golbal و Local
#1
السلام عليكم ورحمة الله

إذا كانت دلفي تتيح لنا متغيرات في قسم ال global واي تصريح عن متغير في هذا القسم يتيح استخدامه في اي مكان في ال unit
إذا لماذا نستخدم المتغيرات في قسم ال local اقصد لماذا لا نضع كل المتغيرات في القسم العام مره واحده
الرد
#2

وعليكم السلام ورحمة الله

حتى لا نذهب بعيد انظر السؤال السابق
http://www.delphi4arab.net/forum/showpos...ostcount=4
جرب، ضع مكون زر Button اضغط عليك مرتين واكتب الكور بالرابط السابق

نفذه اولا ولاحظ نتيجة الضغط عليه اكثر من مرة
غير المتغير واجعله Global ثم نفط اضغط على الزر اكثر من مرة
ماذا تستنتج ؟
الرد
#3
لم استنتج اي شئ حيث عند الضغط ينشئ edit جديده وغيرت قسم التعريف نفس الشئ

لم استطع التفرقه بين التجربتين

ما الفرق اذا ؟
الرد
#4
أخي أنا أيضا لم ألحظ الفرق
من فضلك إن كان هناك فرق شرحه لنا نحن المبتدئين
الرد
#5
إقتباس :إذا لماذا نستخدم المتغيرات في قسم ال local اقصد لماذا لا نضع كل المتغيرات في القسم العام مره واحده
هناك مسائل كثيرة أغرب من ذلك...(في oop خاصة)
ستدرك ضرورة كل ذلك مع ممارسات متقدمة في البرمجة Smile
الرد
#6
السلام عليكم

عندما نقوم بالاعلان عن متغير Global في صنف ما فان الكائن الدي ننشئه من هدا الصنف يحتفظ بهدا المتغير في الداكرة الى ان يتم تدمير الكائن ونستطيع الولوج لهدا المتغير حسب مدى الروية Private ,Protected,Public,....

اما المتغير المحلي فهو ينتهي فور انتهاء الاجرائية أو الدالة التي اعلن فيها...مع العلم بأن المتغير المحلي ادا كان كائنا سيبقى في الداكرة لدا يجب تدميره...
لا اله الا أنت سبحانك اني كنت من الضالمين
الرد
#7
elarapy كتب :غيرت قسم التعريف .... لم استطع التفرقه بين التجربتين
ارفق مثالين لما جرب حتى وضح لك
الرد
#8
تفضل في التجربه Test1 تم تعريف ال Edt على مستوى ال procedure

وفي التجربه 2 Test تم تعريفها على مستوى الي Unit
ما الفرق اذا ؟


الملفات المرفقة
.rar   Test 1&2.rar (الحجم : 5.79 ك ب / التحميلات : 10)
الرد
#9
السلام عليكم و رحمة الله و بركاته

- المتغيرات ما قبل قسم implementation
يتم الولوج في الوحدة الحالية و كافة الوحدات التي تستخدم هذه الوحدة (صلاحيات الرؤيا)

- المتغيرات ما بعد قسم implementation
تترجم فقط في الوحدة الحالية , يعني تتستخدم فقط من طرف هذه الوحدة .
1- الـ global
يستخدم (تخزين/تفريغ/إرفاق....الخ) من كافة أقسام الكود .
2- الـ Local
يستخدم من قسم الكود المحلي فقط (المعرف به) .

بالتوفيق,,
I'M Fly Like A G6

الرد
#10
اعلم ما قلته اخي الفاضل ولكن لماذا لا يمكنني وضع كل المتغيرات في قسم ال Global والاستغناء عن قسم ال local ؟ مع ان عند تنفيذ البرنامج سيعمل بدون مشاكل ؟
مثال متغير محلي على مستوى الاجراء يتم وضعه في ال procedure الخاص به , ما الخطأ في انني اضع المتغير قبل ال implementation ؟

أعتقد ان هناك سبب جوهري وإلا ما كانت دلفي خصصت قسم local
.
علما بما دار في ذهني هو ان قسم ال Local ميزته الوحيده ان ما به من متغيرات لا تنفذ عند تشغيل البرنامج بشكل عام بدون استخدام الاجراء
وذلك مما يوفر موارد الجهاز اي يقلل من استهلاك الذاكره لان لم يتم حجز المتغيرات في الذاكر مع تشغيل البرنامج بشكل عام ..
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم