السلام عليكم
نعلم أنه هناك مشكل في إنشاء MDIChild في لازاروس لكني من خلال بحث في اليوتيوب وجدت طريقة لإنشاء MDIChild سوف أحاول أن أشرحها و بتصرف مني
فتح مشروع جديد Application و إضافة إليه Form2 ليكن عندنا نموذجين بحيث نضيف في Unit1 تحت كلمة implementation ما يلي
نضيف لل Form2 أداة Edit1 وأداة Button1 ونغير خصائص النمودج Form2 كما يلي
أما في النمودج الأول نضع أداة MainMenu1 وننشأ القائمة MenuItem1 ونغير الخاصية Caption للقائمة MenuItem1 إلى إظهارالنمودج وفي حدث Click للقائمة MenuItem1 نكتب كما يلي
نعلم أنه هناك مشكل في إنشاء MDIChild في لازاروس لكني من خلال بحث في اليوتيوب وجدت طريقة لإنشاء MDIChild سوف أحاول أن أشرحها و بتصرف مني
فتح مشروع جديد Application و إضافة إليه Form2 ليكن عندنا نموذجين بحيث نضيف في Unit1 تحت كلمة implementation ما يلي
PHP كود :
uses Unit2 ;
نضيف لل Form2 أداة Edit1 وأداة Button1 ونغير خصائص النمودج Form2 كما يلي
PHP كود :
BorderStyle = bsNone
PHP كود :
Caption =''
وفي حدث Create للـ Form2 نكتب هذا الكود
PHP كود :
[align=left]
Top :=0;
Left :=0;[/align]
وفي الحدث Show لل Form2 نكتب الكود التالي
PHP كود :
Edit1.Text := Form2.Name;
أما بالنسبة لـButton1 نغير الخاصية Caption إلى إغلاق وفي حدث Click نكتب
PHP كود :
Form2.Close ;
PHP كود :
[align=left]
Form2:=TForm2.Create(Self);
Form1.InsertControl(Form2);
Form2.show;[/align]
لو ننفذ البرنامج و نضغط على MenuItem1 يظهر نمودج بإسم Form2_1 على شكل MDIChild لكن هناك مشكلة وهي كلما ضغطنا على MenuItem1 يظهر نودج أخرة Form2_n ولإقاف ذلك ولنجعل البرنامج يعمل مع نمودج واحدة نغير الكود في Click للقائمة MenuItem1 كما يلي
PHP كود :
[align=left]if Trim(Form2. Caption) = '' then
Begin
Form2:=TForm2.Create(Self);
Form1.InsertControl(Form2);
End;
Form2.show[/align]
;
وفي الحدث Show لل Form2 نكتب الكود التالي
PHP كود :
[align=left]
Edit1.Text := Form2.Name;
Form2. Caption := 'إسم النمودج' ;[/align]