Ver Mensaje Individual
  #6  
Antiguo 02-04-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.278
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Código Delphi [-]
{The following example creates 20 edit boxes, using FindComponent with the edit box name to access each newly created edit box.}
procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
const
  NamePrefix = 'MyEdit';
begin
  for i := 1 to 20 do begin
    TEdit.Create(Self).Name := NamePrefix + IntToStr(i);
    with TEdit(FindComponent(NamePrefix + IntToStr(i))) do
    begin
      Left := 10;
      Top := i * 20;
      Parent := self;
    end;
  end;
end;

Aquí lo que está haciendo es crear 20 componentes y luego acceder a ellos utilizando FindComponent, cosa bastante tonta por cierto, ya que FindComponent no es muy eficiente y sólo se debería utilizar cuando no exista otro remedio, como en tu caso, pero no aquí que ya están disponibles los 20 componentes (por lo tanto no tiene sentido buscarlos con este método).

Sólo le encuentro sentido como muestra de utilización, pero creo que el código no es muy acertado, no porque sea incorrecto, sino porque muestra una programación muy ineficiente.

El Self, se refiere al "objeto actual"; Si te fijas en la definición de los procedimientos lo verás claramente:

Código Delphi [-]
// En este contexto el Self es el objeto de la clase TForm1 que está
// ejecutando ese código
procedure TForm1.Button1Click(Sender: TObject);
...

Código Delphi [-]
// Si el código estuviera aquí el Self sería el objeto de la clase TPanel1 que 
// está ejecutando ese código
procedure TPANEL1.BitBtn1Click(Sender: TObject);
...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita