![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Si, ya me lo he planteado, de hecho el objeto que crea este formulario usa otros 2 formularios creados en tiempo de diseño, pero es que esta "forma" viene deribada de que antes era un panel y cuando me acorde del alphablend "lo converti" en forma, de ahi que se cree en tiempo de ejecucion.
Gracias por la ayuda. ![]()
__________________
Disfruta de la vida ahora, vas a estar muerto mucho tiempo. |
|
#2
|
||||
|
||||
|
En realidad cualquier ventana no child (para winXP, Vista ó win7) puede ser transparente... Basta con dar el estilo WS_EX_LAYERED y usar la API SetLayeredWindowAttributes para establecer el porcentaje de opacidad.
En tu caso lo mas sencillo es usar el alphablend del TForm, que se basa en el mismo principio, y derivar de ésta clase tu ventana. Lo suyo sería hacerlo en tiempo de diseño para tener un fácil control. Por cierto, el código que dejé permite moverse a las ventanas hijas por todo el área de la ventana padre. Para ser mas cercano a una ventana child, debería limitarse el recorrido exclusivamente al área cliente de la ventana padre. Saludos. Última edición por escafandra fecha: 08-04-2013 a las 19:52:54. |
|
#3
|
||||
|
||||
|
Si, antes de comprobar onmousemove ya se han incluido las variables
y al crear la forma se posiciona segun esos margenes
y al controlar los limites en onmousemove
En este video se ve como no se pasa de limites con estas funciones http://www.youtube.com/watch?v=yHiEy...ature=youtu.be Saludos
__________________
Disfruta de la vida ahora, vas a estar muerto mucho tiempo. |
|
#4
|
||||
|
||||
|
Bien. Pero fíjate que puedes calcular directamente el area cliente sin necesidad de calcular los anchos de borde y de la barra del caption:
Esta sería la modificación en el tratamiento de mensaje de WM_MOVING:
Tratar el mensaje WM_MOVING es mejor que el OnMouseMove pues hace referencia al movimiento de la ventana, no del ratón, sea cual sea el mecanismo del movimiento (ratón o teclado) y se llama durante el movimiento continuo, no tras éste. Además es mas simple y rápido. Saludos |
|
#5
|
||||
|
||||
|
Voy a poner un ejemplo de como implementar cualquier función de tratamiento de mensajes en una ventana aún no siendo diseñada en tiempo de diseño. La técnica es hacer un Subclassing.
Vamos a cambiar la función de tratamiento de mensajes de la ventana a bajo nivel y vamos a guardar el puntero a la antigua función para poder llamarla a la salida de nuestra nueva función (como si fuera una especie de inherited) Con esto conseguimos cambiar el comportamiento de la ventana para los aspectos que nos interesen y respetar el resto. Para guardar el puntero a la antigua función de tratamiento de mensajes utilizaré el Tag del TWinControl. Este sería el código resultante para el tema de este hilo usando subclassing:
Saludos. |
|
#6
|
||||
|
||||
|
Gracias escafandra.
Estos dias tengo que entregar otro trabajo y no he podido probar. Intentare sacar un rato este finde semana y te cuento como ha ido. unas ![]()
__________________
Disfruta de la vida ahora, vas a estar muerto mucho tiempo. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Crear un form fsMDIForm y varios forms hijos | citlalliDgp | Varios | 11 | 07-12-2007 15:13:31 |
| ¿Quien es mi Form Padre? | gabrio | OOP | 4 | 16-10-2007 20:33:06 |
| Nodo padre sin hijos en TTreeView | jorgesl | OOP | 3 | 10-04-2006 20:24:11 |
| Formulario padre con hijos | oscarsanta | Conexión con bases de datos | 2 | 31-01-2006 13:17:13 |
| como puedo poner form hijos | ronimaxh | Varios | 5 | 22-10-2003 22:55:23 |
|