نتابع في موضوع الـ DataBinding في برامج دلفي Delphi .net وفي هذا المقال سنعطي مثال عن الـ Complex DataBinding
هذا النوع من الربط يمكننا من إظهار أكثر من عنصر ضمن الـ Data Container كما في حالة الـ DataGrid ولنفهم الموضوع بشكل أفضل سنقوم بعرض مثال عملي سنقوم فيه بربط ArrayList إلى DataGrid .
بداية سنقوم بتعديل الـ Constructor للـصف TPerson ليصبح على الشكل التالي:
Constructor Create(Const AFirstName,ALastName : String;Const AAge : Integer );overload;
Constructor Create;overload;
استخدمنا الـ OverLoad هنا للحفاظ على الـ Code السابق بدون تغيير حيث أصبح لدينا هنا نسختين من الـ Constructor واحدة بدون بارامترات و الأخرى مع بارامترات و هذه الأخيرة هي من أجل تسهيل المثال و اختصار الـ Code طبعاً و تطبيق الـ Constructor الجديد سيكون على الشكل :
constructor TPerson.Create(const AFirstName, ALastName: String; Const AAge : Integer);
begin
inherited Create;
FirstName := AFirstName;
LastName := ALastName;
Age := AAge;
end;
الآن نقوم بإضافة DataGrid إلى مثالنا السابق كما في الشكل التالي:
ثم نقوم باضافة الشيفرة التالية إلى حدث Click للزر :
procedure TWinForm.Button3_Click(sender: System.Object; e: System.EventArgs);
var
Arr1 : ArrayList;
begin
Arr1 := ArrayList.Create;
Arr1.Add(TPerson.Create('Ahmed','Kengo',33));
Arr1.Add(TPerson.Create('Hady','Salmon',28));
DataGrid1.DataSource := Arr1;
end;
بعد ذلك نقوم بتشغيل البرنامج و الضغط على الزر لنجد بالنتيجة أن الـ DataGrid قد أظهرت محتويات الـ ArrayList
بذلك نكون عرضنا لمثال عملي يوضح الـ Complex DataBinding قي برامج Delphi .net
التعليقات
سؤال وطلب
السلام عليكم
أعذرني ياأخي على هذه الأسئلة المتواضعة أرجوا أن أجد لها حلا عندك.
1- أريد معرفة كيف أعمل قاعدة بيانات في دلفي 2007
2- نظرا لعدم تمكني من الحصول على نسخة من دلفي 2007 في بلادي أرجوا مساعدتي للحصول عليها من طرفكم ولكم جزيل الشكر مسبقا.
Re:سؤال وطلب
أخي الكريم الموضوع الجديد و الأكثر أهمية فيما يخص قواعد البيانات في دلفي 2007 هو DBX4 و سأحاول في أقرب فرصة أن أعرض لهذا الموضوع، و إن كانت الآن قاعدة بيانات الـ Blackfish في نسخة الـ Highlander قد غطت على الـ DBX4 ، يمكنك أيضاً أن تطّلع على هذا المقال لـ Dr.Bop
http://www.drbob42.com/examines/examin91.htm
أما بالنسبة للسؤال الثاني فأني أعتذر عن الإجابة.
إضافة تعليق جديد