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 08-10-2003
Avatar de diegofhernando
diegofhernando diegofhernando is offline
Miembro
 
Registrado: may 2003
Ubicación: Locombia papá!
Posts: 267
Poder: 22
diegofhernando Va por buen camino
Problema con Forms Dinamicos

Que tal foro...

En mi aplicación creo forms dinamicamente, puedo mostrarlos u ocultarlos sin problema y sin importar la cantidad que el usuario cree, el problema radica cuando intento acceder a uno de los objetos de esos formularios, la verdad es que no se como hacerlo, cuando accedo a las propiedades, metodos u objetos a traves de:

Screen.Forms[x]

solo me muestra los de un form normal y no los que contiene la clase que cree, si alguno se le ocurre como solucionar esta situación le agradeceria que me lo comunicara.


Salu2
__________________
Diego. Colombia es pasión.
Responder Con Cita
  #2  
Antiguo 08-10-2003
Avatar de diegofhernando
diegofhernando diegofhernando is offline
Miembro
 
Registrado: may 2003
Ubicación: Locombia papá!
Posts: 267
Poder: 22
diegofhernando Va por buen camino
hola de nuevo...

acabo de intentar con el siguiente codigo:

with screen.forms[i] as TMiForm do
boton.caption:= 'MI FORM';

al ejecutarlo primero genera una excepción (Invalid Class TypeCast) pero al pasarla el boton realmente tiene el caption asinado, es decir, funciona pero no funciona.
__________________
Diego. Colombia es pasión.
Responder Con Cita
  #3  
Antiguo 08-10-2003
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
Invalid TypeCast es porque en algún paso la instrucción

screen.forms[i] as TMiForm

no es correcta.

Puede suceder que no todas los formularios sean de tipo TMiForm, por ejemplo el formulario principal. Si esto sucede se genera el error. Y creo que el código se ejecutó sólo hasta que se necontró el error. Quizá falló cuando ya había cambiado el Caption de tus formularios pero se detuvo en el incorrecto. Para evitarte problemas será mejor que hagas algo así:

Código:
if screen.forms[i] is TMiForm then
  with TMiForm(screen.forms[i]) do
    ...
Nota que debido a la primera comprobación el "typecast" puedes hacerlo de la forma en que lo puse.

// Saludos
Responder Con Cita
  #4  
Antiguo 08-10-2003
Avatar de diegofhernando
diegofhernando diegofhernando is offline
Miembro
 
Registrado: may 2003
Ubicación: Locombia papá!
Posts: 267
Poder: 22
diegofhernando Va por buen camino
Gracias por tu respuesta Roman pero ahora me genera un (Access Violation) con toda la cantidad de numeros y letras que te puedas imaginar. La verdad es que no se como solucionar este problema...

Gracias y Salu2
__________________
Diego. Colombia es pasión.
Responder Con Cita
  #5  
Antiguo 08-10-2003
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
Dos preguntas:
  • ¿Todos los formularios que creas dinámicamente son iguales (la misma clase)?
  • ¿De qué manera recorres el arreglo Screen.Forms?

// Saludos
Responder Con Cita
  #6  
Antiguo 08-10-2003
Avatar de diegofhernando
diegofhernando diegofhernando is offline
Miembro
 
Registrado: may 2003
Ubicación: Locombia papá!
Posts: 267
Poder: 22
diegofhernando Va por buen camino
Gracias por tu ayuda roman. El problema era una linea de codigo que estaba antes de donde debia... llevo 7 horas sentado frente al PC y pues estos son los resultados, de igual forma siempre es bueno saber que se puede contar con la amabilidad y solidaridad del club...

Salu2
__________________
Diego. Colombia es pasión.
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 14:29: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