Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-02-2024
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Componentes en un TTabSheet

Me estoy volviendo loco. Tengo esta pantalla:

que es un TPageControl con tres pestañas, cada una con sus TEdit, TImage, etc., y quiero recorrer los elementos de cada pestaña buscando exclusivamente los TImage. Para ello uso este código:
Código:
Source = this->FindComponent(PageControl1->ActivePage->Name);
TTabSheet *Sheet = static_cast<TTabSheet *>(Source);
for (nItem = 0; nItem < Sheet->ComponentCount; nItem ++)
{
     Source = Sheet->Components[nCount];
     if (!Source->ClassNameIs("TImage"))
          continue;
}
Las dos primeras líneas las ejecuta sin ningún problema pero al llegar al inicio del bucle me encuentro que Sheet->ComponentCount vale 0 cuando debería vale 12 ó 13. También he comprobado que mientras la pestaña seleccionada tiene, por ejemplo, de dirección de memoria :00B0A758, esa variable Sheet tiene :00B0A19C, con lo cual es evidente que no es el mismo elemento, pero Source sí tiene el mismo valor de la pestaña. ¿Qué estoy haciendo mal?
Responder Con Cita
  #2  
Antiguo 05-02-2024
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Como sigo probando, voy un paso más allá: En esa pantalla el primer TEdit se llama Titulo_cine y la pestaña Cine; he comprobado con el depurador esto:
Cita:
Titulo_cine->Parent: :00B3A758
Cine: :00B3A758
Cine->ComponentCount: 0
Responder Con Cita
  #3  
Antiguo 05-02-2024
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Creo que no es componentcount, sino controlcount.
Responder Con Cita
  #4  
Antiguo 05-02-2024
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.275
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
Prueba a usar ControlsCount y Controls[i] en lugar de ComponentsCount y Components[i].
Ten en cuenta que si el Image está dentrro de un TPanel, deberás repetir el proceso para los controles que sean contenedores (de forma recursiva)
__________________
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
  #5  
Antiguo 05-02-2024
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Prueba a usar ControlsCount y Controls[i] en lugar de ComponentsCount y Components[i].
Ten en cuenta que si el Image está dentrro de un TPanel, deberás repetir el proceso para los controles que sean contenedores (de forma recursiva)
Es el caso: los TImage están dentro de paneles. Gracias por la inidicación
Responder Con Cita
  #6  
Antiguo 05-02-2024
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Gracias a los dos. Efectivamente es ControlCount. Estaba usando ComponentCount porque en otra función que tengo lo uso así y va bien.
Responder Con Cita
  #7  
Antiguo 05-02-2024
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Prueba a usar ControlsCount y Controls[i] en lugar de ComponentsCount y Components[i].
Ten en cuenta que si el Image está dentrro de un TPanel, deberás repetir el proceso para los controles que sean contenedores (de forma recursiva)
He reemplazado los TPanel por TBevel y listo.
Responder Con Cita
  #8  
Antiguo 06-02-2024
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.275
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 Angel.Matilla Ver Mensaje
He reemplazado los TPanel por TBevel y listo.

Es otra opción para simplificar.
Aunque si el TPanel es necesario, tampoco se complica mucho la cosa...
__________________
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
  #9  
Antiguo 06-02-2024
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Es otra opción para simplificar.
Aunque si el TPanel es necesario, tampoco se complica mucho la cosa...
Básicamente es para que en la pantalla se vea que ahí hay algo cuando esté vacío.
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
Crear un DbGrid en una TTabSheet GerTorresM OOP 5 22-07-2007 21:50:34
TTabSheet - TForm - Parent neon OOP 0 11-01-2005 16:34:03
editor sencillo con pagecontrol y ttabsheet oesteve OOP 0 03-07-2003 10:36:47
TTabSheet con TMemo incrustado por defecto oesteve OOP 1 10-06-2003 17:26:55
como duplico intancias TtabSheet orfeo OOP 2 12-05-2003 04:15:04


La franja horaria es GMT +2. Ahora son las 16:18:57.


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