![]() |
Problemas crear MDIchild
Antes de nadar confirmar que he estado consultado por el foro antes de colocar este post, pero no encuentro solución a lo que voy a explicar:
Tengo una aplicación con un formulario fsMDIForm, que al pulsar una opción de menu genera un formulario fsMDIChild a través del siguiente código
Pués no me crea el formulario auxiliar, sólo lo hace si previamente a la linea Application.Create... coloco esta otra: Fchild := TFdevol_cobros.Create(Self); Algo también curioso es que cuando me muestra el formulario hijo, lo hace con unas dimensiones distintas a las establecidas en tiempo de diseño, algo extraño verdad? He comprobado que el formulario principal está definido como fsMDIForm y el auxiliar como fsMDIChild. Me podeís ayudar????,gracias. |
Cita:
Cita:
Cita:
Saludos! |
Chapó para delphi.com.ar
De todas formas, si hago lo siguiente: Cita:
Entonces, y si no es mucho pedir, ¿como haces tú para continuar con el programa?, no se si me explico, lo que quiero saber es como hacer la llamada al formulario para que se ejecute y mantenga en pantalla y no continue con la programación que pueda haber posterior. Si no me explico me lo decís, gracias. |
Cita:
Cita:
Por ejemplo... ¿Qué código quieres agregar despues que se destruye el form? |
Cita:
Estas opciones se abrirían dentro del formulario principal a través de form.auxiliares (MDIChild) y serían pantallas con filtros donde permitirían al usuario sacar listados. Dicho esto, lo que quiero es sacar una pantalla interactiva con el usuario y que cuando este decida salir de ella, obtener los datos introducidos por este. Por lo que veo, mi idea estaba muy mal planteada |
¿Muy mal planteada? Pues no estaría tan seguro. Quizá (digo quizá porque no entiendo del todo lo que deseas) tu problema está sólo en querer destruir el formulario tan sólo lo muestras. Si lo que te preocupas es cúando lo destruyes pues tienes varias opciones. Una es crear el formulario tal como te dice Federico y omitir la llamada a Free. Al crearlo de esa forma, el objeto Application será el dueño del formulario y por tanto se encargará de destruirlo cuando él mismo se destruya- cuando termine la aplicación. También puedes manipular el evento OnClose del formulario y poner Action := caFree con lo que el formulario se destruirá tan pronto se cierre.
// Saludos |
Cita:
Gracias por vuestra ayuda. |
Perdonad de nuevo, pero cuendo creía tenerlo resuelto me surge un problema y seguro que es una chorrada pero llevo un buen rato con el y no consigo solucionarlo.
Estoy definiendo el form.principal como MDIForm, el auxiliar como MDIChild y cuando ejecuto el siguiente código no muestra el form.auxiliar:
Donde estoy cometiendo el error, puede tratarse de una propiedad que estoy olvidando??? Gracias por la ayuda. |
Mmmm....
Seguro que TFdevol_cobros es MDIChild???.. |
Cita:
|
Cita:
Algo tiene que estar mal, si tiene sun MDI en cuanto creas un MDIChild (que su propiedad Visible obligatoriamente tiene que ser True), este se tiene que mostrar dentro del MDI! ¿Puedes subirnos algo de código? |
Cita:
He simplificado el máximo el código, y por supuesto comprobado que el formulario principal sea MDIForm y el auxiliar MDIChild. El valor de la propiedad Visible en el auxiliar es True, y ¿existe alguna otra propiedad que deba tener en cuenta? Os muestro el código de llamada al formulario auxiliar, por si estuviera utilizando algo mal.
El formulario auxiliar que crea es una chorradilla donde he puesto a modo de comprobación en el evento OnCreate que muestre un mensaje en pantalla. Pués el mensaje lo muestra pero es lo único que hace porque no aparece el formulario en si. Para volverse loco!!!! |
He encontrado el problema .
Resulta que el formulario principal contiene un Tpanel con la propiedad "Align=AlCliente" que impide mostrar cualquier Formulario Auxiliar :eek: :eek: :eek: Este Tpanel lo utilizaba para mostrar en él una imagen que debía aumentar o disminuir de tamaño conforme lo hiciese el formulario. ¿Alguna vez os habeís encontrado un caso similar??? |
| La franja horaria es GMT +2. Ahora son las 06:04:17. |
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