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
  #1  
Antiguo 07-12-2005
chux chux is offline
Miembro
 
Registrado: sep 2005
Posts: 69
Poder: 19
chux Va por buen camino
Formulario MDI e Hijos

Bueno, estoy desarrollando una aplicacion con delphi 2005 compilandola para win 32.
Tengo un formulario (el padre) con la propiedad frmstyle a mdiparent, y un par mas con mdichild. En proyect, options pongo en autocreate el form que hace de mdi, y los demas los dejo en avaliable. En el codigo de el mdi importo las unidades donde estan los hijos.
Cuando los quiero mostrar pongo
if trabajadores.frm_trabajadores = nil then
trabajadores.frm_trabajadores := trabajadores.frm_trabajadores.Create(application);

Y me da el siguiente error:
Project project1.exe raised exception class EAccessViolation with message 'Access violation at address 004501e1 in module project1.exe Read os address 00000000

Si el formulario le digo que se cree desde el principio (project,options) no me da ese error, pero me sale desde el principio y no lo puedo cerrar, con lo que no me vale... Sugerencias?
Venga mil gracias
Responder Con Cita
  #2  
Antiguo 07-12-2005
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
La llamada al constructor de una clase se hace así:

Código Delphi [-]
  trabajadores.frm_trabajadores := Tfrm_trabajadores.Create(Application);

El error te lo da por que estás usando un objeto que todavía no se ha creado.


Saludos...
Responder Con Cita
  #3  
Antiguo 07-12-2005
chux chux is offline
Miembro
 
Registrado: sep 2005
Posts: 69
Poder: 19
chux Va por buen camino
Lo siento pero no te entiendo...
Responder Con Cita
  #4  
Antiguo 07-12-2005
Avatar de Paoti
Paoti Paoti is offline
Miembro
 
Registrado: may 2003
Ubicación: Monterrey. N.L., México
Posts: 612
Poder: 22
Paoti Va por buen camino
Una forma implementar MDI

Hola Chux!


Me podrias decir que es es trabajadores en:

trabajadores.frm_trabajadores


Es tu unidad.



Ejemplo de como implementar MDI:

qiutas tu form hijo del Autocreate forms.


y cuando quieras lanzar tu form hijo haces esto:



Código Delphi [-]
With TFRMHijo.create(Application) do
     Show;

No olvides poner en el evento OnClose de tu Formulario MDIChild

Código PHP:
action := cafree 

con esta forma se crean tantos mdi chils como quieras de tu formulario hijo


Saludos.
__________________
Estudia y anda en la calle.... que asi serás el doble de listo que los demás...

análisis de información
análisis y diseño de sistemas

Paoti Rios Reséndiz
Responder Con Cita
  #5  
Antiguo 07-12-2005
chux chux is offline
Miembro
 
Registrado: sep 2005
Posts: 69
Poder: 19
chux Va por buen camino
El fallo era tontisimo, pa variar, os pongo lo que pasaba para que el proximo que tenga mi mismo problema no se tire el mismo tiempo que me he tirado yo

if trabajadores.frm_trabajadores = nil then
trabajadores.frm_trabajadores := trabajadores.frm_trabajadores.Create(application);

ese codigo era el que tenia, tiene que ser

if trabajadores.frm_trabajadores = nil then
trabajadores.frm_trabajadores := Tfrm_trabajadores.Create(application);

Trabajadores es el nombre de la unidad (la que contiene un form hijo) Tfrm_trabajadores es la clase de los trabajadores, mientras que frm_trabajadores es una instancia a la clase tfrm_trabajadores dentro de la unidad trabajadores, me habia colado en la creacion... en fin, eso pasa cuando se duerme poco jeje
Venga saludos, y como siempre mil gracias gente
Responder Con Cita
  #6  
Antiguo 07-12-2005
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Pues eso que hiciste es precisamente lo que te comenté en mi mensaje...



Saludos...
Responder Con Cita
  #7  
Antiguo 07-12-2005
chux chux is offline
Miembro
 
Registrado: sep 2005
Posts: 69
Poder: 19
chux Va por buen camino
Haberme puesto la linea bien escrita ombre jjeje
Responder Con Cita
  #8  
Antiguo 07-12-2005
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Bueno si, tal vez te lo expliqué muy a la ligera... jejeje
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 22:16:27.


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