![]() |
|
كيف أختصر هذا الكود؟ - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : كيف أختصر هذا الكود؟ (/showthread.php?tid=11534) الصفحات:
1
2
|
كيف أختصر هذا الكود؟ - ALG2009 - 30-09-2021 السلام عليكم هل يمكن إختصار هذا الكود؟ كود : procedure TForm2.SpeedButton1Click(Sender: TObject);
begin
if panel1.tag =0 then
begin
panel1.Height:=345;
panel1.Tag:=1;
panel2.Height:=40;
panel2.Tag:=0;
panel3.Height:=40;
panel3.Tag:=0;
panel4.Height:=40;
panel4.Tag:=0;
end
else
begin
panel1.Height:=40;
panel1.Tag:=0;
end;
end;
procedure TForm2.SpeedButton2Click(Sender: TObject);
begin
if panel2.tag =0 then
begin
panel1.Height:=40;
panel1.Tag:=0;
panel2.Height:=345;
panel2.Tag:=1;
panel3.Height:=40;
panel3.Tag:=0;
panel4.Height:=40;
panel4.Tag:=0;
end
else
begin
panel2.Height:=40;
panel2.Tag:=0;
end;
end;
procedure TForm2.SpeedButton3Click(Sender: TObject);
begin
if panel3.tag =0 then
begin
panel1.Height:=40;
panel1.Tag:=0;
panel2.Height:=40;
panel2.Tag:=0;
panel3.Height:=345;
panel3.Tag:=1;
panel4.Height:=40;
panel4.Tag:=0;
end
else
begin
panel3.Height:=40;
panel3.Tag:=0;
end;
end;
procedure TForm2.SpeedButton4Click(Sender: TObject);
begin
if panel4.tag =0 then
begin
panel1.Height:=40;
panel1.Tag:=0;
panel2.Height:=40;
panel2.Tag:=0;
panel3.Height:=40;
panel3.Tag:=0;
panel4.Height:=345;
panel4.Tag:=1;
end
else
begin
panel4.Height:=40;
panel4.Tag:=0;
end;
end;RE: كيف أختصر هذا الكود؟ - لؤي - 30-09-2021 السلام عليكم لما لا تستعمل : PHP كود : Case then RE: كيف أختصر هذا الكود؟ - ALG2009 - 30-09-2021 كيف تستخدم Case وكل كود في زر (button) مع العلم أن هذه الازرار والبانل الخاص بها موجودون داخل بانل Panel مشترك ممكن يكون الاختصار بشئ مثل If panel is sender أو مثل هذا القبيل لأني حاولت فهم السندر وتطبيقاتها ولم أستطع RE: كيف أختصر هذا الكود؟ - S.FATEH - 30-09-2021 السلام عليكم يمكنك استخدام الـ Sender RE: كيف أختصر هذا الكود؟ - ALG2009 - 30-09-2021 (30-09-2021, 03:03 PM)S.FATEH كتب : السلام عليكم مشكلتي مع الـ Sender أني لم أفهمه من يرسل الأمر هل هو الزر الـ Panel كيف يعمل الساندر هذا ما لم أفهمه RE: كيف أختصر هذا الكود؟ - AX302 - 30-09-2021 السلام عليكم كود : procedure ResizePanels(CheckedPanel : TPanel; ChangedPanels : array of TPanel; ChangedPanelsHeights : array of Integer; ChangedPanelsTagss : array of Integer);
begin
if CheckedPanel.Tag = 0 then
begin
for var I := Low(ChangedPanels) to High(ChangedPanels) do
begin
ChangedPanels[I].Height := ChangedPanelsHeights[I];
ChangedPanels[I].Tag := ChangedPanelsTagss[I];
end;
end
else
begin
CheckedPanel.Height := 40;
CheckedPanel.Tag := 0;
end;
end;طريقة الاستعمال كود : procedure TForm1.Button1Click(Sender: TObject);
begin
ResizePanels(panel1, [panel1, panel2, panel3, panel4], [345, 40, 40, 40], [1, 0, 0, 0]);
end;كما يمكنك استعمال Sender RE: كيف أختصر هذا الكود؟ - ALG2009 - 01-10-2021 جزاك الله خيرا الطريقة فعالة وتعمل وأتمنى أن أطلع على كيفية عملها بالـ Sender RE: كيف أختصر هذا الكود؟ - AX302 - 01-10-2021 (01-10-2021, 01:09 AM)ALG2009 كتب : جزاك الله خيرا طريقة عمل Sender جد بسيطة فهو مجرد برامتر من نوع TObject , يمكنك الاستعانة به لاكنك سوف تقع في مشكل التكرار عن طريق ال IF / AS , ادا كنت تريد استعماله فوق قم بعمل Select للازرار التي تريد تغيير حجم Panels بها كما في الصورة ادناه و في حدث OnClick اضغط مرتين لانتاج Method يقوم بمناداتها كل الازرار التي عملت لها Selection بعدها مجرد استعمال لل IF داخل هاته Method. كود : if Sender = Button1 thenكود : if Sender as TButton then
RE: كيف أختصر هذا الكود؟ - ALG2009 - 01-10-2021 الله يرضى عليك وزادك الله خيرا وزادك من علمه شكرا جزيلا AX302 RE: كيف أختصر هذا الكود؟ - ferrero - 01-10-2021
|