![]() |
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 |
La llamada al constructor de una clase se hace así:
El error te lo da por que estás usando un objeto que todavía no se ha creado. Saludos... |
Lo siento pero no te entiendo... :(
|
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:
No olvides poner en el evento OnClose de tu Formulario MDIChild Código PHP:
con esta forma se crean tantos mdi chils como quieras de tu formulario hijo Saludos. |
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 |
Pues eso que hiciste es precisamente lo que te comenté en mi mensaje... ;)
Saludos... |
Haberme puesto la linea bien escrita ombre jjeje
|
Bueno si, tal vez te lo expliqué muy a la ligera... jejeje :p
|
La franja horaria es GMT +2. Ahora son las 09:34:29. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi