delphi4arab منتديات دلفي للعرب
تنفيذ أمر على مجموعة من الأزرار أو غيرها - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : تنفيذ أمر على مجموعة من الأزرار أو غيرها (/showthread.php?tid=5926)



تنفيذ أمر على مجموعة من الأزرار أو غيرها - belnono - 07-02-2014

السلام عليكم ورحمة الله تعالى وبركاته
ما الطريقة المختصرة بتنفيذ أمر ما (مثلا إخفاء) لكن على مجموعة من الأزرار فقط وتكون متتالية
مثلا لو أنه لدي: 40 زر (button) و إخفاء الأزرار من (12 حتى 23)، لقد جربت هذه الطريقة button[12..23] لكن بلا فائدة
وحاولت معها بكل الطرق ولم أنجح
بارك الله فيكم


تنفيذ أمر على مجموعة من الأزرار أو غيرها - مبرمج مبتدأ - 07-02-2014

أضف زر جديد ثم أضف الكود التالي:
PHP كود :
Button1.visible := false;
Button2.visible := false;
Button3.visible := false;
Button3.visible := false; 

و هكذا



تنفيذ أمر على مجموعة من الأزرار أو غيرها - belnono - 07-02-2014

شكرا أخي الكريم أنا أدرك ما قلته لي
لكن لكل هذه الأزرار هل يوجد كود واحد فقط لأن النسخ واللصق متعب جدا ؟
بارك الله فيك


تنفيذ أمر على مجموعة من الأزرار أو غيرها - SMP3 - 07-02-2014

شيئ مثل هذا :
PHP كود :
Procedure HideButtons(Parent: TComponent; From, _To: integer);
var
  
BtnList: TList;
  
i: integer;
begin
  BtnList 
:= TList.Create;
  for 
i := 0 to Parent.ComponentCount - 1 do
  
begin
    
if Parent.Components[i] is TCustomButton then
      BtnList
.Add(Parent.Components[i]);
  
end;
  if 
BtnList.Count > 0 then
    
if (From < BtnList.Count) and (_To <= BtnList.Count) then
    begin
      
for i := From to _To do
        if (
i < BtnList.Count) then
          TCustomButton
(BtnList.Items[i]).Hide;
    
end;
  
BtnList.Free;
end; 
PHP كود :
HideButtons(Self, 0, 3); 



تنفيذ أمر على مجموعة من الأزرار أو غيرها - belnono - 08-02-2014

بارك الله فيك أخي الكريم SMP3
لكن هذا الكود طويل ومعقد، لكنني لاحظت فيه شيئا مهما
حاولت أن أختصر (ملاحظة أنا مبتديء ولا أتقن هذه الأمور)
العملية بطريقة أخرى كالآتي:
-----------------------------
procedure TForm1.Button7Click(Sender: TObject);
var a:integer;
ListeBoutons: array of TButton;
begin
for a := 1 to 3 do
ListeBoutons[a].Visible:=false;
end;
end.
------------------------------------------------------
فالبرنامج يتم تنفيذه لكنه لا يعمل ويظهر خطأ
رجاء إذا أمكنك أن تحدد لي الخطأ وتصححه
بارك الله فيك


تنفيذ أمر على مجموعة من الأزرار أو غيرها - SMP3 - 08-02-2014

الكود لا يعمل لأن ListeBoutons غير مهيئة .