Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problema con Forms Dinamicos (https://www.clubdelphi.com/foros/showthread.php?t=4266)

diegofhernando 08-10-2003 01:08:02

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 :cool:

diegofhernando 08-10-2003 01:15:50

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. :p

roman 08-10-2003 02:38:45

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

diegofhernando 08-10-2003 02:48:49

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:cool:

roman 08-10-2003 02:55:30

Dos preguntas:
  • ¿Todos los formularios que creas dinámicamente son iguales (la misma clase)?
  • ¿De qué manera recorres el arreglo Screen.Forms?

// Saludos

diegofhernando 08-10-2003 03:09:26

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 :cool:


La franja horaria es GMT +2. Ahora son las 18:51:01.

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