En vez de utilizar esto:
Código Delphi
[-]perfil.Detalles.Add(form.Controls[i])
Utiliza este otro:
Código Delphi
[-]perfil.Detalles.AddObject(form.Controls[i])
El
.Detalles tiene que ser TStrings para poder utilizar lo anterior.
Cuando recuperes el objecto lo tienes que hacer:
Código Delphi
[-]...
var
oCtrl: TCheckBox;
nI: Integer;
begin
for nI := 0 to (perfil.Detalles.Count -1) do
begin
oCtrl := (perfil.Detalles.Objects[nI] as TCheckBox);
if oCtrl.Checked then
begin
...
...
end;
end;
end;
Espero que sea esto lo que estés buscando.
Un saludo.