Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-05-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Una pequeña modificación:

En donde dice

Check := Components[i] as TCheckBox;

sería mejor poner

Check := TCheckBox(Components[i]);

El operador as implícitamente hace uso del operador is lo cual es innecesario porque ya se verificó antes.

Y una observación (a ver si repitiendo causa algún efecto): este código de maeyanes es mucho más recomendable que el uso de FindComponent ya que se hace el recorrido de los componentes del formulario una sólo vez y no multiplicado por 100.

// Saludos
Responder Con Cita
  #2  
Antiguo 31-05-2005
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Por cierto, me di cuenta que puse Check := Components[ I ] is TCheckBox en lugar de as... :P

Última edición por maeyanes fecha: 31-05-2005 a las 17:36:22.
Responder Con Cita
  #3  
Antiguo 31-05-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Pues no. Veo que ni reiterando quieren omitir el uso de FindComponent.

Una de las pocas (muy pocas) cosas en las que me gustaba más VB son sus arreglos de componentes con lo cual sería mucho más fácil trabajar en estos casos.

Dicha esta barbaridad, veamos cómo podemos arreglárnoslas con Delphi.

En el formulario declaren el arreglo necesitado:

Código Delphi [-]
type
  TForm1 = class(TForm)
  private
    CheckBoxes: array of TCheckBox;
  end;

En el constructor del formulario usen el código de maeyanes pero para llenar el arreglo:

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
var
  I: Integer; // para recorrer los componentes del formulario
  J: Integer; // para indexar el arreglo de check boxes

begin
  SetLength(CheckBoxes, 100);
  J := 0;

  for I := 0 to ComponentCount - 1 do
    if Components[i] is TCheckBox then
    begin
      CheckBoxes[J] := TCheckBox(Components[i]);
      Inc(J);
    end;
end;

Entonces, para el resto de la aplicación se dispondrá de un arreglo de check boxes mucho más fácil de manipular las veces que sea necesario:

Código Delphi [-]
var
  I: Integer;

begin
  for I := Low(CheckBoxes) to High(CheckBoxes) do
    // código para CheckBoxes[i]
end;

// Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 03:42:01.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi