Массив из CheckBox - использование разделяемого обработчика события I
Поместите несколько Checkbox в компонент TGroupBox. Во время прогона (или проектирования) назначьте общий обработчик события Click для всех checkbox'в. Чтобы в цикле обойти все "дочерние" TCheckBox'ы, можно воспользоваться свойством-массивом Controls TGroupBox (и заодно привести их к типу TCheckBox). Приблизительно так:
for i := 0 to GroupBox1.ControlCount -1 do
if (GroupBox1.Controls[i] as TCheckBox).checked then
{что-то там еще}; |
Вы можете получить имя sender следующим образом:
procedure TMain1.CheckBoxClick(Sender: TObject);
var
whodidit : string[63];
begin
whodidit := TComponent(sender).name;
end; |
После приведения типа можно добраться и до других свойств. К примеру, очень полезным может оказаться свойство Tag. Во время создания, вы можете присвоить каждому checkbox.tag свой ID номер. А в обработчике события, читая ID, можно идентифицировать sender.