for i:=0 to RzCheckList1.Count-1 do
begin
if RzCheckList1.ItemChecked[i]=True then
...
end;
کدی که شما نوشتید برای این هست که هر کدوم از اعضای لیست باکس چک خورده بود متقابل یه کاری انجام بشه ولی ایشون میخوان مثلا اگر ما گزینه های 1،7،9،14 را از لیست چک زدیم و مثلا دکمه ی استارت رو زدیم چک باکس پاک شه و فایلهای مربوط به اون گزینه کپی شن و بعد از کپی شدن هر کدوم تیکش بخوره .
برای این کار اول یه آرایه سراسری به تعداد عناصر لیست باکست تعریف کن ، بعد تو رویداد OnClcikCheck آرایه رو به صورت زیر مقدار دهی کن : ( آرایه ی که من برای نمونه برات گزاشتم 25 عنصری هست )
تعریف آرایه :
var Num: Array[0..25] of Boolean;
مقدار دهی به آرایه :
Num[CheckListBox1.ItemIndex]:=CheckListBox1.Checked[CheckListBox1.ItemIndex];
حالا تو کلید یا ... که میخوای کار رو شروع کنه کد زیر رو بنویس :
var
I,j:Integer;
begin
// Loop for uncheck all items
for J:=0 to CheckListBox1.Count-1 do CheckListBox1.Checked[J]:=False;
// Loop for check items that selected at first
for I:=0 to CheckListBox1.Count do begin
// Loop for uncheck all items
for j:=0 to CheckListBox1.Count-1 do CheckListBox1.Checked[j]:=False;
if Num[i]=True then begin
CheckListBox1.Checked[i]:=True;
end;
Sleep(20);
end;
end;
Sleep رو گزاشتم تا عملکرد کد معلوم شه و کار خاصی انجام نمیده .