Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-10-2005
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: 19.449
Poder: 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
Puedes recorrer todos los componentes del formulario utilizando los métodos componentCount y Componentes[i].
Una vez que hagas el recorrido, se trata de preguntar cuales están dentro del scrollbox para borrarlos; Para ello puedes utilizar la propiedad Parent. Algo así:

Código Delphi [-]
 var
   i:Integer;
   ctrl:TControl;
 begin
 
   // recorrer la lista de componentes (al revés)
   for i := (Self.ComponentCount - 1) downto 0 do begin
     // Es un TControl ?
     if (Self.Components[i] is tControl) then begin
       ctrl := TControl(Self.Components[i]);
       // Está en el Scrolll?
       if (ctrl.Parent = ScrollBox1) then begin
         MessageDlg('Se va a borrar: ' + ctrl.Name, mtWarning, [mbOK], 0);
         FreeAndNil(ctrl);
       end;
     end;
   end;
__________________
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
  #2  
Antiguo 04-10-2005
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 23
yusnerqui Va por buen camino
Otra salución

Hola, por qué no usar las propiedades controls y controlcount del propio TScrollBox, de esta forma solo recorremos los elementos que nos interesa (controles del ScrollBox1) y simplemente los destruimos.

Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
var
   i : integer;
begin
  for i := ScrollBox1.ControlCount -1  downto 0 do
      ScrollBox1.Controls[i].Free;
end;

Bueno pues ahora tienes dos vías

Saludos Yusnerqui
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo

Responder Con Cita
  #3  
Antiguo 04-10-2005
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: 19.449
Poder: 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
Cita:
Empezado por yusnerqui
...por qué no usar las propiedades controls y controlcount del propio TScrollBox?
Efectívamente, porqué no usarlas... (se me pasó...)

Cita:
Empezado por yusnerqui
...Bueno pues ahora tienes dos vías...
A usar preferiblemente la de yusnerqui, ya que es más clara y eficiente.
__________________
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
  #4  
Antiguo 05-10-2005
Avatar de sierraja
sierraja sierraja is offline
Miembro
 
Registrado: sep 2004
Posts: 281
Poder: 22
sierraja Va por buen camino
ok Probaré apenas llegue a casa. Muchas gracias.....
Responder Con Cita
  #5  
Antiguo 05-10-2005
Avatar de sierraja
sierraja sierraja is offline
Miembro
 
Registrado: sep 2004
Posts: 281
Poder: 22
sierraja Va por buen camino
Una pregunta: ¿Por qué se hace el recorrido al revés?. Gracias....
Responder Con Cita
  #6  
Antiguo 05-10-2005
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: 19.449
Poder: 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
Cita:
Empezado por sierraja
¿Por qué se hace el recorrido al revés?
Como los vas borrando, si empiezas por el principio te dará error (antes o después).
Por ejempo, si la lista tiene 20 elementos, al eliminar el 0, el que antes era el 1 pasa al 0 y al intentar eliminar el 1, realmente has borrado el dos.

Espero haberme explicado.
__________________
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
  #7  
Antiguo 05-10-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
Cita:
Empezado por Neftali
Como los vas borrando, si empiezas por el principio te dará error (antes o después).
¡Ahh! Entonces podemos ahorrarnos una variable:

Código Delphi [-]
while ScrollBox1.ControlCount > 0 do
  ScrollBox1.Controls[0].Free;

// Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 22:04:24.


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