Ver Mensaje Individual
  #1  
Antiguo 25-11-2010
rruffino rruffino is offline
Miembro
 
Registrado: dic 2004
Ubicación: Berrotaran, Cordoba - Argentina
Posts: 215
Reputación: 20
rruffino Va por buen camino
Question Manejo de Componentes en Tiempo de ejecución

Hola a todos, si bien hay varias cosas dando vueltas acerca de este tema me quedan un par de dudas al respecto y de paso por si alguien tiene las mismas dudas planteo este hilo para globalizar un poco el tema del manejo de componentes en tiempo de ejecución.
Baso el ejemplo en los Labels:
- Crear Labels:
Código Delphi [-]
var
  Favorito: TLabel;
  cant_favoritos: integer;
begin
          cant_favoritos: =0;
          Favorito := TLabel.Create(Self);
          //Ubicación del componente, color, etc...
          Favorito.Parent := sScrollBox_favorito;
          Favorito.Align := alTop;
          Favorito.Cursor:=crHandPoint;
          Favorito.Font.Color:=$00B23D00;
          Favorito.Caption:=DM.IBDataSet_favoritoNOMBRE.Value;
          Favorito.Name := 'Favorito_'+IntToStr(cant_favoritos);
          Favorito.PopupMenu:=PopupMenu_elim_favorito;
end;
Bueno, en este caso uso la variable cant_favoritos para controlar el nombre del componente

-Eliminar Labels:
Código Delphi [-]
var
  i:Integer;
begin
  for i:=ComponentCount -1 downto 0 do
    begin
      if (Components[i] is TLabel)then
        Components[i].free;
    end;
end;
Con este codigo (obtenido de otro hilo) elimino los componentes Labels.

Hasta ahí todo bien, las dudas que me surgen ahora son las siguientes:
-¿Cómo borrar un único componente que fue creado en tiempo de ejecución?
-¿Cómo borrar todos los componentes que fueron creados en tiempo de ejecución?
-¿Cómo asignarle eventos (como por ejemplo el OnClick) a cada componente que voy creando en tiempo de ejecución?
-¿Como referenciar componentes creados en tiempo de ejecucion para cambiarles sus propiedades como por ejemplo el color, fuente, etc.?

Bien, creo que esas son las cosas basicas que podemos hacer con los componentes creados en tiempo de ejecución, o al menos es lo que yo estoy necesitando hacer.

Desde ya se agradece cualquier aporte a la causa...
Saludos!!!
Responder Con Cita