![]() |
![]() |
| 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
|
||||
|
||||
|
He visto un molesto efecto cuando las ventanas hijas tienen borde y Caption, son mas de una y movemos la ventana padre. Se trata de un cambio rápido se foco de una a otra. La solución es sencilla y basta con añadir SWP_NOACTIVATE y SWP_NOZORDER en SetWindowPos en el procedimiento TForm1.WMMoving:
Saludos. Última edición por escafandra fecha: 05-04-2013 a las 20:41:43. |
|
#2
|
||||
|
||||
|
Hola escafandra, he probado tu codigo (delphi 2010 y windows 7 64) y
no mueve las hijas por que no detecta bien el nombre de la clase enSolo ve las clases THintWindows y TForm1 Si lo comprueba con "if Application.Components[i].Unitname" solo ve Controls y Unit1. Es como si para la aplicacion no tuviera los formularios creados en tiempo de ejecucion En Application.ComponentCount siempre tiene le valor 2, aunque cree 10 ventanas "hijas" ![]() ¿Sera algo del compilador o se puede comprobar de otra manera? Saludos.
__________________
Disfruta de la vida ahora, vas a estar muerto mucho tiempo. |
|
#3
|
||||
|
||||
|
Debes eliminar Appliation, puesto que el owner de los formularios TForm2 es TForm1:
Tal como el código que expongo aquí. El código es un boceto y puede irse mejorando según las necesidades. Vuelvo a subir el código completo por si las moscas... Saludos. Última edición por escafandra fecha: 09-03-2020 a las 08:00:24. |
|
#4
|
||||
|
||||
|
Ahora si
![]() Probare tu codigo en mi aplicacion y te cuento si es mejor (que seguro que si) ![]() Thanks. PD: Esta funcion hace que cuando pulse el raton en la ventana (no en el caption) mande el mensaje de mover, veo que ReleaseCapture deja al cursor hacer lo que estaba haciendo, pero.. porque se manda Perform(VM_SYSCOMMAND, $F012, 0); y que valor es $F012.
Un saludo
__________________
Disfruta de la vida ahora, vas a estar muerto mucho tiempo. Última edición por cesarsoftware fecha: 06-04-2013 a las 21:13:57. |
|
#5
|
||||
|
||||
|
Se trata de enviar un mensaje WM_SYSCOMMAND con el parámetro wParam SC_MOVE (F010h) or 2. Conseguimos el efecto de mover la ventana sin pinchar en la barra del caption.
Saludos. |
|
#6
|
||||
|
||||
|
Gracias por la aclaracion
![]()
__________________
Disfruta de la vida ahora, vas a estar muerto mucho tiempo. |
|
#7
|
||||
|
||||
|
Con tu codigo en el formulario principal, el movimiento de las ventanas hijas es mucho mas fino, sigue sin funcionar en server 2003, pero no me importa demasiado (ahora en vez de dejar las ventanas hijas donde estan las mueve arriba y a la izquerda a toda velocidad).
Con mi codigo se ve (al ojo) el desplazamiento de las ventanas hijas sobre el formulario principal.
Lo que no he sabido hacer es como implementar en las ventanas hijas por que se crean "on the fly y sin forma", pero es que ademas como controlo las pulsaciones del raton entonces aprovecho para mover las ventanas hijas.
asi que sigo usando las que me van bien
Por tanto, de momento, me quedo con el tuyo en el formulario padre y con el mio en el formulario hijo en tiempo de ejecucion. ![]()
__________________
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 |
|