Tad писал(а):
И где это массив перебирается два раза? Нет там массива. Есть MT-строка.
1. Вы запрашиваете у MST_CheckBoxes с AllCheck МТ-строку содержащую индексы выделенных флажков.
2. MST_CheckBoxes перебирает массив for i := 0 to sControl.Count - 1 do и выдает вам МТ-строку.
3. Вы проверяете эту МТ-строку и обнаружев что хотябы один флажек включен, сново запрашиваете с AllCheck МТ-строку.
4. MST_CheckBoxes сново перебирает массив for i := 0 to sControl.Count - 1 do и выдает туже самую МТ-строку для её перебора.
Вот и зачем нужно два раза запрашивать МТ-строку, если можно проще:
Запросить МТ-строку и если она не пустая, отдать её на перебор. Без второго запроса.
Tad писал(а):
А заодно объясни зачем там DoData ?