FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Orden formularios
Hola a tod@s.
Sigo intentando hacer que mis formularios no se queden detrás del menú si se pincha en este y después de pruebas con mdi en principio está complicado hacerlo usando esta forma así que se me ha ocurrido intentar hacer que el menú principal esté siempre al fondo de todos los formularios, algo parecido al SendToBack, pero el problema es que el SendToBack lo pasa al fondo de cualquier formulario de cualquier programa abierto y eso tampoco me sirve. Mi pregunta es si hay alguna forma de poner un formulario al fondo de todos los demás formularios del programa, algo parecido al zorder de VB. Gracias y un saludo
__________________
Be water my friend. |
#2
|
||||
|
||||
De todas formas, buscando información sobre SendToBack, he encontrado este hilo en Delphi Pages Forum de un programador que parece querer hacer lo mismo que tú. Si necesitas traducción...
|
#3
|
||||
|
||||
Cita:
Seguiré buscando....
__________________
Be water my friend. |
#4
|
||||
|
||||
Según las explicaciones, yo "veo" tu programa así:
Es cuestión de que todas las ventanas no estén en el lugar de la del menú para que no tengas problemas de que no se vean. También puedes mover una ventana, por código, si ves que va a solapar a la del menú, así nunca quedaría ninguna detrás. |
#5
|
||||
|
||||
¿Con mover te refieres a cambiar la posición X,Y?
__________________
Be water my friend. |
#6
|
||||
|
||||
Sí, a eso me refiero, que si una ventana solapa o se queda por completo detrás del menú, tú mismo le cambias su posición para que quede fuera.
|
#7
|
||||
|
||||
Cita:
¿O quizá se pueden obtener las "z" de las ventanas de tu aplicación y asignarles nuevos valores "z" con SetWindowPos? De nuevo hablo por hablar. |
#8
|
||||
|
||||
Cita:
Esa es la idea original, y la pregunta del millón es ¿cómo?
__________________
Be water my friend. |
#9
|
||||
|
||||
Si te refieres a la posición de cada una para ordenarlas, puede servirte la propiedad 'tag' de cada una, sé que tengo algo hecho de hace muchos años que lo implementaba así, a ver si lo encuentro.
|
#10
|
||||
|
||||
Cita:
¿No podrías explicar con dibujitos o algo más visual? // Saludos |
#11
|
||||
|
||||
Cita:
Cita:
La idea entonces (despues de probar varias cosas sin resultado) es que si pico en el menú el formulario más pequeño no se esconda y si tapa alguna opción del menú que se necesite que obligue a minimizarlo con lo cuál siempre estará visible de alguna forma. Igual es una tontería pero es lo único que se me ocurre. Saludos
__________________
Be water my friend. |
#12
|
||||
|
||||
Cita:
Ahora, esa idea se puede mejorar usando las llamadas "Desktop bars" que básicamente son como la barra de tareas del Windows, en el sentido de que al maximizar una ventana, por ejemplo, ésta ocupa sólo el área del monitor restante y no puedes colocarle una ventana encima a menos que sea de pantalla completa. Estas "desktop bars" las puedes colocar en cualquier orilla del monitor. // Saludos |
#13
|
||||
|
||||
Aquí te pongo un ejemplo de una "desktop bar" a manera de menú. Si tienes delphi7, puedes ejecutar el ejecutable (valga la rebusznancia) así nada mas. Si no, tendrás que compilar.
Mira a ver si es lo que buscas. // Saludos |
#14
|
||||
|
||||
El problema es que mi menú ocupa una gran parte del escritorio, si abro un formulario se queda de esta forma:
Uploaded with ImageShack.us y si estando de esta manera hago click en cualquier parte del menú el formulario se queda detrás de esta manera: Uploaded with ImageShack.us que es lo que estoy intentando evitar.
__________________
Be water my friend. |
#15
|
||||
|
||||
Es que eso no es un menú, eso es una ventana a pantalla completa, cualquier cosa que pongas quedará detrás
|
#16
|
|||
|
|||
Intenta esto
Se me ocurre que puedes poner esto en el formulario que tiene el menu
De esta manera el formulario nunca gana el foco, es decir no se activa |
#17
|
|||
|
|||
Hola Ricardo, el código que pones no impide que el formulario principal menú adquiera el foco. Por lo menos en las pruebas que he hecho. De todas formas, lo que creo que buscaba Newtron es que el formulario principal no se colocara por encima de los demás formularios de la aplicación, tapandolos, pero que sí mantuviera su capacidad de uso.
Ya encontraron una solución satisfactoria. Si he resubido el hilo (con más de un año) es porque tenía la impresión de que eso mismo se podía conseguir de una manera más simple. Un saludo |
#18
|
|||
|
|||
Pues acabo de volver a probarlo y a mi me funciona.
Prueba este dpr: |
#19
|
|||
|
|||
Sigue sin funcionarme. Igual es la versión de Delphi. Para poder probarlo, he tenido que quitar en los "uses" todas las referencias: "Winapi." "Vcl." "System." ya que no las reconocía, y eliminar entonces los uses dobles que quedaban.
|
#20
|
|||
|
|||
Hay un truco, que conozco desde mi época de Visual Basic, para crear ventanas flotantes (tipo barras de herramientas de Office), que consistiría en:
Esta forma permite más posibilidades, como crear una jerarquía de ventanas. Ejemplo:
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Orden formularios | newtron | Varios | 10 | 06-10-2011 14:03:37 |
Paneles en Orden ...... | Efren2006 | OOP | 9 | 11-06-2010 12:36:02 |
Splash screen ,o splashscreen ,o form o ventana de inicio ,o orden de formularios | Peterman | C++ Builder | 2 | 29-05-2007 19:46:22 |
Orden en TIBDataset | barman | Conexión con bases de datos | 6 | 27-11-2003 10:40:25 |
Orden en TIBDataset | barman | Firebird e Interbase | 6 | 24-11-2003 21:26:00 |
|