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 04-05-2006
Acanol Acanol is offline
Miembro
 
Registrado: abr 2006
Ubicación: Elche
Posts: 75
Poder: 19
Acanol Va por buen camino
Dibujar y borrar lineas con el movimiento de labels

Muy buenas, es mi primer post en este foro, llevo mucho tiempo leyendo vuestras soluciones y realmente me han servido de mucha utilidad, pero ahora tngo un problema al cual no le he encontrado solución por ningun sitio, he estado mirando todos los hilos y nada, (espero no haberme saltado ninguno, jeje).

Necesitaba mover unos labels y lo consegui con el codigo de los siguientes links.

http://www.q3.nu/trucomania/foros/viewtopic.php?p=1687&sid=b07d2237cbd85f93a677d8b9dbc07c85
http://www.q3.nu/trucomania/foros/viewtopic.php?p=795&sid=afae5381e83059ad90483928678cdae4


Bueno mi consulta es la siguiente:
Muevo una serie de labels en un timage el cual tiene un mapa cargado. Lo que ocurre es que pretendo dibujar una línea desde el punto de inicio del label, hasta el punto donde es arrastrado(cuando coloco los labels en el mapa almaceno en una tabla las coordenadas para asi hacer que la raya parta siempre desde el punto inicial) , me he encontrado con el problema de que al utilizar el codigo del anterior link, no puedo dibujar esta línea con el mousemove, es decir, dibujarla durante el movimiento del label, que es lo que pretendo. Otro de los problemas que me ha surgido es que al dibujar y borrar las lineas sobre el timage con el mapa, estas me van borrando el mapa. Necesito que la linea se dibuje con el movimiento del label y que al borrar esta y dibujarla hasta la nueva posición del label, no me borre el mapa. A ver si podeis hecharme una mano ya que estoy bastante agobiado y no se por donde tirar. Muchas gracias por adelantado.




[delphi]
{............etc..............}
Código Delphi [-]
 
if not dtm.Qxy.IsEmpty then 
begin 
//////////////Dibujamos una linea desde el punto de partida hasta donde soltemos el componente 
 
image1.Canvas.Pen.Mode := pmNotXor; 
image1.Canvas.MoveTo (linx,linY); 
image1.Canvas.LineTo (trunc(dtm.Qxyx.value),trunc(dtm.QxyY.value)); 
image1.canvas.Pen.Mode:= pmcopy; 
image1.Canvas.FillRect(ClientRect); 
image1.Canvas.Pen.Color:= clblue; 
image1.Canvas.MoveTo(trunc(dtm.Qxyx.value),trunc(dtm.QxyY.value)); 
finx:=left; 
finy:=top; 
image1.Canvas.LineTo(finx, finy); 
image1.Refresh;//No es necesario(o por lo menos hace lo mismo)
end 
else 
begin 
image1.Canvas.FillRect(ClientRect); 
image1.Canvas.Pen.Color:= clblue; 
image1.Canvas.MoveTo(linx, liny); 
finx:=left; 
finy:=top; 
image1.Canvas.LineTo(finx, finy); 
image1.Refresh; //No es necesario(o por lo menos hace lo mismo)
end; 
LimitaMovimiento(Control);//controlamos que no se salga de la ventana. 
end; 
finally 
 
{............etc..............}







Muchas gracias por la ayuda que me podais prestar.

Un saludo.

Última edición por Acanol fecha: 04-05-2006 a las 17:23:24. Razón: Resaltado de codigo
Responder Con Cita
  #2  
Antiguo 04-05-2006
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.275
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
Uno de los problemas de dibujar líneas directamente sobre el Canvas es el que tú comentas.
Antes de que continues adelante te voy a sugerir que revises el componente SimpleGraph que puedes encontrar en DelphiArea. Yo lo he utilizadoy es muy bueno (gratuíto y con fuentes).
No es que quiera cambiarte los planes, pero está justo pensado para cosas como las que tú estás haciendo. Échale un vistazo a la demo a ver si te puede servir.

Si aun así continuas con tu código, creo que la única forma de resolver tu problema es ir redibujando el fondo (en tu caso el mapa) cada vez que borras la línea. Será lento (y seguramente te aparezca un parpadeo), pero con el código que está utilizando creo que no hay otra opción.

Tal vez la alternativa es que las líneas que dibujes sean objetos propios en sí, por ejemplo piensa en TShapes (pero que dibujen líneas).
__________________
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 04-05-2006
Acanol Acanol is offline
Miembro
 
