Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #21  
Antiguo 05-10-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Si están dentro del Scrollbox, creo que seria Scrollbox.Controls[i].Free (obviamente el bucle es sobre scrollbox.controls.count -1)

Destroy se usa cuando diseñas el componente, pero no se debe llamar nunca, hay que usar Free.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #22  
Antiguo 05-10-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
¿Sin importar que están dentro a través del parent?.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #23  
Antiguo 05-10-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Bueno haciendo la modificación con tu consejo Lepe:
Código Delphi [-]
var I: Integer;
begin
for I := 0 to FMain.ScrollBox1.ControlCount do begin
//destruye los componentes creados
if FMain.ScrollBox1.Controls[i] is TFrame then
    TFrame(FMain.ScrollBox1.Controls[i]).Free;
//

Error:
Cita:
---------------------------
Debugger Exception Notification
---------------------------
Project Vellonera.exe raised exception class EListError with message 'List index out of bounds (3)'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
En el Scrollbox tenía seis frame y sólo destruyó 3 intercalados y no completó el código.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #24  
Antiguo 05-10-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por enecumene Ver Mensaje
Bueno haciendo la modificación con tu consejo Lepe:
Código Delphi [-]var I: Integer; begin for I := 0 to FMain.ScrollBox1.ControlCount do begin //destruye los componentes creados if FMain.ScrollBox1.Controls[i] is TFrame then TFrame(FMain.ScrollBox1.Controls[i]).Free; //


Error:


En el Scrollbox tenía seis frame y sólo destruyó 3 intercalados y no completó el código.

Saludos.
Hola enecumene, Por la descripción del error y el código intuyo que se debe a que te faltó restar 1 a ControlCount.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #25  
Antiguo 05-10-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Cita:
Empezado por Delphius Ver Mensaje
Hola enecumene, Por la descripción del error y el código intuyo que se debe a que te faltó restar 1 a ControlCount.

Saludos,
Pues no, sigue con el mismo error
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.

Última edición por enecumene fecha: 05-10-2008 a las 01:11:37.
Responder Con Cita
  #26  
Antiguo 05-10-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por enecumene Ver Mensaje
Pues no, sigue con el mismo error
Ummmm que raro.

Ahora que veo el código... yo diría que debería ser downto. Es decir que el for debe ir desde ControlCount - 1 hasta 0:

Código Delphi [-]
for i := ScrollBox1.ControlCount - 1 donwto 0 do...

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #27  
Antiguo 05-10-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Cita:
Empezado por Delphius Ver Mensaje
Ummmm que raro.

Ahora que veo el código... yo diría que debería ser downto. Es decir que el for debe ir desde ControlCount - 1 hasta 0:

Código Delphi [-]for i := ScrollBox1.ControlCount - 1 donwto 0 do...


Saludos,
Pues efectivamente mi amigo salteño, me resolvió ese problema, le estoy agradecido.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #28  
Antiguo 05-10-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por enecumene Ver Mensaje
Pues efectivamente mi amigo salteño, me resolvió ese problema, le estoy agradecido.

Saludos.
Un gusto en poder ayudarte Fernando.
Para mi no hay mejor recompensa que el haber ayudado a buen amigo.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #29  
Antiguo 09-10-2008
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Thumbs up

Hola enecumene prueba con esto:
Código Delphi [-]
for I := 0 to FMain.ComponentCount - 1 do begin
//destruye los componentes creados
if FMain.Components[i] is TFrame1 then
    TFrame1(FMain.Components[i]).Free;
//

Saludos....
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #30  
Antiguo 09-10-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Gracias rgstuamigo, la solución de Delphius me resolvió el problema, de todos modos te agradezco tu ayuda

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #31  
Antiguo 09-10-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Ahora se me presenta otra duda, en los frames que se crean y se eliminan en tiempo de ejecución tienen una imagen con su propiedad visible en False, que sólo se presentará al darle click a otra imagen, ¿qué sucede?, al darle click a las demás imágenes se presenta esa imagen sin lograr que las demás vuelvan al estado de visibilidad a False. Para mejor apreciación adjunto una imagen:



como pueden ver las figuras 1, 2 y 3, al dar click una imagen aparece la figura 1, pero al dar la siguiente imagen aparece la figura 2 pero no desaparece la figura1 y así sucesivamente, como se trata de un ciclo y hay dos TImage en el frame no sabría cómo llegarle al asunto.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #32  
Antiguo 10-10-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Al final vas a necesitar una lista. Es como un Listbox, que al poner su propiedad Seletected := 3, deselecciona el anterior y selecciona el nuevo.

Puedes heredar de un TObjectList e implementarlo, te será fácil y muy cómodo de mantener el código. Podrías tener una variable global que indique el elemento seleccionado, pero con el tiempo se te complicará.

La lista, también te permitiría liberar todos los componentes sin tener que recorrer los controles del scrollbox.

Busca en el foro, hay mucho sobre TObjectList, así como en la propia ayuda de windows.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #33  
Antiguo 10-10-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Muchas gracias Lepe, ahora mismo lo verifico

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
como crear un boton en ejecucion y ponerle un evento jeremiselxi Varios 6 24-09-2008 20:34:40
Como saber si me frame esta creado en cierto evento? Albano OOP 2 15-03-2007 23:13:44
ayuda con boton creado dinamicamente y sus evento cureham OOP 1 13-09-2006 09:39:14
Crear componente Image en tiempo d Ejecucion Jessica666 Gráficos 6 30-05-2004 01:58:22
asignar evento a control creado dinamicamente jorgeganc Varios 4 17-12-2003 02:47:51


La franja horaria es GMT +2. Ahora son las 19:17:41.


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