Creo que estan haciendo una tormenta en un vaso de agua. jejejeje
Porque no veo la complicación.(sera que a lo mejor no he entendido bien) pero, lo mas simple que se me ocurre es una variable que vaya de 1 a 4 y veceversa dependiendo el caso en el que se seleccione (check = true, Inc(variable)) o deseleccione (check = false, Dec(variable)). y para ver cuantos tienes seleccionados pues
puedes ver el valor de la variable o con un ciclo como ya lo han dicho antes.
Código Delphi
[-]
var seleccionados : Byte;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin ckbox.AddItem('item ' + IntToStr(ckbox.Count + 1), self);
Label1.Caption := 'Has agregado ' + 'item ' + IntToStr(ckbox.Count);
end;
procedure TForm1.ckboxClickCheck(Sender: TObject);
begin
if ckbox.Checked [ckbox.ItemIndex] then begin
if seleccionados < 4 then
Inc (seleccionados)
else
ckbox.Checked [ckbox.ItemIndex] := False;
Label1.Caption := 'Seleccionado: ' + ckbox.Items.Strings [ckbox.ItemIndex];
end
else
begin
Dec (seleccionados);
Label1.Caption := 'Deseleccionado: ' + ckbox.Items.Strings [ckbox.ItemIndex];
end;
end;
Checa bien los códigos. creo que ahi esta la respuesta que buscas.
SALUDOS