![]() |
|
كيف يتم نسخ كلاس إلى آخر ؟ - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : كيف يتم نسخ كلاس إلى آخر ؟ (/showthread.php?tid=6483) الصفحات:
1
2
|
كيف يتم نسخ كلاس إلى آخر ؟ - ALmuhhnad - 16-10-2014 إقتباس :ستحتاج الى أن تكون على علم بالتقنيات التالية :هذه تريد ليلة من ليال الشتاء الطويلة ![]() الف شكر لك وعلى تعاونك ![]() -------------------------------------- إقتباس :السلام عليكمفعلاً هذه كانت نظرتي وتوقعي للامر لكن فكرت بالامر أكثر وتذكرت ان وبجكت يمكن ان يحتوي على على اوبجكت آخر مثال عملي : PHP كود : typeفإذا اردت ان اقوم بنسخ حقيقي سيتطلب الامر ان اعرف عنوان الوبجكت الذي أريـ ـد نسخه ثم اقوم بنسخ للذاكرة الاوبجكت وبعد ذلك اتأكد هل البيانات التي تم نسخها هي قيم(Values) ام مؤشرات(Pointers) إذا كانت مؤشرات اقوم بنسخ المكان الذي يشير إليه هذا المؤشر ثم أتاكد من البيانات التي نسختها هل تشير إلى مؤشرات آخرى ام لا ...وعلى هذا المنوال الغير محكم فربما تحدث اخطا ..إلخ طبعاً كل هذه هي توقعات نظرية ولم اطبق اين منها كيف يتم نسخ كلاس إلى آخر ؟ - ALmuhhnad - 16-10-2014 فعلاً كما توقعت ![]() انظر لهذا المثال الذي قمت بتطبيق فكرتك فيه PHP كود : unit Unit1;كيف يتم نسخ كلاس إلى آخر ؟ - SMP3 - 16-10-2014 me_delphi كتب :السلام عليكم يا ريت الطريقة كانت بتلك البساطة .. جرب هذا الكود : PHP كود : varكيف يتم نسخ كلاس إلى آخر ؟ - me_delphi - 17-10-2014 نعم الأمر معقد..انا لم أقم بالتجريب اتبعت المنطق فقط لكن العملية تتطلب دراسة و فهم المهم هدا الكود لم يعمل لنه تم تعديل الأوبجكت 1 أي يجب ان تكون هده العملية هي الأخيرة إقتباس :copymemory(pointer(obj2), pointer(obj1), obj1.instancesize); والا لن يكون الأوبجكت 1 و 2 متساويين أي يجب ان ننتهي من جميع التعديلات قبل أن نقوم بعملية النسخ كيف يتم نسخ كلاس إلى آخر ؟ - ALmuhhnad - 17-10-2014 نفس النتيجة عندما اعدل الـ obj1.PhoneNumbers سيتم تغيير قيمة الـ obj2.PhoneNumbers PHP كود : obj1 := TMyClass.Create;والمطلوب هو نسخ الكلاس أي يكون الـ obj2 يملك مساحته الخاصة بالذاكرة والقيم الخاصة به بالذاكرة حيث انه ليس مرتبط بالـ obj1 كلياً |