Si vas a crear controles por código y requieres acceder a ellos sistemáticamente, no tiene caso abusar de técnicas que sirven para cuando uno no tiene control sobre la creación de los componentes. Código como
Código Delphi
[-]
for I := 0 to 20 do
FindComponent('Edit' + IntToStr(I))
puede verse muy claro pero es muy ineficiente. FindComponent lo que hace es recorrer todos los componentes hasta encontrar uno con el nombre dado. El resultado: una innecesaria doble iteración de todos los componentes.
Mejor crea las estructuras de datos que necesites para el efecto. Por ejemplo:
Código Delphi
[-]
type
TTupla = record
Edit: TEdit;
RadioButton: TRadioButton;
end;
var
Tuplas: array of TTupla;
De esta forma almacenas los controles creados en el arreglo dinámico Tuplas y cuando requieras recorrerlos simplemente harás:
Código Delphi
[-]
for I := Low(Tuplas) to High(Tuplas) do
begin
end;
EDITO:
Aclaro un poco: Los controles los creas igual que hasta ahora pero a su vez creas una tupla por cada uno y asignas los controles creados a los elementos de la tupla o incluso directamente:
Código Delphi
[-]
SetLength(Tuplas, 20);
Tuplas[0].Edit := TEdit.Create(...);
Tuplas[0].RadioButton := TRadioButton.Create(...);
....
Como verás, de esta forma no requieres asignar ningún nombre a los Edits y RadioButtons.
// Saludos