![]() |
![]() |
| 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
|
||||
|
||||
|
El icono, y dos labels asociados, los muevo con los eventos OnMouseDown, OnMouseMove y OnMouseUp :
El TImage tiene cargada una imagen JPG, y la propiedad Strech := True, con el TImagen ocupando todo el fondo del form MDIForm principal, con la propiedad Align := alClient;
__________________
Piensa siempre en positivo ! |
|
#2
|
||||
|
||||
|
Yo para hacer esto, suelo emplear un código parecido, aunque uso solo un evento. Por ejemplo, aquí tengo una imagen que ocupa todo el formulario (Streach:= TRUE; Align:= alClient; ) y otra mas pequeña que es la que muevo. En el evento OnMouseMove de esta última coloco los siguiente:
Siendo AnteriroP una variable declarada de la siguiente manera:
Este ejemplo, una vez coloca la propiedad DoubleBuffered a TRUE no muestra ningún tipo de parpadeo, y la imagen 2 se puede mover perfectamente. |
|
#3
|
||||
|
||||
|
Pues estimado amigo Domingo, ... me sigue sin funcionar como yo pretendo. Es correcto que tal y como indicaba antes, mientras estoy moviendo el cursor, la imagen no se actualiza, y por lo tanto no parpadea. Pero es que en mi caso, con Delphi 2006 al menos, tampoco me va mostrando el movimiento 'de arrastre' del icono que estoy moviendo. Por lo que hasta que no para el ratón, no me muestra el icono en la posición actual del ratón, y en ese momento también me vuelve a repintar la imagen de fondo.
Si muevo el ratón muy despacio, algo así como dudando donde voy a situar el icono, cada vez que para el movimiento del ratón, me redibuja el icono en esa posición, y también como decia arriba, la imagen de fondo. Lo que sigue provocando el molesto parpadeo al mover el ratón muy despacio. Además, con el DoubleBuffered a True, entiendo que la imagen se carga en memoria, y el consumo de la misma aumenta. Con una imágen pequeña entiendo no haya problema, pero con una imagen grande, en buena resolución, como fondo de pantalla, el consumo de memoria puede ser considerable. En el caso concreto que estoy probando, la imagen ocupa entre 300 y 500K, y es en concreto un fondo de Windows Vista que he cogido de aqui, que por cierto me parecen bastante bonitos y espectaculares algunos. http://www.flickr.com/photos/brajesh...7594389648659/
__________________
Piensa siempre en positivo ! |
|
#4
|
||||
|
||||
|
Pues es verdad, no estaba teniendo en cuenta que tu form es un fsMDIForm. En ese caso aparecen todos esos efectos que mencionas, que no aparecen cuando el formulario es normal. A lo mejor alguien con mas experiencia en ese tipo de formularios te puede explicar ese comportamiento tan extraño.
En cuanto a la propiedad DoubleBuffered. Lo único que hace es que el formulario a la hora de dibujarse, no lo haga cada objeto directamente, si no que se dibujan en un buffer intermedio y luego este se dibuja de una sola vez en la pantalla. No queda nada a mayores cargado en memoria, si es eso lo que te preocupaba. |
|
#5
|
||||
|
||||
|
Pues tienes toda la razón. Si el formulario no es MDI funciona todo correctamente, incluso sin DoubleBuffered := True.
Pero claro, mi formulario es MDI y mi aplicación está concebida de esa manera. Si alguien más sabe algo acerca de ello, lo agradezco. De momento lo que he hecho, y para que no quede tan mal, es que al iniciar el movimiento del ratón con el icono, desactivo el TImage poniendo la propiedad Visible := False, y cuando suelto el botón, de nuevo vuelvo a ponerlo visible. Al menos a mi me parece que de esta manera queda mejor. Lo que provoca que el usuario esté moviendo el icono sobre un fondo normal. Muchas gracias de todos maneras, Domingo.
__________________
Piensa siempre en positivo ! |
|
#6
|
|||
|
|||
|
Hola,
No tengo mucha experiencia en gráficos y/o en programación pero recordé que hace tiempo atrás había leido algo al respecto del hilo y te paso las direcciones, donde quizá puedas hallar respuesta a tus preguntas, son artículos que se encuentra en GRUPO ALBOR, y la idea de Ian Marteens: 1.- Cómo conseguir una imagen como fondo de un formulario 2.- Imagen de fondo en un formulario MDI Ojalá te sirvan de algo Un saludo Deiv Edito: No encuentro esa página en ALBOR, entonces estaba en la sección Trucos, ahora no lo encuentro, de todas maneras te envío 2 archivos adjuntos que grabé hace tiempo, es lo mismo. Última edición por Deiv fecha: 18-12-2007 a las 15:21:11. |
|
#7
|
|||
|
|||
|
Hola,
¿Te sirvió la información?, no?, ya que Yo también estoy pensando más adelante hacer algo parecido al tuyo, me informarías si esos ejemplos te ayudaron y ver la forma de implementar en los mios? Un saludo |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Color de fondo de un TImage | Drake | OOP | 1 | 03-08-2006 19:36:36 |
| Omagen de fondo Form MDI | silviodp | OOP | 1 | 24-12-2004 12:05:45 |
| Como evitar que el usuario cierre la form! | Waldo | API de Windows | 2 | 20-11-2003 18:46:47 |
| Como mover un Timage por la form | Dantael | Gráficos | 1 | 17-11-2003 07:46:56 |
| Imagen de Fondo en form | lafirma | OOP | 1 | 28-08-2003 18:59:41 |
|