كان عليك ان تذكر من الاول ان TDate هو صنف من نوع TObject انت كتبته و ليس المعرف مسبقا فى الدالفى و الذى هو عبارة عن Double ... .
إقتباس :لكن ماهي الدالة التي ترجع لي قيمة المؤشر وليس عنوانه ؟
1 - كيف عرفت ان الدالة ارجعت عنوان المؤشر و ليس قيمته
2 - ماذا تقصد بقيمة المؤشر (ما نوع هذه البيانات .. حجمها مثلا ... )
-------------------------------------------------------------------
الدالة التى اعطاك ايها kachwahed تعطيك عنوان قيمة المتغير الذى هو متغير من نوع TDate .. Double
و ليس TObject ... , اما اذا كان المتغير من نوع TObject فهنا الدالة ستعطيك العنوان الذى يوجد فيه عنوان TObject و ليس عنوان المكان الذى يبداء فيه TObject فى الذاكرة .
لان حجم Tobject
4 بايت فقط ... ماذا تتوقع ان يخزن فى هذا المكان من غير عنوان ... لان حجمه اكبر من هذا بكثير فهو يحتوى على اجراءت و دوال و حقول خصائص الى غير ذالك ... .
اى ان الدالة الى اعطاك ايها الاخ kachwahed صالحة مع المتغيرات التى لا تحمل قيمة اكبر من 4 بايت فقط .
لمعرفت عنوان متغير من نوع Tobject ... يجب قرائة القيمة الموجودة فى عنوانه بحيث هذه الاخيرة هى مكان Tobject فى الذاكرة
... للتاكد من ذالك استعمل Watch List + Debug Inspector
PHP كود :
var
Obj1 : TObject;
begin
Obj1 := TObject.Create;
ShowMessage('Obj1 Address = $' + IntToHex(PDWORD(@Obj1)^, 8));
end;
الى حد الان نحن نستخرج العنوان فقط و ليس القيمة التى تتكلم عنها