Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-11-2018
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.485
Poder: 20
MAXIUM Va camino a la fama
Problemas al acceder a componentes de formularios en tiempo de ejecución

Hola, tengo el siguiente problema

Este es el código que va dentro de un Botón para crear un formulario en tiempo de ejecución (Form1)
Código Delphi [-]
With TForm2.Create(Self) Do
Try
    ShowModal;
Finally
    Free
End;

Ahora el problema ocurre cuando quiero acceder a un componente de este Form2. Sea desde el mismo Form u otro.

El siguiente ejemplo genera un error en tiempo de ejecución

Form2.Button1.Enable:= True;

¿Se ha visto antes?

De antemano, muchas gracias.
Responder Con Cita
  #2  
Antiguo 26-11-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.022
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Cómo creas el Form?
¿Dónde le das el nombre, el parent, etc.?
Responder Con Cita
  #3  
Antiguo 26-11-2018
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.195
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Cita:
Empezado por MAXIUM Ver Mensaje
Hola, tengo el siguiente problema
Form2.Button1.Enable:= True;
Ese es el error.
1. Cuando se diseña un formulario para ser creado dinámicamente por código, se debe definir como NO autocreado, ahorrarás recursos
2. Cuando lo creas, la variable Form2 no apunta al formulario creado dinámicamente sino al estático o a nada.
3. No esperes, por tanto, que esa linea de código funcione ni ninguna otra que trate de acceder a un componente de ese formulario, dentro o fuera, a través de Form2.
4. Si precisases alcanzar un componente de TForm2 deberás declarar una variable de ese tipo y asignarle el Form creado.


Saludos.
Responder Con Cita
  #4  
Antiguo 26-11-2018
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.485
Poder: 20
MAXIUM Va camino a la fama
Cita:
Empezado por escafandra Ver Mensaje
Ese es el error.
1. Cuando se diseña un formulario para ser creado dinámicamente por código, se debe definir como NO autocreado, ahorrarás recursos
2. Cuando lo creas, la variable Form2 no apunta al formulario creado dinámicamente sino al estático o a nada.
3. No esperes, por tanto, que esa linea de código funcione ni ninguna otra que trate de acceder a un componente de ese formulario, dentro o fuera, a través de Form2.
4. Si precisases alcanzar un componente de TForm2 deberás declarar una variable de ese tipo y asignarle el Form creado.


Saludos.
Muchas gracias por las respuestas.

Puedes darme un ejemplo para tenerlo más claro. De antemano, muchas gracias

4. Si precisases alcanzar un componente de TForm2 deberás declarar una variable de ese tipo y asignarle el Form creado.
Responder Con Cita
  #5  
Antiguo 26-11-2018
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 14
Caminante Va camino a la fama
Hola

Prueba asi

Código Delphi [-]
Form2:=TForm2.Create(Self);
With form2 Do 
Try     
ShowModal; 
Finally     
Free; 
End;
__________________
Caminante, son tus huellas el camino y nada más; Caminante, no hay camino, se hace camino al andar.
Antonio Machado
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemas Creando componentes en tiempo de ejecucion nickolas Varios 2 12-11-2012 04:02:59
Acceder a DisplayFormat en tiempo de Ejecución Kalondro C++ Builder 5 31-10-2011 02:44:25
Problemas al tratar de crear varios componentes en tiempo de ejecucion ilichhernandez Conexión con bases de datos 2 13-11-2005 20:03:26
Formularios en Tiempo de Ejecucion rocio84 Varios 3 26-10-2005 22:07:29
Crear formularios en tiempo de ejecución Caro Varios 2 25-08-2005 15:27:39


La franja horaria es GMT +2. Ahora son las 15:02:21.


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