Corregido :)
|
Cita:
Saludos. |
Gracias escafandra. Parece que tú has sido el único con la sensibilidad suficiente para entender mis penas. :D
"Bucearé" en tu código y te cuento. Gracias de nuevo y un saludo |
Cita:
:D |
Amigo escafandra.
El ejemplo que me has propuesto hace más de lo que yo necesitaba, he usado la parte del código que mantiene el formulario principal al fondo de los demás y me sirve a la perfección, era lo que estaba buscando (aunque os parezca raro, bueno, yo es que soy un tío raro :p). Cita:
Gracias a todos por vuestra atención y un saludo. |
A ver, no entiendo. Yo iba por el mismo camino que escafandra (aunque no tan completo)
Cita:
Me siento ofendido, ja, ja :D // Saludos |
Cita:
Esta segunda si permite accionar el menú pero tiene un efecto visual un poco "raro" en PCs mas antiguos. :) Saludos. |
¡Ah! Ok. Entonces la parte del MouseActivate sale sobrando ¿no?
¿Cuál es el efecto raro en pcs viejos? // Saludos |
Cita:
Cita:
Saludos. |
Cita:
La razón de no usar mdi es porque yo uso un formulario propio que necesita crearse y asignarle una serie de propiedades antes de hacer el show, con los formularios mdi se ejecuta el show en el momento de crearlos. No sé si esto lo hubiera podido solucionar pero este y otros problemas los vería duros de resolver, era más fácil buscar la solución al tema de los menús. |
Amigo escafandra.
Esto se ha quedado estupendamente pero hay un pequeño detalle que rompe mi "paz interior" y es que si tengo un formulario abierto encima del menú y minimizo el menú, al volver a maximizarlo el formulario se queda detrás del menú. ¿Hay forma de arreglar eso? Gracias y un saludo. |
Una pregunta newtron, porque no pones una variable, que antes de entrar en el menu, o sea al peder el active un Form, grave el nombre del form, con lo cual al salir de la acción del menu abra el form guardado en la variable, vamos es una idea.
|
Cita:
Gracias y un saludo |
Cita:
Con el ejemplo que he usado eso no ocurre :confused:, es posible que no te entienda bien o que tengas incluidas cosas en tu código distintas a las mías. Saludos. |
Solucionado.
El problema es que tenía ya redireccionado los mensajes del programa y no podía usar tu código tal cuál entonces puse la instrucción para pasar el formulario principal al fondo en el evento "activate" pero claro, este evento no se dispara al volver al formulario después de minimizarlo, he capturado el evento OnRestore y ahí si que me funciona. Gracias y un saludo |
Si quieres simplificarte, no trabajes con los eventos VCL, captura el mensaje WM_WINDOWPOSCHANGED con un procedimiento tal que así:
Sería el equivalente al código que anteriormente puse, sólo que lo hice en el WndProc(var Message: TMessage); para manejar varios mensajes en un sólo procedimiento. Saludos. |
Estupendo.
Gracias. :) |
Hola, ya sé que este hilo es muy antiguo, pero es que un enlace reciente de Newtron me ha llevado hasta aquí.
No sé si entiendo bien lo que Newtron quería, pero ¿No hubiera bastado con dejar el formulario principal (llamado menú) con su propiedad FormStyle en fsNormal y establecer esa propiedad en fsStayOnTop para todos los demás formularios? Un saludo |
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 |
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 |
La franja horaria es GMT +2. Ahora son las 21:16:58. |
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