В ветке по лазарю я спрашивал, как лучше создавать радиокнопки в рантайме.
Теперь попутный вопрос. Мне надо заполнить несколько групбоксов радиокнопками по одному и тому же алгоритму, но с разными параметрами. Основная идея: количество кнопок определяется мощностью перечислимого типа, которая, как и сам тип, зависит от конкретной задачи.
Например, для коллекций вопросов мне нужно три кнопки: "коллекция-теория", "коллекция-практика" и "смешанная коллекция". В коллекции может быть два типа модулей: "модуль-теория" и "модуль-практика". В практическом модулек может быть (на данный момент) 4 варианта вопросов, отличающихся способом ввода ответа: "выбрать несколько (1 или больше) правильных из предложенных вариантов", "вписать строковый (буквы и (или) цифры) ответ", "вписать числовой ответ", "расставить предложенные варианты в правильном порядке"
Было бы логично передавать все данные для создания набора кнопок в некую процедуру типа:
proc MakeButtons(var где:tgroupbox;подписи:array of strings;var buttons:array of tradiobutton;enum:type)
где enum - это перечислимый тип, количество элементов в котором определяет количество создаваемых кнопок, размер массива подписей и т.д.
Зачем этот тип передавать? Потому что хочу создавать кнопки в таком цикле:
var i:enum
for i:=low(enum) to high(enum) do СоздатьКнопкуИЗадатьЕёПараметры...
Вот мне и интересно, можно ли сочинить такую конструкцию или на каждую группу заводить свой цикл, создавая кучи однотипного кода?