المشاركات : 778
المواضيع 97
:
: 0
الإنتساب : Nov 2008
السلام عليكم ورحمة الله
اخواني الكرام
بخصوص كلمة نيل NIL nil
ما ماعني هذه الكلمة ؟
مثلا
كود :
Edit:=FindWindowEx(Panel,0,'Edit',nil);
اراهاه كثيرا في درس الأخ عندما شرح امر الهاندل
نعم بارك الله فيكم..
المشاركات : 3,703
المواضيع 101
:
: 579
الإنتساب : Feb 2008
فرضا لدينا متغير x من نوع Integer
قمنا يتعريف المتغير كما فوق
لكن السؤال الان، ماهي قيمة x ؟
لم نستعمله بعد، قيمته فرضا ستكون صفر اي 0
الان ان كان لدينا متغير من نوع مؤشر Pointer
ولم نستعمله بعد ماذا ستكون قيمته ؟
لن تكون صفر لانه ليس عدد بل ستكون Nil
Nil تعني ان مؤشرنا لايؤشر على شيئ!
وقس على مكونات دلفي عامة، عند تعرف اي مكون وعدم انشائت قيمته تكون Nil
اي المكون معرف لكنه غير موجود ول ايمكن استخدامه الابعد انشائه
مثال برنامج لديك 4 مكونات Form
المكونات يتم انشاءها واحدة تلو الاخرى (انظر لمحتوى Project لتعرف الترتيب)
تخيل ان ال Form2 تستدعي Form4
لكن Form2 يتم انشائها قبل Form4 وهذا قد يحدث خطأ اثناء التنفيذ
الحل هو استخدام Nil (التحقق من انشاء الفورم) قبل استدعائها
بدلا من كتابة
نكتب
كود :
if Form4<>Nil then Form4.Show;
ان شاء الله تكون الفكرة وصلت
والسلام عليكم
المشاركات : 778
المواضيع 97
:
: 0
الإنتساب : Nov 2008
نعم بارك الله لك...
الشرح واضح وضوح الشمس ما شاء الله...
يعني ال Nil مثل ال 0 لكن للأغراض التي لا يمكن ان اكتب 0 عليها...
يعني هي صعب تعريفها ... لكن الفكرة واضحة ولله الحمد...
بارك الله فيك
المشاركات : 975
المواضيع 50
:
: 218
الإنتساب : Feb 2008
السلام عليكم
Nil هو قيمة مؤشر (pointer value) معرف على انه قيمة غير معرفة.
PHP كود :
ShowMessage(Format('%p', [nil]));
النتيجة : قيمته 00000000
PHP كود :
ShowMessage(Format('%d', [SizeOf(nil)]));
النتيجة : حجمه 4 bytes
و هذا هو Nil يعرف عن نفسه
PHP كود :
MessageDlg(Format('delphi4arab.net|S.FATEH'+#13#10+'I am nil i''m pointer value defined as undetermined' + #13#10 +'My size is: %d Bytes'+#13#10+'My value is: %p', [SizeOf(nil), nil]), mtInformation, [mbOK], -1);
و لرب نازلة يضيق لها الفتى ذرعا و عند الله منها المخرج
ضاقت فلما استحكمت حلقاتها فرجت و كنت اضنها لا تفرج
المشاركات : 106
المواضيع 19
:
: 0
الإنتساب : Jan 2015
إضافة
Nil يكون بحجم 4 Bytes في الأنظمة 32Bit و بحجم 8 Bytes في أنظمة 64Bit