![]() |
|
Record pointers - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : Record pointers (/showthread.php?tid=1787) |
Record pointers - abdelmalek - 16-03-2010 السلام عليكم ورحمة الله وبركاته كيف يعمل مؤشر من نوع سجل ؟ كود : type
TMyRecord = Record
name : String[20];
age : Integer;
end;
var
myRecord : TMyRecord;
myRecordPtr : ^TMyRecord;وكيف تتم هده العملية : PHP كود : New(myRecordPtr); هل هو ينشئ سجل جديد ام يشير الى سجل جديد ومادا حدث لسجل القديم ؟ انا فاهم عن المؤشرات انها تحمل عنوان المتغيرات يعني لا نستطيع ان ننشئ متغير جديد بستخدام المؤشرات عندا إجراء هده العملية هل تتغير البيانات الموجودة في السجل الاصلي : PHP كود : myRecordPtr.name := 'Her indoors';Record pointers - shagrouni - 16-03-2010 باستخدام نفس الأمثلة التي أوردتها، لنفرض أن لدي قائمة ببيانات لأشخاص، وأردت أن أحتفظ بها في ذاكرة الجهاز، وأن تكون مربوطة بعناصر لدي في واجهة الاستخدام. البيانات كالتالي : الاسم، العمر ونجعل لها التركيبة Structure التالية كما أوردتها: PHP كود : type لنفس نوع التركيبة وهو ^TMyRecord: PHP كود : var الآن لدي شجرة TreeView و أردنا لكل بند في الشجرة أن يمثل شخصا، بكتابة اسم الشخص في فرع Node من فروع الشجرة. الطريقة العادية أن أقدم التوليف التالي: PHP كود : TreeView1.Items.AddChild(ParentNode, ‘Ahmad Ali’); يمكنني بدلا من ذلك وضع الاسم كما سبق وزيادة أن أربط هذا الفرع بتركيبة البيانات التي تخصه كاتالي: PHP كود : New(myRecordPtr); // حجز مكان جديد في الذاكرةوأكرر هذا مع بيانات كل شخص. إذا أردت معرفة البيانات المربوطة بأي فرع في الشجرة أقوم بالتالي: PHP كود : Varطبعا،عند الانتهاء من التعامل مع الشجرة أو غلق البرنامج يجب التخلص Dispose من الحجوزات التي قمنا يها في في الذاكرة: كود : for i := 0 to TreeView1.Items.Count -1 do
if TreeView1.Items[i].Data <> nil then
Dispose(TreeView1.Items[i].Data);أتمنى أن يكون الشرح مفهوما. وجاهز لتوضيح أية نقطة إذا كان بمقدوري. ملاحظة: لم أجرب الكود فعذرا إذا وجدت أية أخطاء. Record pointers - abdelmalek - 19-03-2010 السلام عليكم ورحمة الله وبركاته بارك الله فيك الله ينورك shagrouni انا مبتدئ في لغة الدلفي إقتباس :الآن لدي شجرة TreeView و أردنا لكل بند في الشجرة أن يمثل شخصا، بكتابة اسم الشخص في فرع Node من فروع الشجرة.ممكن توضح كيف تحصلت على الشجرة و فروعها ؟ PHP كود : TreeView1 إن كان عندك كتاب عن كيفية بناء هده الاشجار ممكن ترفقه لنستفيد منه بارك الله فيك على المجهود الجبار :kick: Record pointers - shagrouni - 19-03-2010 TreeView مكون تجده ضمن مجموعة Win32 في دلفي؟ Record pointers - محمد الدرة - 31-03-2011 طيب اخ shagrouni كيف استخدم خاصية AddChildObject اذا اردتها ان ترتبط بقاعدة بينات بحيث يظهر فيها حقل معين لكي ترتبط بقاعدة البيانات بواسطة حقل آخر وللتوضيح اكثر [URL="http://www.delphi4arab.net/forum/showthread.php?p=25973#post25973"] هنا[/URL] وشكراً جزيلاً |