تنفيذ أمر على مجموعة من الأزرار أو غيرها
#1
السلام عليكم ورحمة الله تعالى وبركاته
ما الطريقة المختصرة بتنفيذ أمر ما (مثلا إخفاء) لكن على مجموعة من الأزرار فقط وتكون متتالية
مثلا لو أنه لدي: 40 زر (button) و إخفاء الأزرار من (12 حتى 23)، لقد جربت هذه الطريقة button[12..23] لكن بلا فائدة
وحاولت معها بكل الطرق ولم أنجح
بارك الله فيكم
الرد
#2
أضف زر جديد ثم أضف الكود التالي:
PHP كود :
Button1.visible := false;
Button2.visible := false;
Button3.visible := false;
Button3.visible := false; 

و هكذا
لا إله إلا الله محمد رسول الله
الرد
#3
شكرا أخي الكريم أنا أدرك ما قلته لي
لكن لكل هذه الأزرار هل يوجد كود واحد فقط لأن النسخ واللصق متعب جدا ؟
بارك الله فيك
الرد
#4
شيئ مثل هذا :
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); 
Open Your Source .. Open Your Mind
الرد
#5
بارك الله فيك أخي الكريم 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.
------------------------------------------------------
فالبرنامج يتم تنفيذه لكنه لا يعمل ويظهر خطأ
رجاء إذا أمكنك أن تحدد لي الخطأ وتصححه
بارك الله فيك
الرد
#6
الكود لا يعمل لأن ListeBoutons غير مهيئة .
Open Your Source .. Open Your Mind
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم