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
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;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; end;
LimitaMovimiento(Control);end;
finally
Muchas gracias por la ayuda que me podais prestar.
Un saludo.