• Miércoles 1 de Mayo de 2024, 22:38

Autor Tema:  Mover Formulario Unidos Como Winamp  (Leído 1653 veces)

Daniel_PC

  • Miembro activo
  • **
  • Mensajes: 59
    • Ver Perfil
Mover Formulario Unidos Como Winamp
« en: Lunes 1 de Marzo de 2004, 05:15 »
0
Hola me gustaria saber como Mover Formulario Unidos como Winamp
ojala que me puedan mandar un zip o codigo
Gracias por su ayuda......

9tnix

  • Miembro MUY activo
  • ***
  • Mensajes: 165
  • Nacionalidad: pe
    • Ver Perfil
Re: Mover Formulario Unidos Como Winamp
« Respuesta #1 en: Miércoles 3 de Marzo de 2004, 15:07 »
0
Salu2 Daniel PC

Nunca lo he hecho pero una sugerencia seria capturar las posiciones de tu ventana con relacion al escritorio asi cuando muevas otra ventana y quieres que se junto como el winamp solo debes calcular que tan cerca esta y luego como tienes la posicion de esa ventana la situas junto.

Es solo una sugerencia, espero que por alli sirva
Salu2 zeekel ®
[KGT]
TP-Systems
our knowledge is our power!

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Mover Formulario Unidos Como Winamp
« Respuesta #2 en: Jueves 4 de Marzo de 2004, 15:00 »
0
Hola Daniel Pc.

En un principio, mediante Vb no tienes posiblidad de saber cuando el usuario  mueve un formulario... pero si hay una posibilidad de controlarlo: lo que pretendes hacer es posible subclasificando el formulario. Es una técnica en la que estoy muy verde, además de engorrosa y que en su diseño puede tirar el equipo y/o la aplicación (sobre todo si pruebas a debuguear). Se trata de indicar a windows la dirección del procedimiento que procesa el mensaje enviado por la ventana indicando que se ha movido, sustiyendo el procedimiento original por uno propio, que se ejecutará en su lugar. Una vez que realices las acciones que interesen  (en tu caso mover otro formulario según la posición y tamaño del primero), se devuelve el control al procedimiento original.

Esto así a grandes rasgos. Busca en web información y ejemplos sobre subclasificación, que me consta que los hay, aunque la mayoría está en inglés.

Suerte.

9tnix

  • Miembro MUY activo
  • ***
  • Mensajes: 165
  • Nacionalidad: pe
    • Ver Perfil
Re: Mover Formulario Unidos Como Winamp
« Respuesta #3 en: Viernes 5 de Marzo de 2004, 07:03 »
0
Hola Daniel_PC

hice algo sencillo no se si es lo que buscas
mira el archivo adjunto ojala te sirva

Un saludo zeekel ®
[KGT]
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
TP-Systems
our knowledge is our power!

elmango80

  • Miembro MUY activo
  • ***
  • Mensajes: 149
  • Nacionalidad: ve
    • Ver Perfil
Re: Mover Formulario Unidos Como Winamp
« Respuesta #4 en: Viernes 5 de Marzo de 2004, 11:18 »
0
Hola Daniel_PC!

Lo que tu quieres hacer se hace capturando los mensajes del sistema operativo cuando intentes mover el formulario, no se si te sirva pero el siguiente codigo hace lo que tu quieres pero utilizando Delphi  ;)

Código: Text
  1.  
  2.  
  3.   private
  4.     { Private declarations }
  5.     procedure PegaAlBorde(var m: TWMWINDOWPOSCHANGED);
  6.                         message WM_WINDOWPOSCHANGING&#59;
  7.  
  8. procedure TForm1.PegaAlBorde(var m : TWMWINDOWPOSCHANGED);
  9. const
  10.      {Sensibility}
  11.      Sensibilidad:integer=4;
  12. var
  13.    Dato:TRect;
  14. begin
  15.     try
  16.       {Aqui si el SystemPar... funciona,
  17.                   porque estemos en Win95}
  18.       SystemParametersInfo(SPI_GETWORKAREA,0,@Dato,0);
  19.       if m.windowpos.x<=(Dato.Left+Sensibilidad)
  20.         then m.windowpos.x:=Dato.Left;
  21.       if m.windowpos.y<=(Dato.Top+Sensibilidad)
  22.         then m.windowpos.y:=Dato.Top;
  23.  
  24.       if (m.windowpos.x+Width)>= (Dato.Right-Sensibilidad)
  25.         then m.windowpos.x:=Dato.Right-Width;
  26.       if (m.windowpos.y+Height)>= (Dato.Bottom-Sensibilidad)
  27.         then m.windowpos.y:=Dato.Bottom-Height;
  28.     except
  29.       {Aqui si se trata de NT o algo en donde no tire Systempar...}
  30.       {Here if is NT and Systempar... don't work...}
  31.       if m.windowpos.x<=Sensibilidad then m.windowpos.x:=0;
  32.       if m.windowpos.y<=Sensibilidad then m.windowpos.y:=0;
  33.       if (m.windowpos.x+Width)>= (Screen.Width-Sensibilidad)
  34.         then m.windowpos.x:=Screen.Width-Width;
  35.       if (m.windowpos.y+Height)>= (Screen.Height-Sensibilidad)
  36.         then m.windowpos.y:=Screen.Height-Height;
  37.     end;
  38. end;
  39.  
  40.  


Pero tu lo que quieres es hacerlo con VB y por eso es que estas en este foro y no en el de Delphi. Asi que te mando una aplicacion que hice que mas o menos hace lo que tu quieres. Los formularios tienes que moverlos no por la barra superior sino por el mismo form.
Citar
No soy bueno, tampoco soy malo sino todo lo contrario...

Daniel_PC

  • Miembro activo
  • **
  • Mensajes: 59
    • Ver Perfil
Re: Mover Formulario Unidos Como Winamp
« Respuesta #5 en: Sábado 6 de Marzo de 2004, 00:25 »
0
Gracias por Ayudarme, les agradezco mucho
Daniel_PC

elmango80

  • Miembro MUY activo
  • ***
  • Mensajes: 149
  • Nacionalidad: ve
    • Ver Perfil
Re: Mover Formulario Unidos Como Winamp
« Respuesta #6 en: Lunes 8 de Marzo de 2004, 07:59 »
0
En el mensaje anterior no se porque :whistling: no adjunto el programa hecho en VB, de todos modos aqui lo envio otra vez....
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
Citar
No soy bueno, tampoco soy malo sino todo lo contrario...