![]() |
Un form dentro de otro
Hola no se si esto va aqui o no va a qui o si lo que pregunto esta bien, pero alla voy.
Yo tengo un Form1 que quiero que sea el principal y quiero que el resto de forms, que se abren en funcion de que parte del arbol pulso, se muestren en un espacio del form que tengo reservado. No se si me entendeis pero ¿Como lo puedo y que debo hacer? ¿Que objetos uso? Gracias de antemano |
Lo que quieres es algo así como la interfaz del emule, pulsas un botón (o un árbol) y "la ventana" se muestra en todo el área, sin posibilidad de cerrar, minimizar y maximizar.
Hay varias formas, pero yo me decantaría por TFrames. Son como paneles prefabricados que puedes crearlos y cerrarlos a voluntad. Pero cada uno los diseñas como si fueran ventanas diferentes. También se puede hacer con TForms de toda la vida, creando un hijo y asignando su propiedad Parent, aunque verás la barra de título, etc.
Saludos |
Frame en un PageControl -- No tengo la menor idea
Hola Lepe, tengo un problema muy parecido....
Tengo un Form principal y cerca de 15 Form secundarios (hijos), ahora quiero mejorar la presentación pues como lo acabas de escribir se ve demasiado bulgar, pues es demasiado obvio que hay un form dentro de otro form, así que le quite el borde, pero aun así me muestra la barra de titulos; después segui tu consejo, cree un frame y lo inserte en un PageControl y se veía de maravilla, es como si se tratara de un solo form :), pero la duda que surge es ¿Puedo ingresar todos los frames a el Pagecontrol?:confused:, sé que tiene la opción de ingresar varias páginas, pero no encontre como asignar un frame a cada página y la verdad es que lo que quiero hacer es que mediante una función yo le asigne el Frame a el Pagecontrol y cuando necesite que se visualice otro Frame, oculte el primero y muestre el que le indique, no tengo la menor idea si se pueda....como es obvio no tengo lógica y es mi segundo día en Delphi 7. De antemano gracias, por cierto lo poco que sé de Delphi lo aprendí gracias a ustedes.:D |
Si vas a usar un PageControl, sólo podrás ver un frame al mismo tiempo, y tener 15 frames cargado en memoria (si son complejos) puede ser un derroche de recursos.
Lo que puedes hacer es crear el frame en tiempo de ejecución al cambiar de páginal (evento OnPageChanging si no recuerdo mal). Puedes hacer uso de una variable global que indica el frame actual que se está mostrando en un momento, se utiliza para liberar el frame y cargar el nuevo. Ejemplito ¿no?
Saludos |
No me funciona
Hola Lepe, muchas garcias por tu ayuda.
Mira intente lo que dijiste, pero no me acepta el evento PageControlChanging, así que intente con el PageControlChange pero no funciona, además de que no me deja cargar los tipos de Frames...de verdad lo intente, pero no encuentro la forma de hacerlo.:( |
¿qué errores te da?
|
Me dice que el evento PageControlChanging no existe, y no me deja asignar valores a los Frames, me dice que no es valido.
|
Cita:
Salud OS |
La franja horaria es GMT +2. Ahora son las 08:01:12. |
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