السلام عليكم ورحمة الله وبركاتة
تستطيع عمل ذلك من خلال عدة طرق
اسهلها هي من خلال إنشاء TListActions وتقوم بوضع الأحداث التي تريد نسبها إلى الازرار
لنفرض انك تريد عمل اربعه ازرار (زر جمع, زر طرح, زر قسمة, زر ضرب)
بعد ذلك نقوم بتعبئة الأحداث الخاصة بالازرار في الـ TListActions
وسنسمي الأحداث كتالي : (actSum, actMaines, actDiv, actMultiplication)
وسيكون شكل الاحداث كتالي :
PHP كود :
procedure TForm1.actMainesExecute(Sender: TObject);
begin
ShowMessage(IntToStr(9 - 3));
end;
procedure TForm1.actMultiplicationExecute(Sender: TObject);
begin
ShowMessage(IntToStr(9 * 3));
end;
procedure TForm1.actDivExecute(Sender: TObject);
begin
ShowMessage(IntToStr(9 div 3));
end;
procedure TForm1.actSumExecute(Sender: TObject);
begin
ShowMessage(IntToStr(9 + 3));
end;
الآن بقي لنا عمل مصفوفة تحتوي الأزرار كي نستطيع التحكم بالأزرار وسنقوم بتعريفها في الـ Global
أي متغير عام :
PHP كود :
var
Form1: TForm1;
arrBtn : array[0..3] of TButton; // add this line
الآن بقيي ان نضع امر الإنشاء(create) وأمر التدمير(Destroy) او المسح او اين كان اسمه
بالنسبة لأمر الإنشاء تستطيع وضعه في اي مكان
اما امر التدمير يجب ان تضعه في الحدث FormDestroy الخاص بالنافذ التي تحتوي على الأزرار
كي يتم حذف الازرار قبل خروج البرنامج ويكون عملنا نضيف
لنضع زر في النافذة ونضع داخله امر إنشاء الازرار الآخرى وسيكون الأمر كتالي :
PHP كود :
procedure TForm1.Button1Click(Sender: TObject);
var
i : Integer;
begin
for i := 1 to 4 do
begin
arrBtn[i] := TButton.create(Self);
arrBtn[i].Left := 60 * i;
arrBtn[i].Top := 15;
arrBtn[i].Width := 50;
arrBtn[i].Height := 20;
arrBtn[i].Visible := True;
arrBtn[i].Parent := Self;
case i of
1 : arrBtn[i].Action := actSum;
// 1 : arrBtn[i].OnClick := actSum.OnExecute; You can do somethink like this
2 : arrBtn[i].Action := actMaines;
3 : arrBtn[i].Action := actDiv;
4 : arrBtn[i].Action := actMultiplication;
else ;
end;
end;
end;
ونضع امر التدمير كتالي :
PHP كود :
procedure TForm1.FormDestroy(Sender: TObject);
var
i : Integer;
begin
for i := 0 to 3 do
arrBtn[i].Free
end;
إذا اشكل عليك امر لم تفهمه تفضل بالسؤال
الكود بالمرفقات