Neobook nos permite darle una forma personalizada (ventana) a nuestras aplicaciones, pero que hacemos si queremos hacer que se mueva haciendo click en determinado lugar?. Pues bien eso es lo que intento solucionar con este ejemplo.
Plugins utilizados:
- tmDragDropObj (TechMedia Software) (Descargar)
- NeoDouble (DEC) (Descargar)
Si queremos que el area para mover la ventana sea una imagen utilizaremos un objeto polygon, al cual le pondremos las siguientes acciones:
Mouse Enter (mouse entra sobre el objeto):
tmDragDropCreate
Setvar "[tmDragCursor]" "0"
Setvar "[tmDragPosition]" "2"
Setvar "[tmDragEnableEvents]" "1"
SetVar "[tmLBDAction]" "npEjecutarAccion [#34][#91]acc_b[#93][#34]"
SetVar "[tmLBUAction]" "npEjecutarAccion [#34][#91]acc_a[#93][#34]"
Con esto logramos que el plugin tmDragDropObj realice unas acciones al presionar el boton izquierdo del mouse (BotonIzqBajo) y cuando lo soltemos (BotonIzqArriba) (ambos eventos no nativos de neobook) completando así el click, pero éste no realiza acción alguna.
A su vez cada acción llamara a la función npEjecutarAccion del plugin NeoDouble, la cual realiza una acción de neobook cargada desde una variable (entre otras opciones de carga). En este caso, llamo a las acciones desde dos variables llamadas [acc_b] (acciones btizqbajo) y [acc_a] (acciones btizqarriba) que a su vez están dentro de unos texentrys.
Mouse Exit (mouse sale del objeto):
tmDragDropDestroy
Con esto eliminamos las acciones del plugin.
Contenido de la variable [acc_b] (en un textentry):
GetMousePos "[x_pos]" "[y_pos]"
Setvar "[x_m]" "[x_pos]"
Setvar "[y_m]" "[y_pos]"
TimerStart "TMueve" "1"
Con estas líneas obtenemos la posición del mouse al bajar el boton izq, y luego le da start al timer TMueve con intervalo de 1 milisegundo.
Contenido de la variable [acc_a] (en un textentry):
TimerStop "TMueve"
Esto solo para el timer.
Contenido del timer TMueve:
GetMousePos "[x_pos]" "[y_pos]"
Setvar "[x_pos_p]" "[x_pos]+[WindowLeft]"
Setvar "[y_pos_p]" "[y_pos]+[WindowTop]"
Setvar "[WindowLeft]" "[x_pos_p]-[x_m]"
Setvar "[WindowTop]" "[y_pos_P]-[y_m]"
Esto es nada más y nada menos lo que capta los datos del mouse (cada 1 milisegundo) y realiza el movimiento de la ventana.
Bueno, espero que se entienda 😛
Descarga del ejemplo:
ejemplo_mover_ventana.rar (1,2 MiB, 1.674 hits)
Está curioso el ejemplo BuNKeR. 😉
Si esta curioso, si señor.
Muy bueno el codigo yo le he hecho una pequeña modificación porque cuando lo compilaba no me movia la ventana en cambio desde el debugger de Neobook si funcionaba, suelo pego el codigo.
En XP funciona OK. Me dijeron que lo probaron en Vista y no se mueve. Es por eso que modificaste?
Saludos
No, a mi no se me mueve ni en Xp ni en Vista, no se el porque… he tenido q poner un boton invisible y que la ventana se mueve y cuando vuelven a pulsar el boton suelta la pantalla en ese punto, pero la solución no me gusta mucho.
En cambio he probado el ejemplo que hay aqui compilado y si que funciona… osea que ahora mismo estoy hecho un lio… una solución please 🙄
Efectivamente no anda en Vista y tampoco en Windows 7.
Creo que son los plugins que están programados para versiones anteriores a estos.
Comprobaste que estén instalados los plugins necesarios?
Saludos
Si los plugins estan instalados… sabes alguna otra forma de conseguir el mismo efecto
Jomego: Si ya se me ocurrió como hacerlo, en unas horas lo programo y posteo. 😉
Saludos
Ok… esperare tu respuesta ansioso… otra cosa como se puede saber el titulo de una aplicación si sabemos su handle
Listo.
Puedes verla en :
➡ http://www.neobookeros.com.ar/?p=195
Saludos
Quizás no pusiste el btextra que es para que se incluya el plugin NeoDouble.
Podrías verificar eso? Para comprobar que este método si funciona para XP.
Saludos
Hi there,
I’m realy interesting about this. But the plugins link does not work for me.
Can you fix it? and is it free plugins?
Thank You
Hi JimBeam…
tmDragDropObj http://www.neobookeros.com.ar/plugins/tmdragdropobj.rar
NeoDouble http://www.neobookeros.com.ar/plugins/nd-1.0.6.zip
both are free…
Keep in mind that this does not work on Windows Vista and Windows 7. I recommend reading this post http://www.neobookeros.com.ar/?p=195
Greetings
Acabo de probar y trabaja normal en windows 7, lo que si, podrian poner los plugins mensionados para descarga porque no encuentro donde descargar el plugin tmDragDropObj, el otro de casualidad ya lo tenia, pero si pueden poner un enlace de descarga directa de cada plugin seria mucho mejor para los que no lo tengan.
Saludos ^^
Ah por sierto, trabaja el .exe proporcionado en el ejemplo, ahora si he de compilar primero y probar si sigue funcionando, eso no lo he hecho porque me falta instalar uno de los 2 plugins, asi que talvez no funcione adecuadamente una version que compile sin tener instalados todos los plugins mensionados
Salu2…
@Squadron Hola puedes leer el comentario 856 justo antes de los tuyos están los links a los plugins.
Saludos
Pos si, aunque me referia a incluirlos en el mensaje inicial, talvez editandolos, porque cuando estan en los mensajes de usuarios es facil que pasen desapercibidos, como a mi, que ni cuenta me di, usualmente no se suelen leer todos los mensajes del hilo a menos que se este buscando algo que se sabe este especificamente ahi.
Pero igual, gracias 😛
Post actualizado con la sugerencia de Squadron
Saludos