Registrado: abr 2006
Ubicación: Elche
Posts: 75
Poder: 19
Acanol Va por buen camino
Muchas gracias por responder tan pronto . Voy a mirarlo y te comento. Espero que me sirva, porque me lleva loco. Te vuelvo a dar las gracias.

Un Saludo.
Responder Con Cita
  #4  
Antiguo 04-05-2006
Acanol Acanol is offline
Miembro
 
Registrado: abr 2006
Ubicación: Elche
Posts: 75
Poder: 19
Acanol Va por buen camino
Madre mia le he echado un vistazo a la demo is perfecto, ahora solo tengo que mirarlo detenidamente para ver como darle utilidad en mi programa, muchisimas gracias. Si necesito ayuda para poder utilizarlo posteo a continuación de esto, ya que no estoy acostumbrado a estas cosas.

Gracias. Un saludo
Responder Con Cita
  #5  
Antiguo 05-05-2006
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.275
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
Si tienes dudas de cómo utilizarlo, postéalo aquí (lo he utilizado bastante y te podré echar una mano) o el los foros de la página del componente, ya que el autor está muy abierto a todo tipo de sugerencia, preguntas y demás...
__________________
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
  #6  
Antiguo 25-05-2006
Acanol Acanol is offline
Miembro
 
Registrado: abr 2006
Ubicación: Elche
Posts: 75
Poder: 19
Acanol Va por buen camino
me ayudas a utilizarlo?

Muy buena Neftali, he retomado la parte de mi proyecto en la que creo me puede servir el componente SimpleGraph, le he echado un vistazo y no tngo ni idea de como utilizarlo. Lo primero no puedo agregar el componente, o por lo menos no se como hacerlo, siempre lo he hecho dandole a Componente/Install Component... , pero lo que yo me he descargado no tiene el .dpk y entonces no se como hacer para instalarlo. Mi segunda peticion seria si me podrias explicar por msn o algo por el estilo, que es mucho mas rapido, la forma de utilizar este componente.

Como ya sabes yo lo queria para colocar por ejemplo en un mapa de españa, (con sus carreteras), un listbox que contenta el km de ese punto, y queria dar la opcion de mover ese componente por toda la imagen (esto esta solucionado, puedo mover el componente), pero al moverlo queria que se dibujase una linea desde el punto señalado en el mapa hasta el componente, y que mueva donde mueva el componente, la linea siempre este desde el punto del mapa al componente.

Espero haberme explicado bien y que me puedas echar una mano, (aunque sea al cuello), jejej, un saludo y espero noticias tuyas.



P.D: Un pequeño comentario, en tu pagina en el apartado novedades, existe unos pequeños errores en las fechas de los componentes (TselectOnRuntime y Inaugurados los Feeds..) en las fechas pone el año 2205. Enhorabuena por la pagina, me sirvio de ayuda.
__________________
{Saludos.}

//Todos los dias se aprende algo nuevo, por que no enseñar nosotros?
Responder Con Cita
  #7  
Antiguo 25-05-2006
Acanol Acanol is offline
Miembro
 
Registrado: abr 2006
Ubicación: Elche
Posts: 75
Poder: 19
Acanol Va por buen camino
Vale lo he instalando utilizando el dpk de otro component que tenia, jeje no se si lo habre echo bien pero el componente simplegraph ya me aparece .
__________________
{Saludos.}

//Todos los dias se aprende algo nuevo, por que no enseñar nosotros?
Responder Con Cita
  #8  
Antiguo 29-05-2006
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.275
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
Una vez instalado, te recomiendo que hagas unas pruebas y revises la demo.
El componente no es difícil de utilizar, y en la demo están programadas la mayoría de las funcionalidades.
Comienza y si tienes algun problema concreto ya dirás...
__________________
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
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
Borrar lineas detalle al borrar registro maestro akinom38 Conexión con bases de datos 3 11-01-2006 10:38:07
Borrar Lineas en Word con delphi Renees Varios 0 21-10-2005 15:46:39
Borrar lineas Luli Gráficos 2 29-07-2005 15:21:28
Luego de borrar lineas en un memo... pablo OOP 3 26-04-2005 01:03:02
dibujar las lineas en un qreport davidgaldo Impresión 2 17-02-2004 14:02:15


La franja horaria es GMT +2. Ahora son las 08:05:30.


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