Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Seleccionar Subzonas de una Imagen (https://www.clubdelphi.com/foros/showthread.php?t=55803)

jhonalone 27-04-2008 09:18:14

Seleccionar Subzonas de una Imagen
 
Hola, amigos:
Necesito dividir una imagen en zonas sensibles al puntero del ratón, que puedan seleccionarse, una o más zonas conjuntamente, para crear acciones dependiendo de la (o las) zonas seleccionadas.

Imaginaos un mapa en el que se puedan seleccionar una provincia o bien varias colindantes. Que esta selección se pueda guardar, para poder mostrarla en consultas posteriores, cambiando el color o la intensidad de las partes seleccionadas.

Reconozco humildemente que no sé por dónde empezar.

No he encontrado nada en los trucos ni en los foros.
Gracias, de antemano por vuestra ayuda.

neuronic 27-04-2008 11:28:10

funcion PtInRect
 
Inserta un TImage , cargas la imagen image1.Picture.LoadFromFile();

en el evento de onMouseMove

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var Cuadro:Trect;

begin
Cuadro := Rect(image1.Left,image1.Top,image1.left+image1.Width,image1.Top+image1.Height);
if (PtInRect(Cuadro,Point(X,Y))) then
form1.Caption := 'area A'
else
form1.Caption := 'No area';
end;

con PtInRect puedes saver si la cordernada x,y se encuentra dentro del cuadro, en este ejemplo seria la totalidad de la imagen, puedes poner
Rect(image1.Left,image1.Top,image1.left+10,image1.Top+10);
seria un cuadro de 10x10 de la esquina superior, izquierda

espero que te sirva!!!!


la otra manera que haria seria integrando un flash en el proyecto, y con alguna tool de estas que puedes hacer flash click, click , click ya estaria
para mas info http://delphi.about.com/od/graphics/l/aa040103a.htm
http://www.delphiflash.com/library-shockwave-flash.php referencia de metodos y eventos del control de flash

jhonalone 27-04-2008 15:25:25

Muchas gracias, Neuronic.
Algo así es lo que quiero hacer, pero las áreas a delimitar no son rectas, lamentablemente, son bastante sinuosas y, a veces, debo dejar al usuario que delimite su área personal, que puede tomar parte de otras ya definidas.
Si las áreas fueran regulares, la función sería genial.
Voy a visistar el enlace a ver qué puedo sacar de alli. Luego te cuento.
Gracias por tu esfuerzo y tu tiempo.
Saludos.

jhonalone 27-04-2008 17:01:09

He estado mirando los enlaces y no entiendo bien eso del flash. Si a alguien no le ocurre otra cosa... me veo haciendo los 10/12 mapas, confeccionando un puzle para cada uno con las distintas provincias como imágenes separadas. ¡¡ Miedo me está dando sólo de pensarlo !!
Agradeceré cualquier salida menos trabajosa.
Gracias.

Northern 28-04-2008 11:00:54

Busca por "marching ants".

Mira en http://www.mandrillsoft.com/en/codecenter.html en el apartado Selection tool y bájate el programa ejemplo http://www.mandrillsoft.com/download...e_20071123.zip


Saludos


La franja horaria es GMT +2. Ahora son las 14:22:10.

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