Ver Mensaje Individual
  #5  
Antiguo 08-02-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
  {
    Haces lo que requieras con
      Tuplas[i].Edit y Tuplas[i].RadioButton
  }
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 [-]
// Asignas el número de controles que requieras
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

Última edición por roman fecha: 08-02-2005 a las 17:59:15.
Responder Con Cita