Hast Du denn wirklich alle Checkboxen richtig benannt?
Du kannst Deinen Code vielleicht auch so ändern, dass Du zunächst mal prüfst, ob die Checkbox des gesuchten Namens überhaupt vorhanden ist:
Delphi-Quellcode:
while c3 < 29 do begin
Inc(c3);
if FindComponent('CheckBox' + IntToStr(c3))<>nil then begin
if TCheckbox(FindComponent('CheckBox' + IntToStr(c3))).Checked = true then begin
if durckm.ItemIndex = 1
then a.Add(TCheckbox(FindComponent('CheckBox' + IntToStr(c3))).Caption + ' hat abgeben!')
else Memo1.Lines.Add(TCheckbox(FindComponent('CheckBox' + IntToStr(c3))).Caption + ' hat abgegeben!');
end else begin
if durckm.ItemIndex = 1
then na.Add(TCheckbox(FindComponent('CheckBox' + IntToStr(c3))).Caption + ' hat nicht abgegeben!');
Memo1.Lines.Add(TCheckbox(FindComponent('CheckBox' + IntToStr(c3))).Caption + ' hat abgegeben!');
end;
end else ShowMessage('CheckBox' + IntToStr(c3)+' existiert nicht!');
end;