Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-03-2007
david.rguez david.rguez is offline
Miembro
 
Registrado: jun 2006
Ubicación: Zamora, la bien cercada
Posts: 104
Poder: 18
david.rguez Va por buen camino
Arrastrar imagen

Estoy tratando de que en tiempo de ejecución, se pueda recolocar un TImage de la pantalla, de forma que el usuario pueda organizar las distintas imágenes como mejor se maneje.

He puesto el DragMode a automático, pero no me permite moverlas. Es decir, si arrastro, el cursor me cambia al símbolo de prohibición y, si tengo asignado un OnEndDrag, ejecuta ese procedimiento (al soltar el botón del ratón), pero no permite moverlo del lugar donde esté.

¿Qué más hay que hacer para que permita el movimiento?
Responder Con Cita
  #2  
Antiguo 05-03-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
En mi página, en la sección de trucos hay uno titulado "Mover controles de un form en Runtime", donde se muestra como mover una imagen, un shape,... con el ratón.
Échale un vistazo; Puedes descargar el código y compilarlo (Delphi 6).
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 05-03-2007
david.rguez david.rguez is offline
Miembro
 
Registrado: jun 2006
Ubicación: Zamora, la bien cercada
Posts: 104
Poder: 18
david.rguez Va por buen camino
He utilizado tu código, pero me sigue sin permitir arrastrar.

Es decir, si yo pincho sobre la imagen y muevo el ratón manteniéndolo pulsado, el cursor cambia al icono de prohibición (el círculo con una barra diagonal) y no se mueve la imagen.
Responder Con Cita
  #4  
Antiguo 05-03-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
En el ejemplo que te comento no se usa "Drag and Drop"; Si no debes arrastrar entre diferentes controles, sino que sólo debes mover, desactiva esa característica, no te hace falta.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 05-03-2007
david.rguez david.rguez is offline
Miembro
 
Registrado: jun 2006
Ubicación: Zamora, la bien cercada
Posts: 104
Poder: 18
david.rguez Va por buen camino
He quitado eso y funciona perfectamente ahora, gracias

Ahora ya solo me falta implementar que se almacene permanentemente la nueva posición, que no es ningún problema.

Ahora, a título de curiosidad... ¿hay alguna forma de que desaparezca ese antiestético parpadeo mientras se mueve? Creo haber leído algo del doble-buffer, pero jamás logré que desapareciese (es un TImage moviéndose por encima de un TPanel (el cuál puede tener otra TImage a modo de ilustración de fondo (esto ya es a elección del cliente)).
Responder Con Cita
  #6  
Antiguo 05-03-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Dependiendo de la versión de delphi con la que trabajes, puedes disponer de la propiedad DoubleBuffered que soluciona este problema:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  DoubleBuffered:= TRUE;
end;
Responder Con Cita
  #7  
Antiguo 05-03-2007
david.rguez david.rguez is offline
Miembro
 
Registrado: jun 2006
Ubicación: Zamora, la bien cercada
Posts: 104
Poder: 18
david.rguez Va por buen camino
Cita:
Empezado por seoane
Dependiendo de la versión de delphi con la que trabajes, puedes disponer de la propiedad DoubleBuffered que soluciona este problema:
Código Delphi [-]procedure TForm1.FormCreate(Sender: TObject); begin DoubleBuffered:= TRUE; end;
Trabajamos en Delphi 2005. Eso lo probé hace un par de meses, (lo dejamos durante un tiempo hasta tener instrucciones más precisas del cliente y nos dedicamos a otras partes), pero no había ningún cambio perceptible :S
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
arrastrar y muliseleccion palets Gráficos 2 06-06-2006 23:35:31
Arrastrar Registro vtdeleon SQL 8 13-08-2005 00:51:17
Como arrastrar una imagen desde un panel a un paintbox maravert Gráficos 1 12-11-2004 16:42:52
Como puedo arrastrar una imagen y soltarla dentro de otra maravert API de Windows 3 12-09-2004 17:27:28
arrastrar y soltar imagen haZe Varios 2 03-03-2004 17:06:10


La franja horaria es GMT +2. Ahora son las 13:44:22.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi